ghost 6.18.2 → 6.19.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 (191) hide show
  1. package/components/tryghost-i18n-6.19.0.tgz +0 -0
  2. package/components/tryghost-parse-email-address-6.19.0.tgz +0 -0
  3. package/core/built/admin/assets/{PolarAngleAxis-DALH8FDm.js → PolarAngleAxis-CGprvq8M.js} +1 -1
  4. package/core/built/admin/assets/{_baseAssignValue-D_UsvJRN.js → _baseAssignValue-Bwn07Ln5.js} +1 -1
  5. package/core/built/admin/assets/{a-large-small-DVyx4GMu.js → a-large-small-p58xibEK.js} +1 -1
  6. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
  7. package/core/built/admin/assets/admin-x-settings/{code-editor-view-DBrulgE8.mjs → code-editor-view-DCKvO1TY.mjs} +2 -2
  8. package/core/built/admin/assets/admin-x-settings/{index-DgGwb1L-.mjs → index-BxWVtVnD.mjs} +6 -6
  9. package/core/built/admin/assets/admin-x-settings/{index-Cypgljb3.mjs → index-DyZIONe1.mjs} +2 -2
  10. package/core/built/admin/assets/admin-x-settings/{index-CsGHbqSU.mjs → index-HfMJcj2U.mjs} +2 -2
  11. package/core/built/admin/assets/admin-x-settings/{modals-rdo7i0D3.mjs → modals-CIiqfKY0.mjs} +7593 -7509
  12. package/core/built/admin/assets/{at-sign-CGNkBrZS.js → at-sign-BZPuAx5m.js} +1 -1
  13. package/core/built/admin/assets/audience-Cy9gLIa9.js +1 -0
  14. package/core/built/admin/assets/{avatar-flipboard-jqr9Aapd.js → avatar-flipboard-CLmWb5Xn.js} +1 -1
  15. package/core/built/admin/assets/{bluesky-sharing-C2749SVt.js → bluesky-sharing-BHt0oiii.js} +1 -1
  16. package/core/built/admin/assets/{chart-BAQCVPCH.js → chart--RFLGIL4.js} +1 -1
  17. package/core/built/admin/assets/{chunk.524.428356d01feabbc7b932.js → chunk.524.5c5c3f3273a86d1d9913.js} +7 -7
  18. package/core/built/admin/assets/{chunk.582.b8b41ba720f49d724992.js → chunk.582.e6c787cdf7e6de7819e0.js} +9 -9
  19. package/core/built/admin/assets/{code-editor-view-YNhJ1w71.js → code-editor-view-BW9y0JXN.js} +1 -1
  20. package/core/built/admin/assets/comments-C_lilDBp.js +1 -0
  21. package/core/built/admin/assets/content-helpers-BOnQQADZ.js +1 -0
  22. package/core/built/admin/assets/{copy-CNsHZEFR.js → copy-Bi7VpgPR.js} +1 -1
  23. package/core/built/admin/assets/{data-list-Dn5MkmyD.js → data-list-Bu3jzs1s.js} +1 -1
  24. package/core/built/admin/assets/{deleted-feed-item-Dmm_clMl.js → deleted-feed-item-B-doIIKc.js} +1 -1
  25. package/core/built/admin/assets/{edit-profile-BLSdtROQ.js → edit-profile-ZBdjFfvL.js} +1 -1
  26. package/core/built/admin/assets/{empty-indicator-C2Z0dddU.js → empty-indicator-C6BBh99D.js} +1 -1
  27. package/core/built/admin/assets/{en-DuTkaMAI.js → en-C7eSFQRw.js} +1 -1
  28. package/core/built/admin/assets/{feed-B4Xp4C2J.js → feed-CAioauwD.js} +1 -1
  29. package/core/built/admin/assets/{filters-gnOx5Z45.js → filters-DEKF0tIB.js} +1 -1
  30. package/core/built/admin/assets/{gh-chart-B2aWYkGg.js → gh-chart-D9KI0_sO.js} +1 -1
  31. package/core/built/admin/assets/{ghost-29f8f3c80e41126ba5e3c52ad5727e8a.js → ghost-6bff5c535ef015b0ed9421ceb6c699a7.js} +220 -211
  32. package/core/built/admin/assets/{growth-BysawIWe.js → growth-C6XGchvT.js} +1 -1
  33. package/core/built/admin/assets/{hash-j3sh-UI3.js → hash-DFhnGHId.js} +1 -1
  34. package/core/built/admin/assets/{inbox-1cUdr8Mm.js → inbox-p-Y5uScT.js} +1 -1
  35. package/core/built/admin/assets/{index-BVoBTlp_.js → index--VlvGKWi.js} +1 -1
  36. package/core/built/admin/assets/{index-DGBK5k9H.js → index-3uU4zg_6.js} +1 -1
  37. package/core/built/admin/assets/index-4ZkTY34B.css +1 -0
  38. package/core/built/admin/assets/{index-BhY_SbGB.js → index-BWnrLoWI.js} +1 -1
  39. package/core/built/admin/assets/{index-I9n711UW.js → index-BzU2odQq.js} +1 -1
  40. package/core/built/admin/assets/{index-mhojl7aD.js → index-CIZ_upe2.js} +1 -1
  41. package/core/built/admin/assets/{index-WjY3mGep.js → index-CS4XqyC-.js} +2 -2
  42. package/core/built/admin/assets/{index-BgrwCpgw.js → index-D17PEsUB.js} +1 -1
  43. package/core/built/admin/assets/{index-B8G0f0hb.js → index-DCTdAEHx.js} +3 -3
  44. package/core/built/admin/assets/{index-DarAAzVH.js → index-FPf-AERu.js} +1 -1
  45. package/core/built/admin/assets/index-JmqyGBro.js +1 -0
  46. package/core/built/admin/assets/{index-DKAlEWM4.js → index-LyfDjTto.js} +1 -1
  47. package/core/built/admin/assets/index-S62-c8TV.js +13 -0
  48. package/core/built/admin/assets/{index-D8CXbJm4.js → index-Wx8_AGZX.js} +1 -1
  49. package/core/built/admin/assets/{index-CkAUXgAi.js → index-jAidr8jI.js} +1 -1
  50. package/core/built/admin/assets/{index-Dz8eTtOq.js → index-lPLmWtv0.js} +1 -1
  51. package/core/built/admin/assets/koenig-lexical/index.css +1 -1
  52. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +1853 -1863
  53. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +94 -94
  54. package/core/built/admin/assets/{koenig-lexical-coiS9dIC.js → koenig-lexical-CWnkYKQt.js} +77 -77
  55. package/core/built/admin/assets/{kpi-card-BEFHo2gr.js → kpi-card-B5UaJgOT.js} +1 -1
  56. package/core/built/admin/assets/{kpis-D-gz-lUk.js → kpis-Cc2RxnvZ.js} +1 -1
  57. package/core/built/admin/assets/{label-BvlHzzcJ.js → label-CW7Kmp9w.js} +1 -1
  58. package/core/built/admin/assets/{links-tdJvBrsT.js → links-wWNc9Uat.js} +1 -1
  59. package/core/built/admin/assets/{list-filter-DPE4Xj2T.js → list-filter-3EF6cVg-.js} +1 -1
  60. package/core/built/admin/assets/{lucide-react-ClQ3Iy7l.js → lucide-react-DtMIZssr.js} +214 -214
  61. package/core/built/admin/assets/{main-layout-DY96wK-_.js → main-layout-BFYhCrLn.js} +1 -1
  62. package/core/built/admin/assets/{message-square-text-Dd1XS5-H.js → message-square-text-BDZtUW-2.js} +1 -1
  63. package/core/built/admin/assets/{minus-CyEc3BE5.js → minus-CSphShdJ.js} +1 -1
  64. package/core/built/admin/assets/modals-CDWP04Iy.js +77 -0
  65. package/core/built/admin/assets/{moderation-B0fdmlig.js → moderation-qcng2_lB.js} +1 -1
  66. package/core/built/admin/assets/{newsletter-Byg3ARa5.js → newsletter-R-IYcV4M.js} +1 -1
  67. package/core/built/admin/assets/{newsletters-DbH39vgA.js → newsletters-BB4e24i1.js} +1 -1
  68. package/core/built/admin/assets/{note-Cwy-rIAF.js → note-B_bpRX66.js} +1 -1
  69. package/core/built/admin/assets/overview-Nh-IoP-v.js +1 -0
  70. package/core/built/admin/assets/{pagemenu-CkzsZrHC.js → pagemenu-Cd45frnF.js} +1 -1
  71. package/core/built/admin/assets/{post-analytics-context-BLkup0Xh.js → post-analytics-context-BST4bzps.js} +1 -1
  72. package/core/built/admin/assets/post-analytics-header-DAZPp6M8.js +1 -0
  73. package/core/built/admin/assets/{post-analytics-aA-nG9Fq.js → post-analytics-jHZOhQ8L.js} +1 -1
  74. package/core/built/admin/assets/{post-share-modal-CkvJtrRw.js → post-share-modal-D1JQfuYx.js} +1 -1
  75. package/core/built/admin/assets/posts/{comments-Bn_vn_sb.mjs → comments-C0ntS6jH.mjs} +678 -692
  76. package/core/built/admin/assets/posts/{dialog-CKPcMrj7.mjs → dialog-CXEmd-rC.mjs} +3 -3
  77. package/core/built/admin/assets/posts/{empty-indicator-kkrhP6K_.mjs → empty-indicator-CY1NEQZt.mjs} +2 -2
  78. package/core/built/admin/assets/posts/{filters-DHsxxy0F.mjs → filters-CWWDQAf0.mjs} +6 -6
  79. package/core/built/admin/assets/posts/{growth-D7ACh-oR.mjs → growth-DUnL-W24.mjs} +20 -19
  80. package/core/built/admin/assets/posts/{heading-BrKVbOxA.mjs → heading-DZWin3nG.mjs} +2 -2
  81. package/core/built/admin/assets/posts/{hooks-BBEMuLiW.mjs → hooks-DQYjPsLg.mjs} +2 -2
  82. package/core/built/admin/assets/posts/{index-C0rRguZx.mjs → index-BiGQFQkQ.mjs} +9 -9
  83. package/core/built/admin/assets/posts/{kpis-1o524OIK.mjs → kpis-DNnkyd0U.mjs} +10 -10
  84. package/core/built/admin/assets/posts/{links-JpeATx1f.mjs → links-D3nSZFlJ.mjs} +4 -4
  85. package/core/built/admin/assets/posts/{loading-indicator-BHAmSf8j.mjs → loading-indicator-CZQmPRvv.mjs} +3 -3
  86. package/core/built/admin/assets/posts/{main-layout-BTItAOQE.mjs → main-layout-D5WnaGr4.mjs} +2 -2
  87. package/core/built/admin/assets/posts/{newsletter-CQdsCEHv.mjs → newsletter-C5eikVBq.mjs} +13 -13
  88. package/core/built/admin/assets/posts/{overview-sYh4JN1D.mjs → overview-C5mCMPJY.mjs} +113 -112
  89. package/core/built/admin/assets/posts/{post-analytics-DtLt2SWx.mjs → post-analytics-Cc2NCQis.mjs} +6 -6
  90. package/core/built/admin/assets/posts/{post-analytics-context-CB1yM9fk.mjs → post-analytics-context-qXWjDzSt.mjs} +44 -41
  91. package/core/built/admin/assets/posts/{post-analytics-header-BYaWuL9W.mjs → post-analytics-header-QGsYyvhA.mjs} +11 -11
  92. package/core/built/admin/assets/posts/{post-share-modal-V0HTOBaf.mjs → post-share-modal-B9Q7FJsH.mjs} +4 -4
  93. package/core/built/admin/assets/posts/posts-C2SKGLoU.mjs +17 -0
  94. package/core/built/admin/assets/posts/posts.js +1 -1
  95. package/core/built/admin/assets/posts/{search-CLjC37AT.mjs → search-C8k0TFkh.mjs} +2 -2
  96. package/core/built/admin/assets/posts/{separator-KNoTIaJx.mjs → separator-CJnnsW1a.mjs} +5 -5
  97. package/core/built/admin/assets/posts/{sheet-DBg_SCDt.mjs → sheet-HDzKgNHc.mjs} +3 -3
  98. package/core/built/admin/assets/posts/{skeleton-DvsoolWu.mjs → skeleton-BlZGKNzB.mjs} +3 -3
  99. package/core/built/admin/assets/posts/{source-icon-OmRaTU2G.mjs → source-icon-DjBIjtaY.mjs} +3 -3
  100. package/core/built/admin/assets/posts/{stats-BC2DzntY.mjs → stats-BRVHejqx.mjs} +4 -4
  101. package/core/built/admin/assets/posts/{table-CxX9OKAj.mjs → table-D7AEpPWL.mjs} +2 -2
  102. package/core/built/admin/assets/posts/{tabs-B1jw7cBi.mjs → tabs-RcpmzDgr.mjs} +10 -10
  103. package/core/built/admin/assets/posts/{tags-BitrLT_j.mjs → tags-8k1xw8R8.mjs} +2 -2
  104. package/core/built/admin/assets/posts/{tags-BBilTo1a.mjs → tags-DNY2rBlf.mjs} +11 -11
  105. package/core/built/admin/assets/posts/{use-infinite-virtual-scroll-DaijA1ao.mjs → use-infinite-virtual-scroll-CMiIpcDA.mjs} +3 -3
  106. package/core/built/admin/assets/posts/{web-CKmyC4Xj.mjs → web-BCl5J6bB.mjs} +15 -15
  107. package/core/built/admin/assets/{posts-DDkuYoN7.js → posts-DFiJPOft.js} +1 -1
  108. package/core/built/admin/assets/{repeat-B-SL0yPM.js → repeat-Smml9n0k.js} +1 -1
  109. package/core/built/admin/assets/{reply-BdCPoUQ9.js → reply-CooY4lmk.js} +1 -1
  110. package/core/built/admin/assets/{select-C7aNW8QS.js → select-WwMsbBbg.js} +1 -1
  111. package/core/built/admin/assets/{settings-D-dhma2e.js → settings-CQEhPDQU.js} +4 -4
  112. package/core/built/admin/assets/{settings-Bzy1GNfD.js → settings-CxWtvcUf.js} +1 -1
  113. package/core/built/admin/assets/{sort-button-Dv8vjh13.js → sort-button-DFr8vezl.js} +1 -1
  114. package/core/built/admin/assets/{source-icon-DTz4isLK.js → source-icon-VpYWpwYb.js} +1 -1
  115. package/core/built/admin/assets/{sprout-BwLQTzMf.js → sprout-DRqlFJSK.js} +1 -1
  116. package/core/built/admin/assets/{square-YF1YE9ex.js → square-CwHQ9sJ2.js} +1 -1
  117. package/core/built/admin/assets/stats/audience-Caf7BjaU.mjs +269 -0
  118. package/core/built/admin/assets/stats/{url-helpers-Drq3xg0l.mjs → content-helpers-MbtAvUJh.mjs} +83 -106
  119. package/core/built/admin/assets/stats/{index-CcCyLMxL.mjs → index-BGqKbF1D.mjs} +8 -8
  120. package/core/built/admin/assets/stats/{index-DXU2rE9t.mjs → index-BTjfXOi6.mjs} +30 -30
  121. package/core/built/admin/assets/stats/{index-K7ASx7EG.mjs → index-ChjIxhHy.mjs} +5 -5
  122. package/core/built/admin/assets/stats/{index-D5mlMG4l.mjs → index-DMkZbbZs.mjs} +14 -14
  123. package/core/built/admin/assets/stats/{index-CUuQaROI.mjs → index-wT0OIw_N.mjs} +355 -335
  124. package/core/built/admin/assets/stats/{sort-button-CELUx6Zp.mjs → sort-button-B8n8fYMi.mjs} +23 -23
  125. package/core/built/admin/assets/stats/{stats-d_u_in4l.mjs → stats-CGH-0JNs.mjs} +120 -119
  126. package/core/built/admin/assets/stats/stats.js +1 -1
  127. package/core/built/admin/assets/stats/{tabs-3wLZsy0v.mjs → tabs-EQCUj3Y9.mjs} +19 -19
  128. package/core/built/admin/assets/stats/{use-growth-stats-28Sr42va.mjs → use-growth-stats--CIfag21.mjs} +3 -3
  129. package/core/built/admin/assets/{stats-C5ad0fgQ.js → stats-lnFiOQZx.js} +1 -1
  130. package/core/built/admin/assets/{stats-view-BvkxPYNX.js → stats-view-BJVawuIv.js} +1 -1
  131. package/core/built/admin/assets/{step-1-D7_s-D99.js → step-1-Bx8MiQVF.js} +1 -1
  132. package/core/built/admin/assets/{step-2-B94Yf7FF.js → step-2-CLLXppER.js} +1 -1
  133. package/core/built/admin/assets/{step-3-DswXYYf4.js → step-3-C5WrQe8u.js} +2 -2
  134. package/core/built/admin/assets/{table-D30IXfUP.js → table-2waWpIF5.js} +1 -1
  135. package/core/built/admin/assets/{tabs-CjNdfW0y.js → tabs-CBD0hW8V.js} +1 -1
  136. package/core/built/admin/assets/{tags-B0ux9_dT.js → tags-Bgw5Hrb5.js} +1 -1
  137. package/core/built/admin/assets/{tags-PGeGAafJ.js → tags-CKrBptuC.js} +1 -1
  138. package/core/built/admin/assets/{tiers-BaXK0JoI.js → tiers-CO-pz1FX.js} +1 -1
  139. package/core/built/admin/assets/{toggle-group-DdY8HF3Y.js → toggle-group-BXAZzvJ9.js} +1 -1
  140. package/core/built/admin/assets/{topic-filter-Boh22uGD.js → topic-filter-U3qUH2P_.js} +1 -1
  141. package/core/built/admin/assets/{trash-D7ZWrnDq.js → trash-CJY1Wro_.js} +1 -1
  142. package/core/built/admin/assets/{use-growth-stats-Bg0nE0WG.js → use-growth-stats-BrLZI7da.js} +1 -1
  143. package/core/built/admin/assets/{use-infinite-virtual-scroll-DoeI5IY-.js → use-infinite-virtual-scroll-CiRn3kpz.js} +2 -2
  144. package/core/built/admin/assets/{use-simple-pagination-BJzBULR3.js → use-simple-pagination-CskJ0MDP.js} +1 -1
  145. package/core/built/admin/assets/{user-round-check-BLc3L-ei.js → user-round-check-zOuzV3OS.js} +1 -1
  146. package/core/built/admin/assets/{wallet-cards-xX4QZik7.js → wallet-cards-ddLuIN-b.js} +1 -1
  147. package/core/built/admin/assets/{web-DQ2qBymm.js → web-CGbkZWn3.js} +1 -1
  148. package/core/built/admin/index.html +6 -5
  149. package/core/frontend/services/theme-engine/i18n/i18n.js +9 -14
  150. package/core/server/api/endpoints/settings-public.js +3 -1
  151. package/core/server/api/endpoints/utils/serializers/input/settings.js +6 -1
  152. package/core/server/data/migrations/versions/6.19/2026-02-10-12-00-00-add-transistor-portal-settings.js +39 -0
  153. package/core/server/data/schema/default-settings/default-settings.json +28 -0
  154. package/core/server/data/schema/schema.js +2 -2
  155. package/core/server/data/seeders/importers/offers-importer.js +2 -2
  156. package/core/server/data/tinybird/endpoints/api_top_pages_router.pipe +28 -0
  157. package/core/server/data/tinybird/endpoints/api_top_pages_v3.pipe +8 -4
  158. package/core/server/data/tinybird/tests/api_top_pages_router.yaml +74 -0
  159. package/core/server/services/comments/comments-service-emails.js +1 -4
  160. package/core/server/services/email-service/email-templates/partials/styles.hbs +43 -0
  161. package/core/server/services/koenig/node-renderers/transistor-renderer.js +23 -17
  162. package/core/server/services/members/members-api/repositories/member-repository.js +30 -6
  163. package/core/server/services/members/members-api/services/next-payment-calculator.js +28 -20
  164. package/core/server/services/members/members-api/services/payments-service.js +1 -1
  165. package/core/server/services/members/members-api/utils/add-calendar-months.js +49 -0
  166. package/core/server/services/offers/application/offer-mapper.js +2 -2
  167. package/core/server/services/offers/domain/models/offer-amount.js +16 -0
  168. package/core/server/services/offers/domain/models/offer-duration.js +3 -4
  169. package/core/server/services/offers/domain/models/offer-type.js +5 -3
  170. package/core/server/services/offers/domain/models/offer.js +8 -1
  171. package/core/server/services/staff/staff-service-emails.js +2 -0
  172. package/core/server/services/stripe/stripe-api.js +19 -0
  173. package/core/shared/config/defaults.json +1 -1
  174. package/core/shared/labs.js +0 -1
  175. package/core/shared/settings-cache/cache-manager.js +8 -0
  176. package/core/shared/settings-cache/public.js +5 -0
  177. package/package.json +5 -5
  178. package/yarn.lock +4 -4
  179. package/components/tryghost-i18n-6.18.2.tgz +0 -0
  180. package/components/tryghost-parse-email-address-6.18.2.tgz +0 -0
  181. package/core/built/admin/assets/audience-CJHVR7kD.js +0 -1
  182. package/core/built/admin/assets/comments-CPd_iCc3.js +0 -1
  183. package/core/built/admin/assets/index-B2yksBz4.js +0 -13
  184. package/core/built/admin/assets/index-Cl_EPbQ2.js +0 -1
  185. package/core/built/admin/assets/index-D_sGUCda.css +0 -1
  186. package/core/built/admin/assets/modals-C06GcVIm.js +0 -77
  187. package/core/built/admin/assets/overview-CVMLGrVt.js +0 -1
  188. package/core/built/admin/assets/post-analytics-header-D9srAPT5.js +0 -1
  189. package/core/built/admin/assets/posts/posts-DeQT3knv.mjs +0 -21
  190. package/core/built/admin/assets/stats/audience-BWqU7WWT.mjs +0 -245
  191. package/core/built/admin/assets/url-helpers-mt6MBIi0.js +0 -1
@@ -1,2 +1,2 @@
1
- import{r as o,k as b,b as w,p as N,j as e,B as x,bQ as d,cp as h,m as y,bv as k,bw as I,bx as Q,bK as g,bq as B,aR as E,X as R,bs as F,aT as S,bj as z}from"./index-B8G0f0hb.js";import{H as C,f as Y}from"./avatar-flipboard-jqr9Aapd.js";import{R as L}from"./reply-BdCPoUQ9.js";import{R as U}from"./repeat-B-SL0yPM.js";import{A as G}from"./a-large-small-DVyx4GMu.js";import{I as M}from"./inbox-1cUdr8Mm.js";import{H as O}from"./hash-j3sh-UI3.js";const W=""+new URL("avatar-casey-HhhTWg6d.png",import.meta.url).href,V=""+new URL("avatar-creator-science-CBlOgcmP.png",import.meta.url).href,H=""+new URL("cover-creator-science-C2MTxAZ7.png",import.meta.url).href,D=""+new URL("avatar-evan-DMWltndD.png",import.meta.url).href,T="data:image/png;base64,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",J="data:image/png;base64,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",K=""+new URL("cover-gone-C66KVDXu.png",import.meta.url).href,Z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAatSURBVHgBrVlrbBRVFD73zuzso93tlgptt3YpBcpLLPhIyivBAPERBEFrjMZIjBLiD0AQRRMNIQQUQdEYjPURQGNQBCRRSUiFJgQlUsJDnoVaoKQtz263ZXdnduZez51dSkvb7c4OX/pjZufeO9+ce+53HiWQId6oHJg9LiCNmjSSzB2YK01zKyTIGM8XzwglV6IqO3mjzTi099/4zuqTxtlfa0IhyADEyuDKykpp1VMHKsvKnZ/rrWxgLMSAcd73BHxEKQFnLgWHlzScPa6u3drYXLViBTBIE+kSJI27ggsDBdKGjktxhrMIWPw4QRb/WE7QQZtbjPcCsy+tSWca7W/A/g+LyvnR0pvZGluH5AQtapkcJGYQnBtujINbZav4kdKG31cXlaUxrW+EawYvcah8ndbOxD52/xh8GxgqcD0GRMkB0z5WwIHJPko1j7w0d8p/n4BVgurRkq3aef1ZdBa55+IGsI428FSsAcZioJ36FFeSIRMgAV0ZIv/mevjCnD6e90TkcMnOWL0+U6LQ+1vlHPDNPoEXSN+IQ2izG2hOEWQKg3E9e4SyXSlveOHuZz18sHX/4CV6QwpygtbNOuBaa+JGUkAumQmZuOVtSJTI0br4c637Bi+FVAT3rL1/uBLh6zlAyv2ivnyI1r6ZJMXBM+Er3PKrYAsEJJfGP96/vqi8T4IzZjj26O0sLY3SznyP3Li5MnUXAs0qhDREISXUMOOTpzlroDeCTbuC74bOxYOQ5ltodh5o9d8lDi9n4J74JW57B9iBkKHWOtXbuDO4qBtBVHZaWCCtptSCCSQXRA8uS8gNwUgReAK4GgU7vmguS4kUCEgbKitB6iT4YqBwflhECEvgwIkOxo1a04Li3jX+bVOC7KIduax8MvC8uDY/lx8qqQ9f0EstfzxajjgGgPfpIyZB0KMQ2uJFyQmAXfhKHdfIQw2D6Lypfr8W5qUZ7Qxazrh+Mik54uy7QQ5ON4nbhUhGXp11n5dOHsvKtFDm20J9BRA9tBjMzUCOngohOVfALmLIqWIIH0knjsmeyyx6H1AZ2K2WZHjjoJ39IeGHRJzuEiDOPLArOSL6TxrtnEvzcsijVreXha+A/6VbSBJzUKYD9d4H2rmqTsnxCMmJ25McgTwvnU49Ch0NVkEMM8T5X24FufgZJBqG6D/L70hO8Szg0QjYRZaLF1NM0wsgY6C1KjaCb+4RMDpioF/df0dyyhcmr22szkg+taeridyVestgwAIVI8vmzhPsfPB90xVsIVEyEPtHLpmsUtdAYJHL5j2Rs0AOTLYlOUiuhd5SeSPYAW4jNyLQ9lMQtLpvINZVciZW2cpyIho7RVvbWTXYgFa/CUKb/BhR0FKyC9T6Hcg5npAcXxmWAz7ISHLwA0XZSg+eUndQq36Y9P3wjlEQqX0LpAFFnTFYwlxRPb0h8QaR5Uz4wrSwVWDiAntPx3fSQ8foaZdfsjYZY21oi4JXUaCOrGRemARxQKx2JZhWQ/9TBlcCx/rFKpRcCaqPGWfpxpprHXIuvYZbkn5ZJsQ5K7+PzAUPiKKA3lzdKTnKAwusFX04VvHSBtGNMJ3jzFF1ERrBnmh1AVG8EDnweucJdo9fhZLTYmUJdu5IbK24MFf4YHfTz95ih7V9Tr0+RpfmhOTglxOHD+SCR9KWHB92H8rmN1d1Ety2DYwrTfHFWP7ZzzaToN5BEP3rtUT4Q5KeiV8j4ev9zjOw5BatEUgexW7nlx8d2ho+r2aoCz3BQk2Q80o7irbbfFXbj3mY6WRBCodkvqGOS2R8w5DbP3Qjsu/P9qnonPaKii6gOQWgHl+VuBGSU7EBz1Wsz/GyV6J/7NYe7/pbDzJhLJ7ZDeMjfHAPfJIAa78K/nmCVKJEDW3JQgUY0MtI0I186Z3cKRe79Wl6bKXvsYvr3cMcv4h2BNgGHhCXF+IXt5sUtLoqoB5fj1E6+r7oz9xNLkm8d4j+jGiB9Ndl6B+JV7BbN5FsFvqjs5uwo/zqzmHKdue4nn0ZgT4Pg0d0m9DkstccYkMjzTQbtzUXCCa5t8lhSs/R37mRJy/vi1xKggI+NHnN35ERvqHKJaxb7o2Qc7ObZfiHK221J4zxuehSqYanfWJFa0R0H7BDyoRBMkh0OeeEe4MybWqJLy6effmzdCZZfQ2t+7Zw/vBy5zJRS2uiiW7wlKtgQgwuP/byMN6LkCqilggMkCYy1jxR8E8YI42YMtY5R1SGboWOQROZ/4aQCGnp0IzLN8JQffCMtv3wZXJm47ZrGZV5/wN0wr1BUWYD7gAAAABJRU5ErkJggg==",P=""+new URL("cover-lever-CyLTy-uw.png",import.meta.url).href,X="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAApCAYAAABHomvIAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAR7SURBVHgB7VhNaFxVFD7n3vfezJt5k58mY36akCFNKhoiFlQalFhcuJEusogLV25ciEhFXLgodAi4KK5EELty4UYIapGCIBSysO3G+IPUStU2Yts0TpPMT+bNy8y993jfJNWkmSTvzZiUlvlghsv9O9897957vnsAmmji/gKhceDaL71Nc7WeajQQBJy8YXQf/TqlvMIwJ2ISWQEYrjBTCfAYGhDJQqxUIlnCtgG7cHl6sqLNBiIXlKDfpzphKvVqNEv8MVKUlBW3JdH/umobHLeEhMeVgqd1x1ZUkCeufwCCkR5LkNX1JdJlEyEvdFkxKHMFrmGAUVxaubN0fWo2f+3936GGV4N5cHKSH8580M6SPSOeJ55HRcMgMSWVV0JVySCPtyNaRzSJLt8IbTZE26za72YwExeAiTOFSyc+zmQ+un1vPwMCwD4/1+uNVqZsAxzLMc6ZAr7N/PaZtzx32rWjw5Zz6OS43fnEIelBt287+L7xXYwmAGPCNK1aPQIR5Gg7CvgLxflr3xcL02eXZ9/N3W2rwI8QS73Roc0UwIOQYL4bi6RUGbGoavcIQlDEy9xsu1qa//ybjeTWMGYDNxKggs0VFsEnJcUYj5qwzwi1akJjT7y0E/bdYFg0CTaKJsFGEYKgjqD6HMM+YzuCm4goZzGrg1JOCS+3teulVVIVlyEo2ANsF+r8AF8lOTIyaf6Zi48iN5Is2ncQ+sZsp1JMALZSnHLuCiUdDq2PSAkW1AMFJjLgQBLDEKyib+xitBQfnGjvFCeMSOwZp2fCiSRGCVkkriNLiYD+PsAtzszkk2oV2qEeIMT1f0QRYyEJHuOIyV67t6tfZYq/Lv0y9VWk49hw68D4a7ICtl65JAZ57WuSZUiQVAcAt9jQrZUlsMyLzIIrnLRsUdrTuC7BNDktfW5IMC6g3ZkNSTDDQCy0Szm0JAp/fbL8x6mZFvHmS4m+8ZeFpwmumej+zxOslncIuXlLuplPU09d/hJmAOYgZRi2qI4WJQM7Cil5/DjI9BenFWwQxwEIRrVwRuFLNmWwNn8wsnhMey6vyxEIqoQioIrzF9RMesI3LPUbRRNJr5NI45wuz87+S2qLuA2kB7VeWyPDub9GBQEfPD6qylkVN4xJbzjt6V3nCX1RU/iHFhJZHOp8oDVDXaN4SAii/5IMfjD+T+xIkEjoJzAo1AmD9Zp9Fws7XDODyFr6TdOGTlRu2a+Rlfwd3CNRsB128OC0LN04e3P1Nqzy2MARp+eV8Uh89CgJiOmPHWxr6FyNlgExZsUC3be1sNNAuXj17ZvA5c9tj77zXOfomVNE2Kvjrg6p4EsPtp7iqJVP8fcCEuokEYHeJ6pur++6ssUr730nyfiw6/BbSe7As6seDOlBBe0bphNFRf3Bc75HOQNXIRQEA2lIWNHapOzXL18/dys/d/IHgPq2xm6bnm2cuG/s/EHPWxzi0lgE375luJbpZIWX5yRb3YWfXnTXZqyZXvPnCn0bhD2VbHOislq+K27vNXxfrqUmHjj8A4F7v5jglKPbAAAAAElFTkSuQmCC",q=""+new URL("cover-platformer-DAN_DMYF.png",import.meta.url).href,$=""+new URL("cover-reader-B2WHT0Sl.png",import.meta.url).href,_="data:image/png;base64,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",ee=""+new URL("cover-tangle-CBYOsPot.png",import.meta.url).href,t=({children:a,selected:s})=>e.jsx("div",{className:`flex h-[30px] items-center gap-1.5 rounded-sm px-2 text-sm font-medium ${s?"bg-gray-100 text-black":"text-gray-700 dark:text-gray-600"}`,children:a}),n=({children:a,selected:s,onClick:r,onMouseEnter:l,onMouseLeave:i})=>e.jsx(x,{className:`h-auto rounded-full px-3 py-0.5 font-mono text-sm font-medium uppercase tracking-wide ${!s&&"bg-transparent text-gray-700 dark:text-gray-600"}`,onClick:r,onMouseEnter:l,onMouseLeave:i,children:a}),m=({selectedTab:a})=>e.jsxs("div",{className:"flex h-full flex-col gap-px border-l border-gray-200 pl-4 pt-4 dark:border-gray-900",children:[e.jsxs(t,{selected:a===1,children:[e.jsx(M,{size:16,strokeWidth:1.5})," Inbox"]}),e.jsxs(t,{selected:a===2,children:[e.jsx(O,{size:16,strokeWidth:1.5})," Feed"]}),e.jsxs(t,{children:[e.jsx(F,{size:16,strokeWidth:1.5})," Notifications"]}),e.jsxs(t,{children:[e.jsx(S,{size:16,strokeWidth:1.5})," Explore"]}),e.jsxs(t,{children:[e.jsx(g,{size:16,strokeWidth:1.5})," Profile"]}),e.jsx("div",{className:"mt-8",children:e.jsxs("div",{className:"inline-flex h-8 items-center gap-1.5 rounded-full bg-purple-500 pl-2 pr-3 text-sm font-medium text-white",children:[e.jsx(z,{size:16,strokeWidth:1.5})," New note"]})})]}),ae=()=>{const a=[{avatar:_,publisher:"Tangle",title:"The Sunday — February 23",excerpt:"This is the Tangle Sunday Edition, a brief roundup of our independent politics coverage plus some extra features for your Sunday morning reading.",cover:ee},{avatar:V,publisher:"Creator Science",title:"A lesson from basketball's 3-point line",excerpt:`The NBA was formed in 1949 after the merger of the National Basketball League (founded in 1937) and the
2
- Basketball Association of America (founded in 1946).`,cover:H},{avatar:J,publisher:"Gone with the Wynns",title:"How far can our electric boat go?",excerpt:"Does an electric tender actually have the stamina needed to work for cruising life?  Until now, we honestly didn't know how long or far we could go with our electric jet propulsion. I guess we just haven't been...",cover:K},{avatar:X,publisher:"Platformer",title:"Manus of the hour",excerpt:"What the hype cycle around a new Chinese AI model tells us about the state of competition in agents",cover:q},{avatar:Z,publisher:"The Lever",title:"Is It Still Safe To Fly?",excerpt:"Aviation and antitrust expert Bill McGee breaks down recent airplane disasters and reveals the real risks to our airspace.",cover:P}];return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex w-full justify-between border-b border-gray-200 py-5 dark:border-gray-900",children:[e.jsx(d,{children:"Inbox"}),e.jsx("div",{className:"flex h-[30px] w-[232px] items-center rounded-full bg-gray-100 px-2 text-gray-400 dark:bg-gray-950",children:e.jsx(h,{size:16,strokeWidth:1.5})})]}),e.jsxs("div",{className:"grid h-full grid-cols-[auto_248px] gap-4",children:[e.jsx("div",{children:a.map(s=>e.jsxs("div",{className:"flex items-center justify-between gap-8 border-b border-gray-200 py-4 dark:border-gray-900",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-sm font-semibold",children:[e.jsx("div",{className:"size-4 rounded-full bg-cover bg-center bg-no-repeat",style:{backgroundImage:`url(${s.avatar})`}}),s.publisher]}),e.jsx("div",{className:"font-semibold",children:s.title}),e.jsx("div",{className:"text-sm text-gray-700 dark:text-gray-600",children:s.excerpt})]}),e.jsx("div",{children:e.jsx("div",{className:"h-20 w-[120px] min-w-[120px] rounded-sm bg-cover bg-center bg-no-repeat",style:{backgroundImage:`url(${s.cover})`}})})]},s.publisher))}),e.jsx(m,{selectedTab:1})]})]})},se=()=>{const a=[{avatar:Y,publisher:"Flibboard",handle:"@flipboard@flipboard.social — 17m",post:e.jsxs("div",{children:[e.jsx("span",{className:"text-purple",children:"@newyorktimes's"})," veteran tech reporter ",e.jsx("span",{className:"text-purple",children:"@Markoff"})," interviewed some of ",e.jsx("span",{className:"text-purple",children:"#TeamFediverse"})," including our CEO ",e.jsx("span",{className:"text-purple",children:"@mike"}),' for a feature on the rise of decentralized social media. "It goes back to the original principles... ',e.jsx("span",{className:"text-purple",children:"Show more"})]}),likes:94,replies:12,reposts:71,liked:!1},{avatar:W,publisher:"Casey Newton",handle:"@caseynewton@mastodon.social — 2h",post:e.jsxs("div",{children:["This sucks. I met my wife on the basic HTML version of Gmail. ",e.jsx("span",{className:"text-purple",children:"techmeme.com/23092..."})]}),likes:118,replies:32,reposts:27,liked:!0},{avatar:D,publisher:"Evan Prodromou",handle:"@evan@cosocial.ca — 2h",post:e.jsxs("div",{children:["At #FediverseHouse, after ",e.jsx("span",{className:"text-purple",children:"@pluralistic"}),"'s talk, I came up and thanked him for speaking. We've never met before in person, so I asked if we could do a selfie."]}),likes:44,replies:20,reposts:14,liked:!0}],{data:s}=y("index","me");return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex w-full justify-between border-b border-gray-200 py-5 dark:border-gray-900",children:[e.jsx(d,{children:"Feed"}),e.jsx("div",{className:"flex h-[30px] w-[232px] items-center rounded-full bg-gray-100 px-2 text-gray-400 dark:bg-gray-950",children:e.jsx(h,{size:16,strokeWidth:1.5})})]}),e.jsxs("div",{className:"grid h-full grid-cols-[auto_248px] gap-4",children:[e.jsxs("div",{className:"mx-auto flex w-full max-w-[524px] flex-col items-center gap-4 pt-8",children:[e.jsxs("div",{className:"mb-5 flex w-full items-center gap-3 rounded-md bg-white p-3 text-gray-600 shadow-sm dark:bg-gray-950",children:[e.jsxs(k,{className:"size-9",children:[e.jsx(I,{src:s?.avatarUrl}),e.jsx(Q,{children:e.jsx(g,{strokeWidth:1.5})})]}),"What's new?"]}),a.map(r=>e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex w-full items-start gap-3 px-3",children:[e.jsx("div",{className:"size-9 max-h-9 min-h-9 min-w-9 max-w-9 rounded-full bg-cover bg-center bg-no-repeat",style:{backgroundImage:`url(${r.avatar})`}}),e.jsxs("div",{className:"flex flex-col gap-3 text-sm",children:[e.jsxs("div",{className:"mt-0.5 flex flex-col gap-0.5",children:[e.jsx("div",{className:"font-semibold leading-tighter",children:r.publisher}),e.jsx("div",{className:"leading-tighter text-gray-700 dark:text-gray-600",children:r.handle})]}),e.jsx("div",{children:r.post}),e.jsxs("div",{className:"flex items-center gap-3 text-xs font-medium",children:[e.jsxs("div",{className:`flex items-center gap-1 ${r.liked&&"text-pink-500"}`,children:[e.jsx(B,{size:14,strokeWidth:1.5}),r.likes]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(L,{size:14,strokeWidth:1.5}),r.likes]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(U,{size:14,strokeWidth:1.5}),r.likes]})]})]})]}),e.jsx(E,{})]}))]}),e.jsx(m,{selectedTab:2})]})]})},re=()=>e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative flex w-full items-center justify-center border-b border-gray-200 py-5 dark:border-gray-900",children:[e.jsxs("div",{className:"flex w-full max-w-[520px] items-center gap-3 text-sm",children:[e.jsx("div",{className:"size-9 max-h-9 min-h-9 min-w-9 max-w-9 rounded-full bg-cover bg-center bg-no-repeat",style:{backgroundImage:`url(${T})`}}),e.jsxs("div",{className:"mt-0.5 flex flex-col gap-0.5",children:[e.jsx("div",{className:"font-semibold leading-tighter",children:"404 Media"}),e.jsx("div",{className:"leading-tighter text-gray-700 dark:text-gray-600",children:"@index@404media.co — Yesterday"})]})]}),e.jsxs("div",{className:"absolute right-0 flex items-center gap-4 text-gray-500",children:[e.jsx(G,{size:28,strokeWidth:1}),e.jsx(R,{size:22,strokeWidth:1.15})]})]}),e.jsx("div",{className:"mt-8 flex w-full flex-col items-center",children:e.jsxs("div",{className:"flex w-full max-w-[610px] flex-col gap-5",children:[e.jsx(d,{className:"mx-auto max-w-[520px]",children:"Decentralized Social Media Is the Only Alternative to the Tech Oligarchy"}),e.jsx("div",{className:"h-[320px] w-full bg-cover bg-center bg-no-repeat",style:{backgroundImage:`url(${$})`}}),e.jsx("div",{className:"mx-auto max-w-[520px] font-serif text-lg",children:"The TikTok ban and Donald Trump's rise to power show how fragile our social media accounts are. We must normalize and invest in decentralized social media."}),e.jsx("div",{className:"mx-auto max-w-[520px] font-serif",children:"If it wasn’t already obvious, the last 72 hours have made it crystal clear that it is urgent to build and mainstream alternative, decentralized social media platforms that are resistant to government censorship and control, are not owned by oligarchs and dominated by their algorithms, and in which users own their follower list and can port it elsewhere easily and without restriction."})]})})]}),Ae=()=>{const[a,s]=o.useState(1),[r,l]=o.useState(!1),{setOnboarded:i}=b(),u=w(),{topicsQuery:p}=N(),{data:c}=p,f=c&&c.topics.length>0;o.useEffect(()=>{if(r)return;const j=setInterval(()=>{s(A=>A===3?1:A+1)},3e3);return()=>clearInterval(j)},[r]);const v=async()=>{await i(!0),u(f?"/explore":"/")};return e.jsxs("div",{className:"flex size-full max-h-screen flex-col gap-4 overflow-hidden px-14",children:[e.jsxs(C,{children:[e.jsxs("div",{className:"flex flex-col justify-between gap-4 text-xl font-medium",children:[e.jsx("h1",{className:"max-w-[680px]",children:"Find inspiration & follow what you love."}),e.jsx("div",{className:"flex max-w-[680px] flex-col gap-4",children:e.jsxs("p",{className:"tracking-tight text-gray-700 dark:text-gray-600",children:["Follow-back your community to connect with them directly, or subscribe to your peers for inspiration to fuel your next idea. You now have a native ",e.jsx("span",{className:"font-semibold text-black",children:"social web reader"})," inside Ghost for keeping track of your favourite creators across different platforms."]})})]}),e.jsx(x,{className:"min-w-60 bg-gradient-to-r from-purple-500 to-[#6A1AD6] hover:opacity-90 dark:text-white",size:"lg",onClick:v,children:"Next →"})]}),e.jsxs("div",{className:"mt-8 flex h-full max-h-[760px] flex-col items-stretch justify-end",children:[e.jsxs("div",{className:"flex items-center justify-center gap-2",onMouseEnter:()=>{l(!0)},onMouseLeave:()=>{l(!1)},children:[e.jsx(n,{selected:a===1,onClick:()=>{s(1)},children:"Long form content"}),e.jsx(n,{selected:a===2,onClick:()=>{s(2)},children:"Short form content"}),e.jsx(n,{selected:a===3,onClick:()=>{s(3)},children:"Integrated reader"})]}),e.jsxs("div",{className:"pointer-events-none relative -mx-14 mt-5 w-[calc(100%+112px)] overflow-y-hidden px-14",children:[e.jsxs("div",{className:"mx-auto h-[694px] w-full max-w-6xl overflow-hidden rounded-md bg-white shadow-xl dark:bg-[#101114]",children:[e.jsxs("div",{className:"flex h-5 w-full items-center gap-1.5 bg-gray-100 pl-2 dark:bg-gray-950",children:[e.jsx("div",{className:"size-2 rounded-full bg-gray-300"}),e.jsx("div",{className:"size-2 rounded-full bg-gray-300"}),e.jsx("div",{className:"size-2 rounded-full bg-gray-300"})]}),e.jsxs("div",{className:"h-full px-8",children:[a===1&&e.jsx(ae,{}),a===2&&e.jsx(se,{}),a===3&&e.jsx(re,{})]})]}),e.jsx("div",{className:"absolute inset-x-0 bottom-0 h-18 bg-gradient-to-t from-white via-[rgba(255,255,255,0.71)] to-[rgba(255,255,255,0)] dark:from-black dark:via-[rgba(0,0,0,0.71)] dark:to-[rgba(0,0,0,0)]"})]})]})]})};export{Ae as default};
1
+ import{r as o,k as b,b as w,p as N,j as e,B as x,bN as d,cp as h,m as y,bs as k,bt as I,bu as B,bH as g,bn as Q,aR as E,X as R,bp as F,aT as S,bg as z}from"./index-DCTdAEHx.js";import{H as C,f as Y}from"./avatar-flipboard-CLmWb5Xn.js";import{R as L}from"./reply-CooY4lmk.js";import{R as U}from"./repeat-Smml9n0k.js";import{A as G}from"./a-large-small-p58xibEK.js";import{I as M}from"./inbox-p-Y5uScT.js";import{H as O}from"./hash-DFhnGHId.js";const W=""+new URL("avatar-casey-HhhTWg6d.png",import.meta.url).href,V=""+new URL("avatar-creator-science-CBlOgcmP.png",import.meta.url).href,H=""+new URL("cover-creator-science-C2MTxAZ7.png",import.meta.url).href,D=""+new URL("avatar-evan-DMWltndD.png",import.meta.url).href,T="data:image/png;base64,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",J="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAcGSURBVHgBzVlrUFRlGH7Ohd1lYdllIe8YltnNEstpKiYXsswfKe6Uly6aNv1walLsR+UfhcZKa0y0H81kljNaIzIjAuo04w3vNyyUdExFF1RUCF1gwd1l95ze96ysy7ogu4PoM3OA/c737Xm+571873kRECOmF5dlqVAzIMAG+q0CFgQuhpMuhwDBoarqcRFi+Xr7xHLEACGayZOLiy06UZ4HVckNIdNTMOFyQfXnr7fbHT1d1COCAWLSIqhqLnoBRHRNT4neleC0krJ5qqrkIXrF7gYyv5BfZJ+0prtJ3RKcWlK6vLdU65KAIBQU5kya3+X9SINsUr0gFVMQZKFvUOlVlexNdrsz/IYYabZOEHf1ITlGBgsS6cYdBDWz0gL0MViQaYFnd0InE08vLp6lCOJvuI8QVGF+oX1SQfBzxx9ELl3VTIt03F84yR+Hdfhj0MSqIC16AMgxLHrOubegKcjqkWkv4AECqZjMKmoKsnrdTeZd0Jka8boX6xg6iFr+lQMfu08p7YqC1Ph4SGLntBknSqh2OpGk18NPczqRo6kurxeDEk2Qw9ZJ5Fn1N9u0OV1yFTCPfuYJXJUogrIL3aDJ48GfU6fA4/dDom9VgwRF/Hv9OmZu3oph5iSEPstHhNNMJhS8Nk5bJwpCcLNGWcbBy5eRt28/LAZDl88VKXnLCpQs3AW8y83V5/FEihW23//AoxYLFKLT4vHi+Iez8cqQIbhASspSIOaYTE1zM4om52DxgQMoPnMOxjgZCtdkBj22vP0Wvty9h9RNpLGuza1CyhBJ51Ghg/wlTe0GtPj0dJEnCCqs8Qbk027Tk5Lw0ahnkULmHkymG2Y246v9B7AkayzqWl1BlZxuN74Z+wqutrai5Ow5PGa1YIgpkZT0oShnElYe+wsmXRxZ0Y//vEyyq5JAzaItq+mhQ2y2xY9vxey0I5jz8GE42lLIXED/RAsWEslFmZmoczEZKkMlA7acr8Hf9dcx45kMNHn9aFcluBUBqQlm5O7Yg6HmVDKriBbyR94cK/Zr1SkY5HhcumnBsic3whTnI1HiNTE60RMwSpi6qeQGQkopt1/G4PgWrHx2FTkz0Oi1Yvm58eivb8ZaRz+UvWVHxdWr+OnYEbw58DJaFSOuEGH2KxMFC0eoJAm45mqD1RCvRYtMmymsTUXFzCl4Z3M5RhjOwCh54VNFPGxswvsjirDyn1nY1vgYjGJ7KEenjLA6L4EW7mp8FCedT2JkQi1F7zV8MnwnRFqYaX0EU8r6Ye/08cg/VI1xA7fBIrcRKUFLKT5V4fKJNnY7kAw6Fz6veB0rX7OhqqERDS2X8PPoUrR5TTTXT35M/uw247307SipHxlO0CKHW71VMeBA5lLE651kDhG5lR/jsDMNBloYJ/igxzXsqqnFxokvwLahDWlJyZo7u31+jBkwEGdvNMLV7iNXCfgVqzSA1H95UD+ML9wAq9GCCXu/oNTjx0W3FRW2RVhX8wZ+rLFhhPGaNj8Ud5hYFhRc8ZjJfUXNefvrmrWxDkU4EBxNTTg4433ysZ24SNEqk99yKskeOhTzxjyPF9eu0wKIUjKqbzhRRlG7p/Yifqk6gWT97bRCT0BDuxl60Ysk2R0pWJy8z05FIu/gIV0LBuiaMIhUlELIMdjJ+xmN+O7wESyxjUUtEeTAcvt8WH3ihJZeltL4FVcLPKTqxOHD0T8hAcuOHkUK+2TodxHFlLgWJEqeriLZIaoQKhElOCA2nD6tkZr7/BhU1tfjh1ez8X12Nt4tLYWNlOQ0VOdqxcLMl7GgfI/2WenBERcKCuoajuzdiBJ8qHGy/nTbdswY+RReGjwIT6Wm4uuDh+CFlcifxPJxr2LO6AzUNjWTz9ZAJ4vRPoYtV0km9ketYAcc9PDDdXVYNWECvj1UgafNbqx+bisW7DuFBJ0Os58Zifk7d+CRZDOiFE8D+Wi5SO+m5Qjzw54iLcmknadVDQ0oO3uWEq5MydWDdHMyFuzejS3V1XSOe7XTKQY4mFtAdxUrEAP8JIuZzta523cQqUScbzPjs6p3KK24cKnZpR1pHFCxgLsQ/FsjSHssQIxg0zEJJiuRQ6cSOc4EcVQ4WLgMU2OTjzsPQYJcuaoxqngvwK2RjrZIMLTaobU3YvLFXoajQz1GkCCrKKhKPu4zuF8T2lTqlJwK7faC+2lqalKtCG8mRTxfpm0q7evWB6Nyw+Sc0eGDEdO7R/XbeQH6CJxSuHkU+V43mFJcUiAE3q7uGQJmtXfZ4uv2gCyy5+TSm9Vs2oUDvQ8OyvndkWP0qAWsdR4g5tHsD9ALYNWobs6L1A8MR1RN9A6iZHZbDH0cJzXfV3iBgp4Qi4lgKIhsFpHNoneQUWrgzZCv4L8hAoUw1ZpUznHFdKsoiRr/A/zDEfoQny+OAAAAAElFTkSuQmCC",K=""+new URL("cover-gone-C66KVDXu.png",import.meta.url).href,Z="data:image/png;base64,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",P=""+new URL("cover-lever-CyLTy-uw.png",import.meta.url).href,X="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAApCAYAAABHomvIAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAR7SURBVHgB7VhNaFxVFD7n3vfezJt5k58mY36akCFNKhoiFlQalFhcuJEusogLV25ciEhFXLgodAi4KK5EELty4UYIapGCIBSysO3G+IPUStU2Yts0TpPMT+bNy8y993jfJNWkmSTvzZiUlvlghsv9O9897957vnsAmmji/gKhceDaL71Nc7WeajQQBJy8YXQf/TqlvMIwJ2ISWQEYrjBTCfAYGhDJQqxUIlnCtgG7cHl6sqLNBiIXlKDfpzphKvVqNEv8MVKUlBW3JdH/umobHLeEhMeVgqd1x1ZUkCeufwCCkR5LkNX1JdJlEyEvdFkxKHMFrmGAUVxaubN0fWo2f+3936GGV4N5cHKSH8580M6SPSOeJ55HRcMgMSWVV0JVySCPtyNaRzSJLt8IbTZE26za72YwExeAiTOFSyc+zmQ+un1vPwMCwD4/1+uNVqZsAxzLMc6ZAr7N/PaZtzx32rWjw5Zz6OS43fnEIelBt287+L7xXYwmAGPCNK1aPQIR5Gg7CvgLxflr3xcL02eXZ9/N3W2rwI8QS73Roc0UwIOQYL4bi6RUGbGoavcIQlDEy9xsu1qa//ybjeTWMGYDNxKggs0VFsEnJcUYj5qwzwi1akJjT7y0E/bdYFg0CTaKJsFGEYKgjqD6HMM+YzuCm4goZzGrg1JOCS+3teulVVIVlyEo2ANsF+r8AF8lOTIyaf6Zi48iN5Is2ncQ+sZsp1JMALZSnHLuCiUdDq2PSAkW1AMFJjLgQBLDEKyib+xitBQfnGjvFCeMSOwZp2fCiSRGCVkkriNLiYD+PsAtzszkk2oV2qEeIMT1f0QRYyEJHuOIyV67t6tfZYq/Lv0y9VWk49hw68D4a7ICtl65JAZ57WuSZUiQVAcAt9jQrZUlsMyLzIIrnLRsUdrTuC7BNDktfW5IMC6g3ZkNSTDDQCy0Szm0JAp/fbL8x6mZFvHmS4m+8ZeFpwmumej+zxOslncIuXlLuplPU09d/hJmAOYgZRi2qI4WJQM7Cil5/DjI9BenFWwQxwEIRrVwRuFLNmWwNn8wsnhMey6vyxEIqoQioIrzF9RMesI3LPUbRRNJr5NI45wuz87+S2qLuA2kB7VeWyPDub9GBQEfPD6qylkVN4xJbzjt6V3nCX1RU/iHFhJZHOp8oDVDXaN4SAii/5IMfjD+T+xIkEjoJzAo1AmD9Zp9Fws7XDODyFr6TdOGTlRu2a+Rlfwd3CNRsB128OC0LN04e3P1Nqzy2MARp+eV8Uh89CgJiOmPHWxr6FyNlgExZsUC3be1sNNAuXj17ZvA5c9tj77zXOfomVNE2Kvjrg6p4EsPtp7iqJVP8fcCEuokEYHeJ6pur++6ssUr730nyfiw6/BbSe7As6seDOlBBe0bphNFRf3Bc75HOQNXIRQEA2lIWNHapOzXL18/dys/d/IHgPq2xm6bnm2cuG/s/EHPWxzi0lgE375luJbpZIWX5yRb3YWfXnTXZqyZXvPnCn0bhD2VbHOislq+K27vNXxfrqUmHjj8A4F7v5jglKPbAAAAAElFTkSuQmCC",q=""+new URL("cover-platformer-DAN_DMYF.png",import.meta.url).href,$=""+new URL("cover-reader-B2WHT0Sl.png",import.meta.url).href,_="data:image/png;base64,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",ee=""+new URL("cover-tangle-CBYOsPot.png",import.meta.url).href,t=({children:a,selected:s})=>e.jsx("div",{className:`flex h-[30px] items-center gap-1.5 rounded-sm px-2 text-sm font-medium ${s?"bg-gray-100 text-black":"text-gray-700 dark:text-gray-600"}`,children:a}),n=({children:a,selected:s,onClick:r,onMouseEnter:l,onMouseLeave:i})=>e.jsx(x,{className:`h-auto rounded-full px-3 py-0.5 font-mono text-sm font-medium uppercase tracking-wide ${!s&&"bg-transparent text-gray-700 dark:text-gray-600"}`,onClick:r,onMouseEnter:l,onMouseLeave:i,children:a}),m=({selectedTab:a})=>e.jsxs("div",{className:"flex h-full flex-col gap-px border-l border-gray-200 pl-4 pt-4 dark:border-gray-900",children:[e.jsxs(t,{selected:a===1,children:[e.jsx(M,{size:16,strokeWidth:1.5})," Inbox"]}),e.jsxs(t,{selected:a===2,children:[e.jsx(O,{size:16,strokeWidth:1.5})," Feed"]}),e.jsxs(t,{children:[e.jsx(F,{size:16,strokeWidth:1.5})," Notifications"]}),e.jsxs(t,{children:[e.jsx(S,{size:16,strokeWidth:1.5})," Explore"]}),e.jsxs(t,{children:[e.jsx(g,{size:16,strokeWidth:1.5})," Profile"]}),e.jsx("div",{className:"mt-8",children:e.jsxs("div",{className:"inline-flex h-8 items-center gap-1.5 rounded-full bg-purple-500 pl-2 pr-3 text-sm font-medium text-white",children:[e.jsx(z,{size:16,strokeWidth:1.5})," New note"]})})]}),ae=()=>{const a=[{avatar:_,publisher:"Tangle",title:"The Sunday — February 23",excerpt:"This is the Tangle Sunday Edition, a brief roundup of our independent politics coverage plus some extra features for your Sunday morning reading.",cover:ee},{avatar:V,publisher:"Creator Science",title:"A lesson from basketball's 3-point line",excerpt:`The NBA was formed in 1949 after the merger of the National Basketball League (founded in 1937) and the
2
+ Basketball Association of America (founded in 1946).`,cover:H},{avatar:J,publisher:"Gone with the Wynns",title:"How far can our electric boat go?",excerpt:"Does an electric tender actually have the stamina needed to work for cruising life?  Until now, we honestly didn't know how long or far we could go with our electric jet propulsion. I guess we just haven't been...",cover:K},{avatar:X,publisher:"Platformer",title:"Manus of the hour",excerpt:"What the hype cycle around a new Chinese AI model tells us about the state of competition in agents",cover:q},{avatar:Z,publisher:"The Lever",title:"Is It Still Safe To Fly?",excerpt:"Aviation and antitrust expert Bill McGee breaks down recent airplane disasters and reveals the real risks to our airspace.",cover:P}];return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex w-full justify-between border-b border-gray-200 py-5 dark:border-gray-900",children:[e.jsx(d,{children:"Inbox"}),e.jsx("div",{className:"flex h-[30px] w-[232px] items-center rounded-full bg-gray-100 px-2 text-gray-400 dark:bg-gray-950",children:e.jsx(h,{size:16,strokeWidth:1.5})})]}),e.jsxs("div",{className:"grid h-full grid-cols-[auto_248px] gap-4",children:[e.jsx("div",{children:a.map(s=>e.jsxs("div",{className:"flex items-center justify-between gap-8 border-b border-gray-200 py-4 dark:border-gray-900",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-sm font-semibold",children:[e.jsx("div",{className:"size-4 rounded-full bg-cover bg-center bg-no-repeat",style:{backgroundImage:`url(${s.avatar})`}}),s.publisher]}),e.jsx("div",{className:"font-semibold",children:s.title}),e.jsx("div",{className:"text-sm text-gray-700 dark:text-gray-600",children:s.excerpt})]}),e.jsx("div",{children:e.jsx("div",{className:"h-20 w-[120px] min-w-[120px] rounded-sm bg-cover bg-center bg-no-repeat",style:{backgroundImage:`url(${s.cover})`}})})]},s.publisher))}),e.jsx(m,{selectedTab:1})]})]})},se=()=>{const a=[{avatar:Y,publisher:"Flibboard",handle:"@flipboard@flipboard.social — 17m",post:e.jsxs("div",{children:[e.jsx("span",{className:"text-purple",children:"@newyorktimes's"})," veteran tech reporter ",e.jsx("span",{className:"text-purple",children:"@Markoff"})," interviewed some of ",e.jsx("span",{className:"text-purple",children:"#TeamFediverse"})," including our CEO ",e.jsx("span",{className:"text-purple",children:"@mike"}),' for a feature on the rise of decentralized social media. "It goes back to the original principles... ',e.jsx("span",{className:"text-purple",children:"Show more"})]}),likes:94,replies:12,reposts:71,liked:!1},{avatar:W,publisher:"Casey Newton",handle:"@caseynewton@mastodon.social — 2h",post:e.jsxs("div",{children:["This sucks. I met my wife on the basic HTML version of Gmail. ",e.jsx("span",{className:"text-purple",children:"techmeme.com/23092..."})]}),likes:118,replies:32,reposts:27,liked:!0},{avatar:D,publisher:"Evan Prodromou",handle:"@evan@cosocial.ca — 2h",post:e.jsxs("div",{children:["At #FediverseHouse, after ",e.jsx("span",{className:"text-purple",children:"@pluralistic"}),"'s talk, I came up and thanked him for speaking. We've never met before in person, so I asked if we could do a selfie."]}),likes:44,replies:20,reposts:14,liked:!0}],{data:s}=y("index","me");return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex w-full justify-between border-b border-gray-200 py-5 dark:border-gray-900",children:[e.jsx(d,{children:"Feed"}),e.jsx("div",{className:"flex h-[30px] w-[232px] items-center rounded-full bg-gray-100 px-2 text-gray-400 dark:bg-gray-950",children:e.jsx(h,{size:16,strokeWidth:1.5})})]}),e.jsxs("div",{className:"grid h-full grid-cols-[auto_248px] gap-4",children:[e.jsxs("div",{className:"mx-auto flex w-full max-w-[524px] flex-col items-center gap-4 pt-8",children:[e.jsxs("div",{className:"mb-5 flex w-full items-center gap-3 rounded-md bg-white p-3 text-gray-600 shadow-sm dark:bg-gray-950",children:[e.jsxs(k,{className:"size-9",children:[e.jsx(I,{src:s?.avatarUrl}),e.jsx(B,{children:e.jsx(g,{strokeWidth:1.5})})]}),"What's new?"]}),a.map(r=>e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex w-full items-start gap-3 px-3",children:[e.jsx("div",{className:"size-9 max-h-9 min-h-9 min-w-9 max-w-9 rounded-full bg-cover bg-center bg-no-repeat",style:{backgroundImage:`url(${r.avatar})`}}),e.jsxs("div",{className:"flex flex-col gap-3 text-sm",children:[e.jsxs("div",{className:"mt-0.5 flex flex-col gap-0.5",children:[e.jsx("div",{className:"font-semibold leading-tighter",children:r.publisher}),e.jsx("div",{className:"leading-tighter text-gray-700 dark:text-gray-600",children:r.handle})]}),e.jsx("div",{children:r.post}),e.jsxs("div",{className:"flex items-center gap-3 text-xs font-medium",children:[e.jsxs("div",{className:`flex items-center gap-1 ${r.liked&&"text-pink-500"}`,children:[e.jsx(Q,{size:14,strokeWidth:1.5}),r.likes]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(L,{size:14,strokeWidth:1.5}),r.likes]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(U,{size:14,strokeWidth:1.5}),r.likes]})]})]})]}),e.jsx(E,{})]}))]}),e.jsx(m,{selectedTab:2})]})]})},re=()=>e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative flex w-full items-center justify-center border-b border-gray-200 py-5 dark:border-gray-900",children:[e.jsxs("div",{className:"flex w-full max-w-[520px] items-center gap-3 text-sm",children:[e.jsx("div",{className:"size-9 max-h-9 min-h-9 min-w-9 max-w-9 rounded-full bg-cover bg-center bg-no-repeat",style:{backgroundImage:`url(${T})`}}),e.jsxs("div",{className:"mt-0.5 flex flex-col gap-0.5",children:[e.jsx("div",{className:"font-semibold leading-tighter",children:"404 Media"}),e.jsx("div",{className:"leading-tighter text-gray-700 dark:text-gray-600",children:"@index@404media.co — Yesterday"})]})]}),e.jsxs("div",{className:"absolute right-0 flex items-center gap-4 text-gray-500",children:[e.jsx(G,{size:28,strokeWidth:1}),e.jsx(R,{size:22,strokeWidth:1.15})]})]}),e.jsx("div",{className:"mt-8 flex w-full flex-col items-center",children:e.jsxs("div",{className:"flex w-full max-w-[610px] flex-col gap-5",children:[e.jsx(d,{className:"mx-auto max-w-[520px]",children:"Decentralized Social Media Is the Only Alternative to the Tech Oligarchy"}),e.jsx("div",{className:"h-[320px] w-full bg-cover bg-center bg-no-repeat",style:{backgroundImage:`url(${$})`}}),e.jsx("div",{className:"mx-auto max-w-[520px] font-serif text-lg",children:"The TikTok ban and Donald Trump's rise to power show how fragile our social media accounts are. We must normalize and invest in decentralized social media."}),e.jsx("div",{className:"mx-auto max-w-[520px] font-serif",children:"If it wasn’t already obvious, the last 72 hours have made it crystal clear that it is urgent to build and mainstream alternative, decentralized social media platforms that are resistant to government censorship and control, are not owned by oligarchs and dominated by their algorithms, and in which users own their follower list and can port it elsewhere easily and without restriction."})]})})]}),Ae=()=>{const[a,s]=o.useState(1),[r,l]=o.useState(!1),{setOnboarded:i}=b(),u=w(),{topicsQuery:p}=N(),{data:c}=p,f=c&&c.topics.length>0;o.useEffect(()=>{if(r)return;const j=setInterval(()=>{s(A=>A===3?1:A+1)},3e3);return()=>clearInterval(j)},[r]);const v=async()=>{await i(!0),u(f?"/explore":"/")};return e.jsxs("div",{className:"flex size-full max-h-screen flex-col gap-4 overflow-hidden px-14",children:[e.jsxs(C,{children:[e.jsxs("div",{className:"flex flex-col justify-between gap-4 text-xl font-medium",children:[e.jsx("h1",{className:"max-w-[680px]",children:"Find inspiration & follow what you love."}),e.jsx("div",{className:"flex max-w-[680px] flex-col gap-4",children:e.jsxs("p",{className:"tracking-tight text-gray-700 dark:text-gray-600",children:["Follow-back your community to connect with them directly, or subscribe to your peers for inspiration to fuel your next idea. You now have a native ",e.jsx("span",{className:"font-semibold text-black",children:"social web reader"})," inside Ghost for keeping track of your favourite creators across different platforms."]})})]}),e.jsx(x,{className:"min-w-60 bg-gradient-to-r from-purple-500 to-[#6A1AD6] hover:opacity-90 dark:text-white",size:"lg",onClick:v,children:"Next →"})]}),e.jsxs("div",{className:"mt-8 flex h-full max-h-[760px] flex-col items-stretch justify-end",children:[e.jsxs("div",{className:"flex items-center justify-center gap-2",onMouseEnter:()=>{l(!0)},onMouseLeave:()=>{l(!1)},children:[e.jsx(n,{selected:a===1,onClick:()=>{s(1)},children:"Long form content"}),e.jsx(n,{selected:a===2,onClick:()=>{s(2)},children:"Short form content"}),e.jsx(n,{selected:a===3,onClick:()=>{s(3)},children:"Integrated reader"})]}),e.jsxs("div",{className:"pointer-events-none relative -mx-14 mt-5 w-[calc(100%+112px)] overflow-y-hidden px-14",children:[e.jsxs("div",{className:"mx-auto h-[694px] w-full max-w-6xl overflow-hidden rounded-md bg-white shadow-xl dark:bg-[#101114]",children:[e.jsxs("div",{className:"flex h-5 w-full items-center gap-1.5 bg-gray-100 pl-2 dark:bg-gray-950",children:[e.jsx("div",{className:"size-2 rounded-full bg-gray-300"}),e.jsx("div",{className:"size-2 rounded-full bg-gray-300"}),e.jsx("div",{className:"size-2 rounded-full bg-gray-300"})]}),e.jsxs("div",{className:"h-full px-8",children:[a===1&&e.jsx(ae,{}),a===2&&e.jsx(se,{}),a===3&&e.jsx(re,{})]})]}),e.jsx("div",{className:"absolute inset-x-0 bottom-0 h-18 bg-gradient-to-t from-white via-[rgba(255,255,255,0.71)] to-[rgba(255,255,255,0)] dark:from-black dark:via-[rgba(0,0,0,0.71)] dark:to-[rgba(0,0,0,0)]"})]})]})]})};export{Ae as default};
@@ -1 +1 @@
1
- import{r as l,j as s,y as r,an as d,B as n}from"./index-B8G0f0hb.js";const c=l.forwardRef(({className:a,...e},t)=>s.jsx("div",{className:"relative w-full",children:s.jsx("table",{ref:t,className:r("w-full caption-bottom text-sm",a),...e})}));c.displayName="Table";const i=l.forwardRef(({className:a,...e},t)=>s.jsx("thead",{ref:t,className:r("[&_tr:hover:before]:bg-transparent",a),...e}));i.displayName="TableHeader";const b=l.forwardRef(({className:a,...e},t)=>s.jsx("tbody",{ref:t,className:r("",a),...e}));b.displayName="TableBody";const m=l.forwardRef(({className:a,...e},t)=>s.jsx("tfoot",{ref:t,className:r("border-b bg-muted/50 font-medium [&>tr]:last:border-b-0",a),...e}));m.displayName="TableFooter";const x=l.forwardRef(({className:a,...e},t)=>s.jsx("tr",{ref:t,className:r("group relative border-b data-[state=selected]:bg-muted",a),...e}));x.displayName="TableRow";const p=d("relative align-middle",{variants:{variant:{default:"h-10 px-2 text-left text-xs font-medium uppercase tracking-wide text-gray-700 [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",cardhead:"text-base font-normal [&>div]:px-0"}},defaultVariants:{variant:"default"}}),f=l.forwardRef(({className:a,variant:e,...t},o)=>s.jsx("th",{ref:o,className:r(p({variant:e,className:a})),...t}));f.displayName="TableHead";const u=({className:a,children:e,...t})=>{const o=r("text-xs uppercase tracking-wide leading-4 text-right text-gray-700 hover:bg-transparent px-0 [&_svg]:size-4 gap-1",a);return s.jsx(n,{className:o,size:"sm",variant:"ghost",...t,children:e})};u.displayName="TableHeadButton";const g=l.forwardRef(({className:a,...e},t)=>s.jsx("td",{ref:t,className:r("relative p-2.5 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] group-hover:bg-muted/50",a),...e}));g.displayName="TableCell";const N=l.forwardRef(({className:a,...e},t)=>s.jsx("caption",{ref:t,className:r("mt-4 text-sm text-muted-foreground",a),...e}));N.displayName="TableCaption";export{u as T,c as a,i as b,x as c,f as d,b as e,g as f,m as g};
1
+ import{r as l,j as s,y as r,an as d,B as n}from"./index-DCTdAEHx.js";const c=l.forwardRef(({className:a,...e},t)=>s.jsx("div",{className:"relative w-full",children:s.jsx("table",{ref:t,className:r("w-full caption-bottom text-sm",a),...e})}));c.displayName="Table";const i=l.forwardRef(({className:a,...e},t)=>s.jsx("thead",{ref:t,className:r("[&_tr:hover:before]:bg-transparent",a),...e}));i.displayName="TableHeader";const b=l.forwardRef(({className:a,...e},t)=>s.jsx("tbody",{ref:t,className:r("",a),...e}));b.displayName="TableBody";const m=l.forwardRef(({className:a,...e},t)=>s.jsx("tfoot",{ref:t,className:r("border-b bg-muted/50 font-medium [&>tr]:last:border-b-0",a),...e}));m.displayName="TableFooter";const x=l.forwardRef(({className:a,...e},t)=>s.jsx("tr",{ref:t,className:r("group relative border-b data-[state=selected]:bg-muted",a),...e}));x.displayName="TableRow";const p=d("relative align-middle",{variants:{variant:{default:"h-10 px-2 text-left text-xs font-medium uppercase tracking-wide text-gray-700 [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",cardhead:"text-base font-normal [&>div]:px-0"}},defaultVariants:{variant:"default"}}),f=l.forwardRef(({className:a,variant:e,...t},o)=>s.jsx("th",{ref:o,className:r(p({variant:e,className:a})),...t}));f.displayName="TableHead";const u=({className:a,children:e,...t})=>{const o=r("text-xs uppercase tracking-wide leading-4 text-right text-gray-700 hover:bg-transparent px-0 [&_svg]:size-4 gap-1",a);return s.jsx(n,{className:o,size:"sm",variant:"ghost",...t,children:e})};u.displayName="TableHeadButton";const g=l.forwardRef(({className:a,...e},t)=>s.jsx("td",{ref:t,className:r("relative p-2.5 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] group-hover:bg-muted/50",a),...e}));g.displayName="TableCell";const N=l.forwardRef(({className:a,...e},t)=>s.jsx("caption",{ref:t,className:r("mt-4 text-sm text-muted-foreground",a),...e}));N.displayName="TableCaption";export{u as T,c as a,i as b,x as c,f as d,b as e,g as f,m as g};
@@ -1 +1 @@
1
- import{r as n,j as t,y as d,an as u,ao as N,B as j,ap as T}from"./index-B8G0f0hb.js";import{R as c,L as p,T as m,C as f}from"./index-DKAlEWM4.js";import{L as w}from"./lucide-react-ClQ3Iy7l.js";import{T as k}from"./wallet-cards-xX4QZik7.js";const i=n.createContext("segmented"),C=n.forwardRef(({variant:e="segmented",...a},r)=>t.jsx(i.Provider,{value:e,children:t.jsx(c,{ref:r,...a})}));C.displayName=c.displayName;const R=u("inline-flex items-center text-muted-foreground",{variants:{variant:{segmented:"h-[34px] rounded-lg bg-muted px-[3px]","segmented-sm":"h-8 rounded-lg bg-muted px-[3px]",button:"gap-2","button-sm":"gap-1",underline:"w-full gap-5 border-b border-b-gray-200 dark:border-gray-950",navbar:"h-[52px] items-end gap-6",pill:"-ml-0.5 h-[30px] gap-px",kpis:"border-b ring-0"}},defaultVariants:{variant:"segmented"}}),z=n.forwardRef(({className:e,...a},r)=>{const s=n.useContext(i);return t.jsx(p,{ref:r,className:d(R({variant:s,className:e})),...a})});z.displayName=p.displayName;const b=u("inline-flex items-center justify-center whitespace-nowrap px-3 py-1 ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{segmented:"h-7 rounded-md text-sm font-medium data-[state=active]:shadow-md","segmented-sm":"h-[26px] rounded-md text-xs font-medium data-[state=active]:shadow-md",button:"h-[34px] gap-1.5 rounded-md py-2 text-sm font-normal hover:bg-muted data-[state=active]:bg-muted-foreground/10 data-[state=active]:font-medium","button-sm":"h-6 gap-1.5 rounded-md p-2 text-xs font-normal text-gray-800 hover:bg-muted data-[state=active]:bg-muted-foreground/10 data-[state=active]:font-medium data-[state=active]:text-foreground",underline:'relative h-[36px] px-0 text-md font-semibold text-gray-700 after:absolute after:inset-x-0 after:bottom-[-1px] after:h-0.5 after:bg-foreground after:opacity-0 after:content-[""] hover:after:opacity-10 data-[state=active]:bg-transparent data-[state=active]:text-foreground data-[state=active]:after:!opacity-100',navbar:'relative h-[52px] px-px text-md font-semibold text-muted-foreground after:absolute after:inset-x-0 after:-bottom-px after:h-0.5 after:bg-foreground after:opacity-0 after:content-[""] hover:text-foreground data-[state=active]:bg-transparent data-[state=active]:text-foreground data-[state=active]:after:!opacity-100',pill:"relative h-[30px] rounded-md px-3 text-md font-medium text-gray-800 hover:text-foreground data-[state=active]:bg-muted-foreground/10 data-[state=active]:font-semibold data-[state=active]:text-foreground dark:text-gray-500 dark:data-[state=active]:text-foreground",kpis:'relative !h-full !items-start rounded-none border-border bg-transparent px-6 py-5 text-foreground ring-0 transition-all after:absolute after:inset-x-0 after:-bottom-px after:h-0.5 after:bg-foreground after:opacity-0 after:content-[""] first:rounded-tl-md last:rounded-tr-md hover:bg-accent/50 data-[state=active]:bg-transparent data-[state=active]:after:opacity-100 [&:not(:last-child)]:border-r [&[data-state=active]_[data-type="value"]]:text-foreground'}},defaultVariants:{variant:"segmented"}}),v=n.forwardRef(({className:e,...a},r)=>{const s=n.useContext(i);return t.jsx(m,{ref:r,className:d(b({variant:s,className:e})),...a})});v.displayName=m.displayName;const V=({className:e="",children:a})=>t.jsx("span",{className:`ml-1.5 mt-px flex h-5 items-center justify-center rounded-full bg-gray-200 px-1.5 py-0 text-xs font-semibold leading-[21px] text-gray-800 dark:bg-gray-900 dark:text-gray-300 ${e}`,children:a});V.displayName="TabsTriggerCount";const L=u("ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",{variants:{variant:{segmented:"","segmented-sm":"",button:"","button-sm":"",underline:"",navbar:"",pill:"",kpis:"ring-0"}},defaultVariants:{variant:"segmented"}}),K=n.forwardRef(({className:e,...a},r)=>{const s=n.useContext(i);return t.jsx(f,{ref:r,className:d(L({variant:s,className:e})),...a})});K.displayName=f.displayName;const F=({children:e,...a})=>t.jsx(v,{className:"h-auto",...a,children:e}),M=({color:e,icon:a,label:r,value:s,diffDirection:o,diffValue:l,className:h,"data-testid":g})=>{const x=a?w[a]:null,y=d("flex items-center gap-1 text-xs h-[22px] px-1.5 rounded-sm group/diff cursor-default mt-0.5",o==="up"&&"text-green-600 bg-green/10",o==="down"&&"text-red-600 bg-red/10",o==="same"&&"text-gray-700 bg-muted");return t.jsxs("div",{className:d("group flex w-full flex-col items-start gap-2",h),children:[t.jsxs("div",{className:"flex h-[22px] items-center gap-1.5 text-base font-medium text-muted-foreground transition-all group-hover:text-foreground","data-type":"value",children:[e&&t.jsx("div",{className:"ml-1 size-2 rounded-full opacity-50",style:{backgroundColor:e}}),x&&t.jsx(x,{size:16,strokeWidth:1.5}),r]}),t.jsxs("div",{className:"flex flex-col items-start gap-2 lg:flex-row xl:gap-3",children:[t.jsx("div",{className:"text-[2.3rem] font-semibold leading-none tracking-tighter xl:text-[2.6rem]","data-testid":g,children:s}),o&&o!=="hidden"&&t.jsx(t.Fragment,{children:t.jsxs("div",{className:y,"data-testid":g?`${g}-diff`:void 0,children:[t.jsx("span",{className:"font-medium leading-none",children:l}),o==="up"&&t.jsx(N,{className:"!size-[12px]",size:14,strokeWidth:2}),o==="down"&&t.jsx(k,{className:"!size-[12px]",size:14,strokeWidth:2})]})})]})]})},B=n.forwardRef(({variant:e="dropdown",className:a,...r},s)=>t.jsx(j,{ref:s,className:d("h-auto w-full rounded-none border-x-0 border-t-0 focus-visible:ring-0 bg-transparent py-5",a),variant:e,...r}));B.displayName="KpiDropdownButton";const W=n.forwardRef(({children:e,className:a,...r},s)=>{const o=n.useContext(i);return t.jsxs("div",{className:"relative rounded-md hover:bg-muted",children:[t.jsx(m,{ref:s,className:d(b({variant:o,className:a})),...r,children:t.jsx("div",{className:"flex items-center gap-2",children:e})}),t.jsx(T,{className:"absolute inset-0 size-full cursor-pointer",onClick:l=>{l.preventDefault()}})]})});W.displayName="TabsDropdownTrigger";export{F as K,C as T,z as a,v as b,K as c,M as d,B as e,V as f};
1
+ import{r as n,j as t,y as d,an as u,ao as N,B as j,ap as T}from"./index-DCTdAEHx.js";import{R as c,L as p,T as m,C as f}from"./index-LyfDjTto.js";import{L as w}from"./lucide-react-DtMIZssr.js";import{T as k}from"./wallet-cards-ddLuIN-b.js";const i=n.createContext("segmented"),C=n.forwardRef(({variant:e="segmented",...a},r)=>t.jsx(i.Provider,{value:e,children:t.jsx(c,{ref:r,...a})}));C.displayName=c.displayName;const R=u("inline-flex items-center text-muted-foreground",{variants:{variant:{segmented:"h-[34px] rounded-lg bg-muted px-[3px]","segmented-sm":"h-8 rounded-lg bg-muted px-[3px]",button:"gap-2","button-sm":"gap-1",underline:"w-full gap-5 border-b border-b-gray-200 dark:border-gray-950",navbar:"h-[52px] items-end gap-6",pill:"-ml-0.5 h-[30px] gap-px",kpis:"border-b ring-0"}},defaultVariants:{variant:"segmented"}}),z=n.forwardRef(({className:e,...a},r)=>{const s=n.useContext(i);return t.jsx(p,{ref:r,className:d(R({variant:s,className:e})),...a})});z.displayName=p.displayName;const b=u("inline-flex items-center justify-center whitespace-nowrap px-3 py-1 ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{segmented:"h-7 rounded-md text-sm font-medium data-[state=active]:shadow-md","segmented-sm":"h-[26px] rounded-md text-xs font-medium data-[state=active]:shadow-md",button:"h-[34px] gap-1.5 rounded-md py-2 text-sm font-normal hover:bg-muted data-[state=active]:bg-muted-foreground/10 data-[state=active]:font-medium","button-sm":"h-6 gap-1.5 rounded-md p-2 text-xs font-normal text-gray-800 hover:bg-muted data-[state=active]:bg-muted-foreground/10 data-[state=active]:font-medium data-[state=active]:text-foreground",underline:'relative h-[36px] px-0 text-md font-semibold text-gray-700 after:absolute after:inset-x-0 after:bottom-[-1px] after:h-0.5 after:bg-foreground after:opacity-0 after:content-[""] hover:after:opacity-10 data-[state=active]:bg-transparent data-[state=active]:text-foreground data-[state=active]:after:!opacity-100',navbar:'relative h-[52px] px-px text-md font-semibold text-muted-foreground after:absolute after:inset-x-0 after:-bottom-px after:h-0.5 after:bg-foreground after:opacity-0 after:content-[""] hover:text-foreground data-[state=active]:bg-transparent data-[state=active]:text-foreground data-[state=active]:after:!opacity-100',pill:"relative h-[30px] rounded-md px-3 text-md font-medium text-gray-800 hover:text-foreground data-[state=active]:bg-muted-foreground/10 data-[state=active]:font-semibold data-[state=active]:text-foreground dark:text-gray-500 dark:data-[state=active]:text-foreground",kpis:'relative !h-full !items-start rounded-none border-border bg-transparent px-6 py-5 text-foreground ring-0 transition-all after:absolute after:inset-x-0 after:-bottom-px after:h-0.5 after:bg-foreground after:opacity-0 after:content-[""] first:rounded-tl-md last:rounded-tr-md hover:bg-accent/50 data-[state=active]:bg-transparent data-[state=active]:after:opacity-100 [&:not(:last-child)]:border-r [&[data-state=active]_[data-type="value"]]:text-foreground'}},defaultVariants:{variant:"segmented"}}),v=n.forwardRef(({className:e,...a},r)=>{const s=n.useContext(i);return t.jsx(m,{ref:r,className:d(b({variant:s,className:e})),...a})});v.displayName=m.displayName;const V=({className:e="",children:a})=>t.jsx("span",{className:`ml-1.5 mt-px flex h-5 items-center justify-center rounded-full bg-gray-200 px-1.5 py-0 text-xs font-semibold leading-[21px] text-gray-800 dark:bg-gray-900 dark:text-gray-300 ${e}`,children:a});V.displayName="TabsTriggerCount";const L=u("ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",{variants:{variant:{segmented:"","segmented-sm":"",button:"","button-sm":"",underline:"",navbar:"",pill:"",kpis:"ring-0"}},defaultVariants:{variant:"segmented"}}),K=n.forwardRef(({className:e,...a},r)=>{const s=n.useContext(i);return t.jsx(f,{ref:r,className:d(L({variant:s,className:e})),...a})});K.displayName=f.displayName;const F=({children:e,...a})=>t.jsx(v,{className:"h-auto",...a,children:e}),M=({color:e,icon:a,label:r,value:s,diffDirection:o,diffValue:l,className:h,"data-testid":g})=>{const x=a?w[a]:null,y=d("flex items-center gap-1 text-xs h-[22px] px-1.5 rounded-sm group/diff cursor-default mt-0.5",o==="up"&&"text-green-600 bg-green/10",o==="down"&&"text-red-600 bg-red/10",o==="same"&&"text-gray-700 bg-muted");return t.jsxs("div",{className:d("group flex w-full flex-col items-start gap-2",h),children:[t.jsxs("div",{className:"flex h-[22px] items-center gap-1.5 text-base font-medium text-muted-foreground transition-all group-hover:text-foreground","data-type":"value",children:[e&&t.jsx("div",{className:"ml-1 size-2 rounded-full opacity-50",style:{backgroundColor:e}}),x&&t.jsx(x,{size:16,strokeWidth:1.5}),r]}),t.jsxs("div",{className:"flex flex-col items-start gap-2 lg:flex-row xl:gap-3",children:[t.jsx("div",{className:"text-[2.3rem] font-semibold leading-none tracking-tighter xl:text-[2.6rem]","data-testid":g,children:s}),o&&o!=="hidden"&&t.jsx(t.Fragment,{children:t.jsxs("div",{className:y,"data-testid":g?`${g}-diff`:void 0,children:[t.jsx("span",{className:"font-medium leading-none",children:l}),o==="up"&&t.jsx(N,{className:"!size-[12px]",size:14,strokeWidth:2}),o==="down"&&t.jsx(k,{className:"!size-[12px]",size:14,strokeWidth:2})]})})]})]})},B=n.forwardRef(({variant:e="dropdown",className:a,...r},s)=>t.jsx(j,{ref:s,className:d("h-auto w-full rounded-none border-x-0 border-t-0 focus-visible:ring-0 bg-transparent py-5",a),variant:e,...r}));B.displayName="KpiDropdownButton";const W=n.forwardRef(({children:e,className:a,...r},s)=>{const o=n.useContext(i);return t.jsxs("div",{className:"relative rounded-md hover:bg-muted",children:[t.jsx(m,{ref:s,className:d(b({variant:o,className:a})),...r,children:t.jsx("div",{className:"flex items-center gap-2",children:e})}),t.jsx(T,{className:"absolute inset-0 size-full cursor-pointer",onClick:l=>{l.preventDefault()}})]})});W.displayName="TabsDropdownTrigger";export{F as K,C as T,z as a,v as b,K as c,M as d,B as e,V as f};
@@ -1 +1 @@
1
- import{j as e,y as T,z as j,B as g,r as N,aj as y,ak as P,ck as R,f as I}from"./index-B8G0f0hb.js";import{T as z,a as b}from"./toggle-group-DdY8HF3Y.js";import{H as o,u as C}from"./use-infinite-virtual-scroll-DoeI5IY-.js";import{M as L}from"./main-layout-DY96wK-_.js";import{a as k,b as E,c as m,d,e as S,f as c}from"./table-D30IXfUP.js";import{P as $,T as B}from"./tags-PGeGAafJ.js";import{E as _}from"./empty-indicator-C2Z0dddU.js";const A=({children:a,className:s,...t})=>e.jsx("section",{className:T("flex gap-6 flex-col p-4 lg:p-8 size-full grow",s),...t,children:a}),H=({currentTab:a})=>e.jsxs(o,{variant:"inline-nav",children:[e.jsx(o.Title,{children:"Tags"}),e.jsxs(o.Actions,{children:[e.jsx(o.ActionGroup,{children:e.jsxs(z,{"data-testid":"tags-header-tabs",size:"button",type:"single",value:a,children:[e.jsx(b,{"aria-label":"Public tags",value:"public",asChild:!0,children:e.jsx(j,{to:"/tags",children:"Public tags"})}),e.jsx(b,{"aria-label":"Internal tags",value:"internal",asChild:!0,children:e.jsx(j,{to:"/tags?type=internal",children:"Internal tags"})})]})}),e.jsx(o.ActionGroup,{children:e.jsx(g,{asChild:!0,children:e.jsx("a",{className:"font-bold",href:"#/tags/new",children:"New tag"})})})]})]}),G=({children:a})=>e.jsx(L,{children:e.jsx("div",{className:"grid w-full grow",children:e.jsx("div",{className:"flex h-full flex-col","data-testid":"tags-page",children:a})})}),w=({height:a})=>e.jsx("tr",{"aria-hidden":"true",className:"flex lg:table-row",children:e.jsx("td",{className:"flex lg:table-cell",style:{height:a}})}),M=N.forwardRef(function(s,t){return e.jsx(m,{ref:t,...s,"aria-hidden":"true",className:"relative flex flex-col lg:table-row",children:e.jsx(c,{className:"relative z-10 h-24 animate-pulse",children:e.jsx("div",{className:"h-full rounded-md bg-muted","data-testid":"loading-placeholder"})})})});function q({items:a,totalItems:s,hasNextPage:t,isFetchingNextPage:l,fetchNextPage:n}){const i=N.useRef(null),{visibleItems:x,spaceBefore:u,spaceAfter:h}=C({items:a,totalItems:s,hasNextPage:t,isFetchingNextPage:l,fetchNextPage:n,parentRef:i});return e.jsx("div",{ref:i,className:"overflow-hidden",children:e.jsxs(k,{className:"flex table-fixed flex-col lg:table","data-testid":"tags-list",children:[e.jsx(E,{className:"hidden lg:!visible lg:!table-header-group",children:e.jsxs(m,{children:[e.jsx(d,{className:"w-auto px-4",children:"Tag"}),e.jsx(d,{className:"w-1/5 px-4",children:"Slug"}),e.jsx(d,{className:"w-1/5 px-4",children:"No. of posts"}),e.jsx(d,{className:"w-20 px-4"})]})}),e.jsxs(S,{className:"flex flex-col lg:table-row-group",children:[e.jsx(w,{height:u}),x.map(({key:p,virtualItem:v,item:r,props:f})=>v.index>a.length-1?e.jsx(M,{...f},p):e.jsxs(m,{...f,className:"grid w-full grid-cols-[1fr_5rem] items-center gap-x-4 p-2 hover:bg-muted/50 md:grid-cols-[1fr_auto_5rem] lg:table-row lg:p-0 [&.group:hover_td]:bg-transparent","data-testid":"tag-list-row",children:[e.jsxs(c,{className:"static col-start-1 col-end-1 row-start-1 row-end-1 flex min-w-0 flex-col p-0 md:relative lg:table-cell lg:w-1/2 lg:p-4 xl:w-3/5",children:[e.jsx("a",{className:"before:absolute before:left-0 before:top-0 before:z-10 before:h-full before:w-[100vw]",href:`#/tags/${r.slug}`,children:e.jsx("span",{className:"block truncate pb-1 text-lg font-medium",children:r.name})}),e.jsx("span",{className:"block truncate text-muted-foreground",children:r.description})]}),e.jsx(c,{className:"col-start-1 col-end-1 row-start-2 row-end-2 flex p-0 lg:table-cell lg:p-4",children:e.jsx("span",{className:"block truncate",children:r.slug})}),e.jsx(c,{className:"col-start-1 col-end-1 row-start-3 row-end-3 flex p-0 md:col-start-2 md:col-end-2 md:row-start-1 md:row-end-3 lg:table-cell lg:p-4",children:r.count?.posts?e.jsx("a",{className:"relative z-10 -m-4 inline-block p-4 hover:underline",href:`#/posts?tag=${r.slug}`,children:`${y(r.count?.posts)} ${r.count?.posts===1?"post":"posts"}`}):e.jsx("span",{className:"text-muted-foreground",children:"0 posts"})}),e.jsx(c,{className:"col-start-2 col-end-2 row-start-1 row-end-3 p-0 md:col-start-3 md:col-end-3 lg:table-cell lg:p-4",children:e.jsx(g,{"aria-hidden":"true",className:"w-12",size:"icon",tabIndex:-1,variant:"outline",children:e.jsx($,{})})})]},p)),e.jsx(w,{height:h})]})]})})}const Q="TagsResponseType",D=P({dataType:Q,path:"/tags/",defaultNextPageParams:(a,s)=>{var t,l;return(t=a.meta)!=null&&t.pagination.next?{...s,page:(((l=a.meta)==null?void 0:l.pagination.next)||1).toString()}:void 0},returnData:a=>{const{pages:s}=a,t=s.flatMap(n=>n.tags),l=s[s.length-1].meta;return{tags:t,meta:l,isEnd:l?l.pagination.pages===l.pagination.page:!0}}}),F=({filter:a,...s})=>{const t=Object.entries(a).map(([l,n])=>`${l}:${n}`).join(",");return D({...s,searchParams:{limit:"100",order:"name asc",include:"count.posts",filter:t,...s.searchParams}})},Z=()=>{const{search:a}=R(),t=new URLSearchParams(a).get("type")??"public",{data:l,isError:n,isLoading:i,isFetchingNextPage:x,fetchNextPage:u,hasNextPage:h}=F({filter:{visibility:t}});return e.jsxs(G,{children:[e.jsx(H,{currentTab:t}),e.jsx(A,{children:i?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(I,{size:"lg"})}):n?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 tags"}),e.jsx("p",{className:"mb-4 text-muted-foreground",children:"Please reload the page to try again"}),e.jsx(g,{onClick:()=>window.location.reload(),children:"Reload page"})]}):l?.tags.length?e.jsx(q,{fetchNextPage:u,hasNextPage:h,isFetchingNextPage:x,items:l?.tags??[],totalItems:l?.meta?.pagination?.total??0}):e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(_,{actions:e.jsx(g,{asChild:!0,children:e.jsx("a",{href:"#/tags/new",children:"Create a new tag"})}),title:"Start organizing your content",children:e.jsx(B,{})})})})]})};export{Z as default};
1
+ import{j as e,y as T,z as j,B as g,r as N,aj as y,ak as P,ck as R,f as I}from"./index-DCTdAEHx.js";import{T as z,a as b}from"./toggle-group-BXAZzvJ9.js";import{H as o,u as C}from"./use-infinite-virtual-scroll-CiRn3kpz.js";import{M as L}from"./main-layout-BFYhCrLn.js";import{a as k,b as E,c as m,d,e as S,f as c}from"./table-2waWpIF5.js";import{P as $,T as B}from"./tags-CKrBptuC.js";import{E as _}from"./empty-indicator-C6BBh99D.js";const A=({children:a,className:s,...t})=>e.jsx("section",{className:T("flex gap-6 flex-col p-4 lg:p-8 size-full grow",s),...t,children:a}),H=({currentTab:a})=>e.jsxs(o,{variant:"inline-nav",children:[e.jsx(o.Title,{children:"Tags"}),e.jsxs(o.Actions,{children:[e.jsx(o.ActionGroup,{children:e.jsxs(z,{"data-testid":"tags-header-tabs",size:"button",type:"single",value:a,children:[e.jsx(b,{"aria-label":"Public tags",value:"public",asChild:!0,children:e.jsx(j,{to:"/tags",children:"Public tags"})}),e.jsx(b,{"aria-label":"Internal tags",value:"internal",asChild:!0,children:e.jsx(j,{to:"/tags?type=internal",children:"Internal tags"})})]})}),e.jsx(o.ActionGroup,{children:e.jsx(g,{asChild:!0,children:e.jsx("a",{className:"font-bold",href:"#/tags/new",children:"New tag"})})})]})]}),G=({children:a})=>e.jsx(L,{children:e.jsx("div",{className:"grid w-full grow",children:e.jsx("div",{className:"flex h-full flex-col","data-testid":"tags-page",children:a})})}),w=({height:a})=>e.jsx("tr",{"aria-hidden":"true",className:"flex lg:table-row",children:e.jsx("td",{className:"flex lg:table-cell",style:{height:a}})}),M=N.forwardRef(function(s,t){return e.jsx(m,{ref:t,...s,"aria-hidden":"true",className:"relative flex flex-col lg:table-row",children:e.jsx(c,{className:"relative z-10 h-24 animate-pulse",children:e.jsx("div",{className:"h-full rounded-md bg-muted","data-testid":"loading-placeholder"})})})});function q({items:a,totalItems:s,hasNextPage:t,isFetchingNextPage:l,fetchNextPage:n}){const i=N.useRef(null),{visibleItems:x,spaceBefore:u,spaceAfter:h}=C({items:a,totalItems:s,hasNextPage:t,isFetchingNextPage:l,fetchNextPage:n,parentRef:i});return e.jsx("div",{ref:i,className:"overflow-hidden",children:e.jsxs(k,{className:"flex table-fixed flex-col lg:table","data-testid":"tags-list",children:[e.jsx(E,{className:"hidden lg:!visible lg:!table-header-group",children:e.jsxs(m,{children:[e.jsx(d,{className:"w-auto px-4",children:"Tag"}),e.jsx(d,{className:"w-1/5 px-4",children:"Slug"}),e.jsx(d,{className:"w-1/5 px-4",children:"No. of posts"}),e.jsx(d,{className:"w-20 px-4"})]})}),e.jsxs(S,{className:"flex flex-col lg:table-row-group",children:[e.jsx(w,{height:u}),x.map(({key:p,virtualItem:v,item:r,props:f})=>v.index>a.length-1?e.jsx(M,{...f},p):e.jsxs(m,{...f,className:"grid w-full grid-cols-[1fr_5rem] items-center gap-x-4 p-2 hover:bg-muted/50 md:grid-cols-[1fr_auto_5rem] lg:table-row lg:p-0 [&.group:hover_td]:bg-transparent","data-testid":"tag-list-row",children:[e.jsxs(c,{className:"static col-start-1 col-end-1 row-start-1 row-end-1 flex min-w-0 flex-col p-0 md:relative lg:table-cell lg:w-1/2 lg:p-4 xl:w-3/5",children:[e.jsx("a",{className:"before:absolute before:left-0 before:top-0 before:z-10 before:h-full before:w-[100vw]",href:`#/tags/${r.slug}`,children:e.jsx("span",{className:"block truncate pb-1 text-lg font-medium",children:r.name})}),e.jsx("span",{className:"block truncate text-muted-foreground",children:r.description})]}),e.jsx(c,{className:"col-start-1 col-end-1 row-start-2 row-end-2 flex p-0 lg:table-cell lg:p-4",children:e.jsx("span",{className:"block truncate",children:r.slug})}),e.jsx(c,{className:"col-start-1 col-end-1 row-start-3 row-end-3 flex p-0 md:col-start-2 md:col-end-2 md:row-start-1 md:row-end-3 lg:table-cell lg:p-4",children:r.count?.posts?e.jsx("a",{className:"relative z-10 -m-4 inline-block p-4 hover:underline",href:`#/posts?tag=${r.slug}`,children:`${y(r.count?.posts)} ${r.count?.posts===1?"post":"posts"}`}):e.jsx("span",{className:"text-muted-foreground",children:"0 posts"})}),e.jsx(c,{className:"col-start-2 col-end-2 row-start-1 row-end-3 p-0 md:col-start-3 md:col-end-3 lg:table-cell lg:p-4",children:e.jsx(g,{"aria-hidden":"true",className:"w-12",size:"icon",tabIndex:-1,variant:"outline",children:e.jsx($,{})})})]},p)),e.jsx(w,{height:h})]})]})})}const Q="TagsResponseType",D=P({dataType:Q,path:"/tags/",defaultNextPageParams:(a,s)=>{var t,l;return(t=a.meta)!=null&&t.pagination.next?{...s,page:(((l=a.meta)==null?void 0:l.pagination.next)||1).toString()}:void 0},returnData:a=>{const{pages:s}=a,t=s.flatMap(n=>n.tags),l=s[s.length-1].meta;return{tags:t,meta:l,isEnd:l?l.pagination.pages===l.pagination.page:!0}}}),F=({filter:a,...s})=>{const t=Object.entries(a).map(([l,n])=>`${l}:${n}`).join(",");return D({...s,searchParams:{limit:"100",order:"name asc",include:"count.posts",filter:t,...s.searchParams}})},Z=()=>{const{search:a}=R(),t=new URLSearchParams(a).get("type")??"public",{data:l,isError:n,isLoading:i,isFetchingNextPage:x,fetchNextPage:u,hasNextPage:h}=F({filter:{visibility:t}});return e.jsxs(G,{children:[e.jsx(H,{currentTab:t}),e.jsx(A,{children:i?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(I,{size:"lg"})}):n?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 tags"}),e.jsx("p",{className:"mb-4 text-muted-foreground",children:"Please reload the page to try again"}),e.jsx(g,{onClick:()=>window.location.reload(),children:"Reload page"})]}):l?.tags.length?e.jsx(q,{fetchNextPage:u,hasNextPage:h,isFetchingNextPage:x,items:l?.tags??[],totalItems:l?.meta?.pagination?.total??0}):e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(_,{actions:e.jsx(g,{asChild:!0,children:e.jsx("a",{href:"#/tags/new",children:"Create a new tag"})}),title:"Start organizing your content",children:e.jsx(B,{})})})})]})};export{Z as default};
@@ -1,4 +1,4 @@
1
- import{aA as a}from"./index-B8G0f0hb.js";/**
1
+ import{aA as a}from"./index-DCTdAEHx.js";/**
2
2
  * @license lucide-react v0.553.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{ac as i,ak as p,ad as n,am as u}from"./index-B8G0f0hb.js";const c="ReferrerHistoryResponseType",T=i({dataType:c,path:"/stats/referrers/"}),y=i({dataType:"TopSourcesGrowthResponseType",path:"/stats/top-sources-growth"}),s="TiersResponseType",g=p({dataType:s,path:"/tiers/",defaultNextPageParams:(e,t)=>{var a;return{...t,page:(((a=e.meta)==null?void 0:a.pagination.next)||1).toString()}},returnData:e=>{const{pages:t}=e,a=t.flatMap(o=>o.tiers),r=t[t.length-1].meta;return{tiers:a,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}}),f=n({method:"POST",path:()=>"/tiers/",body:e=>({tiers:[e]}),invalidateQueries:{dataType:s}}),h=n({method:"PUT",path:e=>`/tiers/${e.id}/`,body:e=>({tiers:[e]}),updateQueries:{dataType:s,emberUpdateType:"createOrUpdate",update:u("tiers")}});function m(e){return e.filter(t=>t.type==="paid"&&t.active)}function l(e){return e.filter(t=>t.active)}function v(e){return e.filter(t=>!t.active)}export{g as a,h as b,f as c,T as d,l as e,v as f,m as g,y as u};
1
+ import{ac as i,ak as p,ad as n,am as u}from"./index-DCTdAEHx.js";const c="ReferrerHistoryResponseType",T=i({dataType:c,path:"/stats/referrers/"}),y=i({dataType:"TopSourcesGrowthResponseType",path:"/stats/top-sources-growth"}),s="TiersResponseType",g=p({dataType:s,path:"/tiers/",defaultNextPageParams:(e,t)=>{var a;return{...t,page:(((a=e.meta)==null?void 0:a.pagination.next)||1).toString()}},returnData:e=>{const{pages:t}=e,a=t.flatMap(o=>o.tiers),r=t[t.length-1].meta;return{tiers:a,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}}),f=n({method:"POST",path:()=>"/tiers/",body:e=>({tiers:[e]}),invalidateQueries:{dataType:s}}),h=n({method:"PUT",path:e=>`/tiers/${e.id}/`,body:e=>({tiers:[e]}),updateQueries:{dataType:s,emberUpdateType:"createOrUpdate",update:u("tiers")}});function m(e){return e.filter(t=>t.type==="paid"&&t.active)}function l(e){return e.filter(t=>t.active)}function v(e){return e.filter(t=>!t.active)}export{g as a,h as b,f as c,T as d,l as e,v as f,m as g,y as u};
@@ -1 +1 @@
1
- import{r as v,ar as G,j as n,au as x,ay as z,e as u,as as F,av as P,ax as $,aq as D,aw as B,an as O,y as b}from"./index-B8G0f0hb.js";var C="Toggle",T=v.forwardRef((e,o)=>{const{pressed:r,defaultPressed:t,onPressedChange:a,...l}=e,[s,i]=G({prop:r,onChange:a,defaultProp:t??!1,caller:C});return n.jsx(x.button,{type:"button","aria-pressed":s,"data-state":s?"on":"off","data-disabled":e.disabled?"":void 0,...l,ref:o,onClick:z(e.onClick,()=>{e.disabled||i(!s)})})});T.displayName=C;var j=T,c="ToggleGroup",[_]=F(c,[P]),I=P(),h=u.forwardRef((e,o)=>{const{type:r,...t}=e;if(r==="single"){const a=t;return n.jsx(q,{...a,ref:o})}if(r==="multiple"){const a=t;return n.jsx(H,{...a,ref:o})}throw new Error(`Missing prop \`type\` expected on \`${c}\``)});h.displayName=c;var[N,R]=_(c),q=u.forwardRef((e,o)=>{const{value:r,defaultValue:t,onValueChange:a=()=>{},...l}=e,[s,i]=G({prop:r,defaultProp:t??"",onChange:a,caller:c});return n.jsx(N,{scope:e.__scopeToggleGroup,type:"single",value:u.useMemo(()=>s?[s]:[],[s]),onItemActivate:i,onItemDeactivate:u.useCallback(()=>i(""),[i]),children:n.jsx(w,{...l,ref:o})})}),H=u.forwardRef((e,o)=>{const{value:r,defaultValue:t,onValueChange:a=()=>{},...l}=e,[s,i]=G({prop:r,defaultProp:t??[],onChange:a,caller:c}),g=u.useCallback(p=>i((d=[])=>[...d,p]),[i]),m=u.useCallback(p=>i((d=[])=>d.filter(A=>A!==p)),[i]);return n.jsx(N,{scope:e.__scopeToggleGroup,type:"multiple",value:s,onItemActivate:g,onItemDeactivate:m,children:n.jsx(w,{...l,ref:o})})});h.displayName=c;var[L,U]=_(c),w=u.forwardRef((e,o)=>{const{__scopeToggleGroup:r,disabled:t=!1,rovingFocus:a=!0,orientation:l,dir:s,loop:i=!0,...g}=e,m=I(r),p=D(s),d={role:"group",dir:p,...g};return n.jsx(L,{scope:r,rovingFocus:a,disabled:t,children:a?n.jsx(B,{asChild:!0,...m,orientation:l,dir:p,loop:i,children:n.jsx(x.div,{...d,ref:o})}):n.jsx(x.div,{...d,ref:o})})}),f="ToggleGroupItem",k=u.forwardRef((e,o)=>{const r=R(f,e.__scopeToggleGroup),t=U(f,e.__scopeToggleGroup),a=I(e.__scopeToggleGroup),l=r.value.includes(e.value),s=t.disabled||e.disabled,i={...e,pressed:l,disabled:s},g=u.useRef(null);return t.rovingFocus?n.jsx($,{asChild:!0,...a,focusable:!s,active:l,ref:g,children:n.jsx(y,{...i,ref:o})}):n.jsx(y,{...i,ref:o})});k.displayName=f;var y=u.forwardRef((e,o)=>{const{__scopeToggleGroup:r,value:t,...a}=e,l=R(f,r),s={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},i=l.type==="single"?s:void 0;return n.jsx(T,{...i,...a,ref:o,onPressedChange:g=>{g?l.onItemActivate(t):l.onItemDeactivate(t)}})}),V=h,E=k;const M=O("inline-flex items-center justify-center gap-2 rounded-sm text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200 hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm dark:hover:bg-background [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:stroke-[1.5px]",{variants:{variant:{default:"bg-transparent"},size:{default:"h-[26px] min-w-[26px] px-2",button:"h-[32px] min-w-[32px] px-3"}},defaultVariants:{variant:"default",size:"default"}}),J=v.forwardRef(({className:e,variant:o,size:r,...t},a)=>n.jsx(j,{ref:a,className:b(M({variant:o,size:r,className:e})),...t}));J.displayName=j.displayName;const S=v.createContext({size:"default",variant:"default"}),K=v.forwardRef(({className:e,variant:o,size:r,children:t,...a},l)=>n.jsx(V,{ref:l,className:b("inline-flex items-center justify-center gap-0.5 bg-gray-100 p-0.5 rounded-md dark:bg-gray-925/70",e),...a,children:n.jsx(S.Provider,{value:{variant:o,size:r},children:t})}));K.displayName=V.displayName;const Q=v.forwardRef(({className:e,children:o,variant:r,size:t,...a},l)=>{const s=v.useContext(S);return n.jsx(E,{ref:l,className:b(M({variant:s.variant||r,size:s.size||t}),e),...a,children:o})});Q.displayName=E.displayName;export{K as T,Q as a};
1
+ import{r as v,ar as G,j as n,au as x,ay as z,e as u,as as F,av as P,ax as $,aq as D,aw as B,an as O,y as b}from"./index-DCTdAEHx.js";var C="Toggle",T=v.forwardRef((e,o)=>{const{pressed:r,defaultPressed:t,onPressedChange:a,...l}=e,[s,i]=G({prop:r,onChange:a,defaultProp:t??!1,caller:C});return n.jsx(x.button,{type:"button","aria-pressed":s,"data-state":s?"on":"off","data-disabled":e.disabled?"":void 0,...l,ref:o,onClick:z(e.onClick,()=>{e.disabled||i(!s)})})});T.displayName=C;var j=T,c="ToggleGroup",[_]=F(c,[P]),I=P(),h=u.forwardRef((e,o)=>{const{type:r,...t}=e;if(r==="single"){const a=t;return n.jsx(q,{...a,ref:o})}if(r==="multiple"){const a=t;return n.jsx(H,{...a,ref:o})}throw new Error(`Missing prop \`type\` expected on \`${c}\``)});h.displayName=c;var[N,R]=_(c),q=u.forwardRef((e,o)=>{const{value:r,defaultValue:t,onValueChange:a=()=>{},...l}=e,[s,i]=G({prop:r,defaultProp:t??"",onChange:a,caller:c});return n.jsx(N,{scope:e.__scopeToggleGroup,type:"single",value:u.useMemo(()=>s?[s]:[],[s]),onItemActivate:i,onItemDeactivate:u.useCallback(()=>i(""),[i]),children:n.jsx(w,{...l,ref:o})})}),H=u.forwardRef((e,o)=>{const{value:r,defaultValue:t,onValueChange:a=()=>{},...l}=e,[s,i]=G({prop:r,defaultProp:t??[],onChange:a,caller:c}),g=u.useCallback(p=>i((d=[])=>[...d,p]),[i]),m=u.useCallback(p=>i((d=[])=>d.filter(A=>A!==p)),[i]);return n.jsx(N,{scope:e.__scopeToggleGroup,type:"multiple",value:s,onItemActivate:g,onItemDeactivate:m,children:n.jsx(w,{...l,ref:o})})});h.displayName=c;var[L,U]=_(c),w=u.forwardRef((e,o)=>{const{__scopeToggleGroup:r,disabled:t=!1,rovingFocus:a=!0,orientation:l,dir:s,loop:i=!0,...g}=e,m=I(r),p=D(s),d={role:"group",dir:p,...g};return n.jsx(L,{scope:r,rovingFocus:a,disabled:t,children:a?n.jsx(B,{asChild:!0,...m,orientation:l,dir:p,loop:i,children:n.jsx(x.div,{...d,ref:o})}):n.jsx(x.div,{...d,ref:o})})}),f="ToggleGroupItem",k=u.forwardRef((e,o)=>{const r=R(f,e.__scopeToggleGroup),t=U(f,e.__scopeToggleGroup),a=I(e.__scopeToggleGroup),l=r.value.includes(e.value),s=t.disabled||e.disabled,i={...e,pressed:l,disabled:s},g=u.useRef(null);return t.rovingFocus?n.jsx($,{asChild:!0,...a,focusable:!s,active:l,ref:g,children:n.jsx(y,{...i,ref:o})}):n.jsx(y,{...i,ref:o})});k.displayName=f;var y=u.forwardRef((e,o)=>{const{__scopeToggleGroup:r,value:t,...a}=e,l=R(f,r),s={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},i=l.type==="single"?s:void 0;return n.jsx(T,{...i,...a,ref:o,onPressedChange:g=>{g?l.onItemActivate(t):l.onItemDeactivate(t)}})}),V=h,E=k;const M=O("inline-flex items-center justify-center gap-2 rounded-sm text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200 hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm dark:hover:bg-background [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:stroke-[1.5px]",{variants:{variant:{default:"bg-transparent"},size:{default:"h-[26px] min-w-[26px] px-2",button:"h-[32px] min-w-[32px] px-3"}},defaultVariants:{variant:"default",size:"default"}}),J=v.forwardRef(({className:e,variant:o,size:r,...t},a)=>n.jsx(j,{ref:a,className:b(M({variant:o,size:r,className:e})),...t}));J.displayName=j.displayName;const S=v.createContext({size:"default",variant:"default"}),K=v.forwardRef(({className:e,variant:o,size:r,children:t,...a},l)=>n.jsx(V,{ref:l,className:b("inline-flex items-center justify-center gap-0.5 bg-gray-100 p-0.5 rounded-md dark:bg-gray-925/70",e),...a,children:n.jsx(S.Provider,{value:{variant:o,size:r},children:t})}));K.displayName=V.displayName;const Q=v.forwardRef(({className:e,children:o,variant:r,size:t,...a},l)=>{const s=v.useContext(S);return n.jsx(E,{ref:l,className:b(M({variant:s.variant||r,size:s.size||t}),e),...a,children:o})});Q.displayName=E.displayName;export{K as T,Q as a};
@@ -1 +1 @@
1
- import{p as b,r as t,j as o,B as T}from"./index-B8G0f0hb.js";const k=({currentTopic:s,onTopicChange:r,excludeTopics:a=[]})=>{const{topicsQuery:c}=b(),{data:i}=c,f={slug:"following",name:"Following"},d=i?.topics||[],p=[f,...d].filter(({slug:e})=>!a.includes(e)),l=t.useRef(null),u=t.useRef(null),[m,h]=t.useState(!0),w=e=>{const{scrollLeft:n,scrollWidth:x,clientWidth:v}=e.currentTarget;h(n+v<x-1)};return t.useEffect(()=>{l.current&&l.current.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},[s]),o.jsxs("div",{className:"relative w-full",children:[o.jsx("div",{ref:u,className:"flex w-full min-w-0 max-w-full snap-x snap-mandatory gap-2 overflow-x-auto [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",onScroll:w,children:p.map(({slug:e,name:n})=>o.jsx(T,{ref:s===e?l:null,className:"h-8 snap-start rounded-full px-3.5 text-sm",variant:s===e?"default":"secondary",onClick:()=>r(e),children:n},e))}),m&&o.jsx("div",{className:"pointer-events-none absolute right-0 top-0 h-full w-12 bg-gradient-to-l from-white to-transparent dark:from-black"})]})};export{k as T};
1
+ import{p as b,r as t,j as o,B as T}from"./index-DCTdAEHx.js";const k=({currentTopic:s,onTopicChange:r,excludeTopics:a=[]})=>{const{topicsQuery:c}=b(),{data:i}=c,f={slug:"following",name:"Following"},d=i?.topics||[],p=[f,...d].filter(({slug:e})=>!a.includes(e)),l=t.useRef(null),u=t.useRef(null),[m,h]=t.useState(!0),w=e=>{const{scrollLeft:n,scrollWidth:x,clientWidth:v}=e.currentTarget;h(n+v<x-1)};return t.useEffect(()=>{l.current&&l.current.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},[s]),o.jsxs("div",{className:"relative w-full",children:[o.jsx("div",{ref:u,className:"flex w-full min-w-0 max-w-full snap-x snap-mandatory gap-2 overflow-x-auto [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",onScroll:w,children:p.map(({slug:e,name:n})=>o.jsx(T,{ref:s===e?l:null,className:"h-8 snap-start rounded-full px-3.5 text-sm",variant:s===e?"default":"secondary",onClick:()=>r(e),children:n},e))}),m&&o.jsx("div",{className:"pointer-events-none absolute right-0 top-0 h-full w-12 bg-gradient-to-l from-white to-transparent dark:from-black"})]})};export{k as T};
@@ -1,4 +1,4 @@
1
- import{aA as a}from"./index-B8G0f0hb.js";/**
1
+ import{aA as a}from"./index-DCTdAEHx.js";/**
2
2
  * @license lucide-react v0.553.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{r as C,af as F,ag as H,ah as s,ai as _,aj as j}from"./index-B8G0f0hb.js";import{u as k,a as v,b as V}from"./stats-C5ad0fgQ.js";import{g as G}from"./currency-fEUUCkj0.js";const K=(r,b,D,i)=>{if(!r.length)return{totalMembers:0,freeMembers:0,paidMembers:0,mrr:0,percentChanges:{total:"0%",free:"0%",paid:"0%",mrr:"0%"},directions:{total:"same",free:"same",paid:"same",mrr:"same"}};const p=i||r[r.length-1],l=r.length>0?r[r.length-1]:{free:0,paid:0,comped:0},P=b.length>0?b[b.length-1]:{mrr:0},d=p.free+p.paid+p.comped,g=P.mrr,M={total:"0%",free:"0%",paid:"0%",mrr:"0%"},y={total:"same",free:"same",paid:"same",mrr:"same"};if(r.length>1){const t=r[0],e=t.free+t.paid+t.comped;if(e>0){const a=(d-e)/e*100;M.total=_(a/100),y.total=a>0?"up":a<0?"down":"same"}if(t.free>0){const a=(l.free-t.free)/t.free*100;M.free=_(a/100),y.free=a>0?"up":a<0?"down":"same"}const f=t.paid+t.comped,c=l.paid+l.comped;if(f>0){const a=(c-f)/f*100;M.paid=_(a/100),y.paid=a>0?"up":a<0?"down":"same"}}if(b.length>1){const t=s(D).format("YYYY-MM-DD"),e=b.find(a=>s(a.date).isSameOrAfter(t)),f=s(D).isSame(s().startOf("year"),"day")||s(D).year()<s().year();let c=0;if(e&&s(e.date).isSame(t,"day")?c=e.mrr:f?c=0:c=g,c>=0){const a=c===0?g>0?100:0:(g-c)/c*100;M.mrr=_(a/100),y.mrr=a>0?"up":a<0?"down":"same"}}return{totalMembers:d,freeMembers:p.free,paidMembers:p.paid+p.comped,mrr:g,percentChanges:M,directions:y}},N=(r,b)=>{const D=[...r].sort((t,e)=>new Date(t.date).getTime()-new Date(e.date).getTime()),i=[...b].sort((t,e)=>new Date(t.date).getTime()-new Date(e.date).getTime()),p=D.map(t=>t.date),l=i.map(t=>t.date),P=[...new Set([...p,...l])].sort((t,e)=>new Date(t).getTime()-new Date(e).getTime());let d=null,g=null;const M=new Map(D.map(t=>[t.date,t])),y=new Map(i.map(t=>[t.date,t]));return P.map(t=>{const e=M.get(t);e&&(d=e);const f=y.get(t);f&&(g=f);const c=d?.free??0,a=d?.paid??0,O=d?.comped??0,A=a+O,L=c+A,o=g?.mrr??0,R=d?.paid_subscribed??0,w=d?.paid_canceled??0;return{date:t,value:L,free:c,paid:A,comped:O,mrr:o,paid_subscribed:R,paid_canceled:w,formattedValue:j(L),label:"Total members"}})},X=r=>{const{startDate:b,endDate:D}=C.useMemo(()=>F(r),[r]),i=H(b),p=r===1?s(i).subtract(1,"day").format("YYYY-MM-DD"):i,{data:l,isLoading:P}=k({searchParams:{date_from:p}}),{data:d,isLoading:g}=v({searchParams:{date_from:p}}),{data:M,isLoading:y}=V(),t=C.useMemo(()=>{let o=[];if(l?.stats?o=l.stats:Array.isArray(l)&&(o=l),r===1&&o.length>=2){const R=o[o.length-2],w=o[o.length-1],S=s(i).format("YYYY-MM-DD"),m=s(i).add(1,"day").format("YYYY-MM-DD"),u={...R,date:S},T={...w,date:m};return[u,T]}return o},[l,r,i]),{mrrData:e,selectedCurrency:f}=C.useMemo(()=>{const o=s(i),R=r===1?s().endOf("day"):s().startOf("day");if(d?.stats&&d?.meta?.totals){const w=d.meta.totals;let S=w[0];if(!S)return{mrrData:[],selectedCurrency:"usd"};for(const n of w)n.mrr>S.mrr&&(S=n);const m=S.currency,u=d.stats.filter(n=>n.currency===m),T=u.filter(n=>s(n.date).isSameOrAfter(o)),E=[...u].sort((n,Y)=>new Date(Y.date).getTime()-new Date(n.date).getTime()),h=[...T];if(!h.some(n=>s(n.date).isSame(o,"day"))){const n=E.find(Y=>s(Y.date).isBefore(o));if(n)h.unshift({...n,date:o.format("YYYY-MM-DD")});else if(h.length>0){const Y=[...h].sort((B,I)=>new Date(B.date).getTime()-new Date(I.date).getTime())[0];h.unshift({...Y,date:o.format("YYYY-MM-DD")})}}const x=r===1?s().startOf("day"):R;if(!h.some(n=>s(n.date).isSame(x,"day"))&&h.length>0){const Y=[...h].sort((B,I)=>new Date(I.date).getTime()-new Date(B.date).getTime())[0];h.push({...Y,date:x.format("YYYY-MM-DD")})}return{mrrData:h.sort((n,Y)=>new Date(n.date).getTime()-new Date(Y.date).getTime()),selectedCurrency:m}}return{mrrData:[],selectedCurrency:"usd"}},[d,i,r]),c=C.useMemo(()=>K(t,e,i,l?.meta?.totals),[t,e,i,l?.meta?.totals]),a=C.useMemo(()=>N(t,e),[t,e]),O=C.useMemo(()=>G(f),[f]),A=C.useMemo(()=>P||g||y,[P,g,y]),L=C.useMemo(()=>{if(!M?.stats)return[];const o=M.stats.reduce((m,u)=>{const T=u.date;return m[T]||(m[T]={date:T,signups:0,cancellations:0}),m[T].signups+=u.signups,m[T].cancellations+=u.cancellations,m},{}),R=Object.values(o).sort((m,u)=>new Date(m.date).getTime()-new Date(u.date).getTime()),w=s(i),S=s(D);return R.filter(m=>{const u=s(m.date);return u.isSameOrAfter(w)&&u.isSameOrBefore(S)})},[M,i,D]);return{isLoading:A,memberData:t,mrrData:e,dateFrom:i,endDate:D,totals:c,chartData:a,subscriptionData:L,selectedCurrency:f,currencySymbol:O}};export{X as u};
1
+ import{r as C,af as F,ag as H,ah as s,ai as _,aj as j}from"./index-DCTdAEHx.js";import{u as k,a as v,b as V}from"./stats-lnFiOQZx.js";import{g as G}from"./currency-fEUUCkj0.js";const K=(r,b,D,i)=>{if(!r.length)return{totalMembers:0,freeMembers:0,paidMembers:0,mrr:0,percentChanges:{total:"0%",free:"0%",paid:"0%",mrr:"0%"},directions:{total:"same",free:"same",paid:"same",mrr:"same"}};const p=i||r[r.length-1],l=r.length>0?r[r.length-1]:{free:0,paid:0,comped:0},P=b.length>0?b[b.length-1]:{mrr:0},d=p.free+p.paid+p.comped,g=P.mrr,M={total:"0%",free:"0%",paid:"0%",mrr:"0%"},y={total:"same",free:"same",paid:"same",mrr:"same"};if(r.length>1){const t=r[0],e=t.free+t.paid+t.comped;if(e>0){const a=(d-e)/e*100;M.total=_(a/100),y.total=a>0?"up":a<0?"down":"same"}if(t.free>0){const a=(l.free-t.free)/t.free*100;M.free=_(a/100),y.free=a>0?"up":a<0?"down":"same"}const f=t.paid+t.comped,c=l.paid+l.comped;if(f>0){const a=(c-f)/f*100;M.paid=_(a/100),y.paid=a>0?"up":a<0?"down":"same"}}if(b.length>1){const t=s(D).format("YYYY-MM-DD"),e=b.find(a=>s(a.date).isSameOrAfter(t)),f=s(D).isSame(s().startOf("year"),"day")||s(D).year()<s().year();let c=0;if(e&&s(e.date).isSame(t,"day")?c=e.mrr:f?c=0:c=g,c>=0){const a=c===0?g>0?100:0:(g-c)/c*100;M.mrr=_(a/100),y.mrr=a>0?"up":a<0?"down":"same"}}return{totalMembers:d,freeMembers:p.free,paidMembers:p.paid+p.comped,mrr:g,percentChanges:M,directions:y}},N=(r,b)=>{const D=[...r].sort((t,e)=>new Date(t.date).getTime()-new Date(e.date).getTime()),i=[...b].sort((t,e)=>new Date(t.date).getTime()-new Date(e.date).getTime()),p=D.map(t=>t.date),l=i.map(t=>t.date),P=[...new Set([...p,...l])].sort((t,e)=>new Date(t).getTime()-new Date(e).getTime());let d=null,g=null;const M=new Map(D.map(t=>[t.date,t])),y=new Map(i.map(t=>[t.date,t]));return P.map(t=>{const e=M.get(t);e&&(d=e);const f=y.get(t);f&&(g=f);const c=d?.free??0,a=d?.paid??0,O=d?.comped??0,A=a+O,L=c+A,o=g?.mrr??0,R=d?.paid_subscribed??0,w=d?.paid_canceled??0;return{date:t,value:L,free:c,paid:A,comped:O,mrr:o,paid_subscribed:R,paid_canceled:w,formattedValue:j(L),label:"Total members"}})},X=r=>{const{startDate:b,endDate:D}=C.useMemo(()=>F(r),[r]),i=H(b),p=r===1?s(i).subtract(1,"day").format("YYYY-MM-DD"):i,{data:l,isLoading:P}=k({searchParams:{date_from:p}}),{data:d,isLoading:g}=v({searchParams:{date_from:p}}),{data:M,isLoading:y}=V(),t=C.useMemo(()=>{let o=[];if(l?.stats?o=l.stats:Array.isArray(l)&&(o=l),r===1&&o.length>=2){const R=o[o.length-2],w=o[o.length-1],S=s(i).format("YYYY-MM-DD"),m=s(i).add(1,"day").format("YYYY-MM-DD"),u={...R,date:S},T={...w,date:m};return[u,T]}return o},[l,r,i]),{mrrData:e,selectedCurrency:f}=C.useMemo(()=>{const o=s(i),R=r===1?s().endOf("day"):s().startOf("day");if(d?.stats&&d?.meta?.totals){const w=d.meta.totals;let S=w[0];if(!S)return{mrrData:[],selectedCurrency:"usd"};for(const n of w)n.mrr>S.mrr&&(S=n);const m=S.currency,u=d.stats.filter(n=>n.currency===m),T=u.filter(n=>s(n.date).isSameOrAfter(o)),E=[...u].sort((n,Y)=>new Date(Y.date).getTime()-new Date(n.date).getTime()),h=[...T];if(!h.some(n=>s(n.date).isSame(o,"day"))){const n=E.find(Y=>s(Y.date).isBefore(o));if(n)h.unshift({...n,date:o.format("YYYY-MM-DD")});else if(h.length>0){const Y=[...h].sort((B,I)=>new Date(B.date).getTime()-new Date(I.date).getTime())[0];h.unshift({...Y,date:o.format("YYYY-MM-DD")})}}const x=r===1?s().startOf("day"):R;if(!h.some(n=>s(n.date).isSame(x,"day"))&&h.length>0){const Y=[...h].sort((B,I)=>new Date(I.date).getTime()-new Date(B.date).getTime())[0];h.push({...Y,date:x.format("YYYY-MM-DD")})}return{mrrData:h.sort((n,Y)=>new Date(n.date).getTime()-new Date(Y.date).getTime()),selectedCurrency:m}}return{mrrData:[],selectedCurrency:"usd"}},[d,i,r]),c=C.useMemo(()=>K(t,e,i,l?.meta?.totals),[t,e,i,l?.meta?.totals]),a=C.useMemo(()=>N(t,e),[t,e]),O=C.useMemo(()=>G(f),[f]),A=C.useMemo(()=>P||g||y,[P,g,y]),L=C.useMemo(()=>{if(!M?.stats)return[];const o=M.stats.reduce((m,u)=>{const T=u.date;return m[T]||(m[T]={date:T,signups:0,cancellations:0}),m[T].signups+=u.signups,m[T].cancellations+=u.cancellations,m},{}),R=Object.values(o).sort((m,u)=>new Date(m.date).getTime()-new Date(u.date).getTime()),w=s(i),S=s(D);return R.filter(m=>{const u=s(m.date);return u.isSameOrAfter(w)&&u.isSameOrBefore(S)})},[M,i,D]);return{isLoading:A,memberData:t,mrrData:e,dateFrom:i,endDate:D,totals:c,chartData:a,subscriptionData:L,selectedCurrency:f,currencySymbol:O}};export{X as u};
@@ -1,4 +1,4 @@
1
- import{j as p,y as v,an as R,bQ as T,r as S,aB as F}from"./index-B8G0f0hb.js";function j({className:n,children:l}){return p.jsx("div",{className:v("flex items-center gap-2 [grid-area:above]",n),"data-header":"header-above",children:l})}function D({className:n,children:l}){return p.jsx(T,{className:v("text-2xl leading-[1.2em] lg:text-3xl [grid-area:title]",n),"data-header":"header-title",children:l})}function W({className:n,children:l}){return p.jsx("div",{className:v("flex items-center justify-start text-muted-foreground [grid-area:meta] pb-4 pt-1",n),"data-header":"header-meta",children:l})}function H({className:n,children:l}){return p.jsx("div",{className:v("flex items-center gap-2",n),"data-header":"header-action-group",children:l})}function N({className:n,children:l}){return p.jsx("div",{className:v("flex items-center gap-4 [grid-area:actions] sm:justify-self-end self-start",n),"data-header":"header-actions",children:l})}function V({className:n,children:l}){return p.jsx("div",{className:v("flex items-center gap-2 [grid-area:nav] self-start mt-2 lg:mt-0.5",n),"data-header":"header-nav",children:l})}const L=R("sticky top-0 z-50 -mb-4 grid gap-x-4 bg-gradient-to-b from-background via-background/70 to-background/70 p-4 backdrop-blur-md [grid-template-areas:'above''title''meta''actions''nav'] sm:[grid-template-areas:'above_above''title_actions''meta_actions''nav_nav'] lg:-mb-8 lg:p-8 dark:bg-black",{variants:{variant:{default:"lg:[grid-template-areas:'above_above''title_actions''meta_actions''nav_nav']","inline-nav":"lg:[grid-template-areas:'above_above_above''title_nav_actions''meta_nav_actions'] lg:[grid-template-columns:1fr_auto_auto]"}},defaultVariants:{variant:"default"}});function y({className:n,children:l,variant:e}){return p.jsx("header",{className:v(L({variant:e,className:n})),"data-header":"header",children:l})}y.Above=j;y.Title=D;y.Actions=N;y.ActionGroup=H;y.Nav=V;y.Meta=W;function I(n){const e=n instanceof HTMLElement&&window.getComputedStyle(n).overflowY,t=e!=="visible"&&e!=="hidden";if(n){if(t&&n.scrollHeight>=n.clientHeight)return n}else return null;return I(n.parentNode)||document.body}function x(n,l,e){let t=e.initialDeps??[],s;function i(){var o,r,a,c;let h;e.key&&((o=e.debug)!=null&&o.call(e))&&(h=Date.now());const f=n();if(!(f.length!==t.length||f.some((d,g)=>t[g]!==d)))return s;t=f;let m;if(e.key&&((r=e.debug)!=null&&r.call(e))&&(m=Date.now()),s=l(...f),e.key&&((a=e.debug)!=null&&a.call(e))){const d=Math.round((Date.now()-h)*100)/100,g=Math.round((Date.now()-m)*100)/100,E=g/16,w=(b,A)=>{for(b=String(b);b.length<A;)b=" "+b;return b};console.info(`%c⏱ ${w(g,5)} /${w(d,5)} ms`,`
1
+ import{j as p,y as v,an as R,bN as T,r as S,aB as F}from"./index-DCTdAEHx.js";function j({className:n,children:l}){return p.jsx("div",{className:v("flex items-center gap-2 [grid-area:above]",n),"data-header":"header-above",children:l})}function D({className:n,children:l}){return p.jsx(T,{className:v("text-2xl leading-[1.2em] lg:text-3xl [grid-area:title]",n),"data-header":"header-title",children:l})}function W({className:n,children:l}){return p.jsx("div",{className:v("flex items-center justify-start text-muted-foreground [grid-area:meta] pb-4 pt-1",n),"data-header":"header-meta",children:l})}function N({className:n,children:l}){return p.jsx("div",{className:v("flex items-center gap-2",n),"data-header":"header-action-group",children:l})}function H({className:n,children:l}){return p.jsx("div",{className:v("flex items-center gap-4 [grid-area:actions] sm:justify-self-end self-start",n),"data-header":"header-actions",children:l})}function V({className:n,children:l}){return p.jsx("div",{className:v("flex items-center gap-2 [grid-area:nav] self-start mt-2 lg:mt-0.5",n),"data-header":"header-nav",children:l})}const L=R("sticky top-0 z-50 -mb-4 grid gap-x-4 bg-gradient-to-b from-background via-background/70 to-background/70 p-4 backdrop-blur-md [grid-template-areas:'above''title''meta''actions''nav'] sm:[grid-template-areas:'above_above''title_actions''meta_actions''nav_nav'] lg:-mb-8 lg:p-8 dark:bg-black",{variants:{variant:{default:"lg:[grid-template-areas:'above_above''title_actions''meta_actions''nav_nav']","inline-nav":"lg:[grid-template-areas:'above_above_above''title_nav_actions''meta_nav_actions'] lg:[grid-template-columns:1fr_auto_auto]"}},defaultVariants:{variant:"default"}});function y({className:n,children:l,variant:e}){return p.jsx("header",{className:v(L({variant:e,className:n})),"data-header":"header",children:l})}y.Above=j;y.Title=D;y.Actions=H;y.ActionGroup=N;y.Nav=V;y.Meta=W;function I(n){const e=n instanceof HTMLElement&&window.getComputedStyle(n).overflowY,t=e!=="visible"&&e!=="hidden";if(n){if(t&&n.scrollHeight>=n.clientHeight)return n}else return null;return I(n.parentNode)||document.body}function x(n,l,e){let t=e.initialDeps??[],s;function i(){var o,r,a,c;let h;e.key&&((o=e.debug)!=null&&o.call(e))&&(h=Date.now());const f=n();if(!(f.length!==t.length||f.some((d,g)=>t[g]!==d)))return s;t=f;let m;if(e.key&&((r=e.debug)!=null&&r.call(e))&&(m=Date.now()),s=l(...f),e.key&&((a=e.debug)!=null&&a.call(e))){const d=Math.round((Date.now()-h)*100)/100,g=Math.round((Date.now()-m)*100)/100,E=g/16,w=(b,A)=>{for(b=String(b);b.length<A;)b=" "+b;return b};console.info(`%c⏱ ${w(g,5)} /${w(d,5)} ms`,`
2
2
  font-size: .6rem;
3
3
  font-weight: bold;
4
- color: hsl(${Math.max(0,Math.min(120-120*E,120))}deg 100% 31%);`,e?.key)}return(c=e?.onChange)==null||c.call(e,s),s}return i.updateDeps=o=>{t=o},i}function M(n,l){if(n===void 0)throw new Error("Unexpected undefined");return n}const B=(n,l)=>Math.abs(n-l)<1.01,P=(n,l,e)=>{let t;return function(...s){n.clearTimeout(t),t=n.setTimeout(()=>l.apply(this,s),e)}},z=n=>{const{offsetWidth:l,offsetHeight:e}=n;return{width:l,height:e}},$=n=>n,q=n=>{const l=Math.max(n.startIndex-n.overscan,0),e=Math.min(n.endIndex+n.overscan,n.count-1),t=[];for(let s=l;s<=e;s++)t.push(s);return t},U=(n,l)=>{const e=n.scrollElement;if(!e)return;const t=n.targetWindow;if(!t)return;const s=o=>{const{width:r,height:a}=o;l({width:Math.round(r),height:Math.round(a)})};if(s(z(e)),!t.ResizeObserver)return()=>{};const i=new t.ResizeObserver(o=>{const r=()=>{const a=o[0];if(a?.borderBoxSize){const c=a.borderBoxSize[0];if(c){s({width:c.inlineSize,height:c.blockSize});return}}s(z(e))};n.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return i.observe(e,{box:"border-box"}),()=>{i.unobserve(e)}},O={passive:!0},C=typeof window>"u"?!0:"onscrollend"in window,K=(n,l)=>{const e=n.scrollElement;if(!e)return;const t=n.targetWindow;if(!t)return;let s=0;const i=n.options.useScrollendEvent&&C?()=>{}:P(t,()=>{l(s,!1)},n.options.isScrollingResetDelay),o=h=>()=>{const{horizontal:f,isRtl:u}=n.options;s=f?e.scrollLeft*(u&&-1||1):e.scrollTop,i(),l(s,h)},r=o(!0),a=o(!1);a(),e.addEventListener("scroll",r,O);const c=n.options.useScrollendEvent&&C;return c&&e.addEventListener("scrollend",a,O),()=>{e.removeEventListener("scroll",r),c&&e.removeEventListener("scrollend",a)}},G=(n,l,e)=>{if(l?.borderBoxSize){const t=l.borderBoxSize[0];if(t)return Math.round(t[e.options.horizontal?"inlineSize":"blockSize"])}return n[e.options.horizontal?"offsetWidth":"offsetHeight"]},Y=(n,{adjustments:l=0,behavior:e},t)=>{var s,i;const o=n+l;(i=(s=t.scrollElement)==null?void 0:s.scrollTo)==null||i.call(s,{[t.options.horizontal?"left":"top"]:o,behavior:e})};class Q{constructor(l){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null;const t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(s=>{s.forEach(i=>{const o=()=>{this._measureElement(i.target,i)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})}));return{disconnect:()=>{var s;(s=t())==null||s.disconnect(),e=null},observe:s=>{var i;return(i=t())==null?void 0:i.observe(s,{box:"border-box"})},unobserve:s=>{var i;return(i=t())==null?void 0:i.unobserve(s)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,s])=>{typeof s>"u"&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:$,rangeExtractor:q,onChange:()=>{},measureElement:G,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,s;(s=(t=this.options).onChange)==null||s.call(t,this,e)},this.maybeNotify=x(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t){this.maybeNotify();return}this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((e=this.scrollElement)==null?void 0:e.window)??null,this.elementsCache.forEach(s=>{this.observer.observe(s)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,s=>{this.scrollRect=s,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(s,i)=>{this.scrollAdjustments=0,this.scrollDirection=i?this.getScrollOffset()<s?"forward":"backward":null,this.scrollOffset=s,this.isScrolling=i,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{const s=new Map,i=new Map;for(let o=t-1;o>=0;o--){const r=e[o];if(s.has(r.lane))continue;const a=i.get(r.lane);if(a==null||r.end>a.end?i.set(r.lane,r):r.end<a.end&&s.set(r.lane,!0),s.size===this.options.lanes)break}return i.size===this.options.lanes?Array.from(i.values()).sort((o,r)=>o.end===r.end?o.index-r.index:o.end-r.end)[0]:void 0},this.getMeasurementOptions=x(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,s,i,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:s,getItemKey:i,enabled:o}),{key:!1}),this.getMeasurements=x(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:s,getItemKey:i,enabled:o},r)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(h=>{this.itemSizeCache.set(h.key,h.size)}));const a=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const c=this.measurementsCache.slice(0,a);for(let h=a;h<e;h++){const f=i(h),u=this.options.lanes===1?c[h-1]:this.getFurthestMeasurement(c,h),m=u?u.end+this.options.gap:t+s,d=r.get(f),g=typeof d=="number"?d:this.options.estimateSize(h),E=m+g,w=u?u.lane:h%this.options.lanes;c[h]={index:h,start:m,size:g,end:E,key:f,lane:w}}return this.measurementsCache=c,c},{key:!1,debug:()=>this.options.debug}),this.calculateRange=x(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,s,i)=>this.range=e.length>0&&t>0?J({measurements:e,outerSize:t,scrollOffset:s,lanes:i}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=x(()=>{let e=null,t=null;const s=this.calculateRange();return s&&(e=s.startIndex,t=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,s,i,o)=>i===null||o===null?[]:e({startIndex:i,endIndex:o,overscan:t,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,s=e.getAttribute(t);return s?parseInt(s,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{const s=this.indexFromElement(e),i=this.measurementsCache[s];if(!i)return;const o=i.key,r=this.elementsCache.get(o);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(s,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{const s=this.measurementsCache[e];if(!s)return;const i=this.itemSizeCache.get(s.key)??s.size,o=t-i;o!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(s,o,this):s.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=o,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(s.index),this.itemSizeCache=new Map(this.itemSizeCache.set(s.key,t)),this.notify(!1))},this.measureElement=e=>{if(!e){this.elementsCache.forEach((t,s)=>{t.isConnected||(this.observer.unobserve(t),this.elementsCache.delete(s))});return}this._measureElement(e,void 0)},this.getVirtualItems=x(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{const s=[];for(let i=0,o=e.length;i<o;i++){const r=e[i],a=t[r];s.push(a)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const t=this.getMeasurements();if(t.length!==0)return M(t[k(0,t.length-1,s=>M(t[s]).start,e)])},this.getOffsetForAlignment=(e,t,s=0)=>{const i=this.getSize(),o=this.getScrollOffset();t==="auto"&&(t=e>=o+i?"end":"start"),t==="center"?e+=(s-i)/2:t==="end"&&(e-=i);const r=this.getTotalSize()+this.options.scrollMargin-i;return Math.max(Math.min(r,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const s=this.measurementsCache[e];if(!s)return;const i=this.getSize(),o=this.getScrollOffset();if(t==="auto")if(s.end>=o+i-this.options.scrollPaddingEnd)t="end";else if(s.start<=o+this.options.scrollPaddingStart)t="start";else return[o,t];const r=t==="end"?s.end+this.options.scrollPaddingEnd:s.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(r,t,s.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:s})},this.scrollToIndex=(e,{align:t="auto",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let i=0;const o=10,r=c=>{if(!this.targetWindow)return;const h=this.getOffsetForIndex(e,c);if(!h){console.warn("Failed to get offset for index:",e);return}const[f,u]=h;this._scrollToOffset(f,{adjustments:void 0,behavior:s}),this.targetWindow.requestAnimationFrame(()=>{const m=this.getScrollOffset(),d=this.getOffsetForIndex(e,u);if(!d){console.warn("Failed to get offset for index:",e);return}B(d[0],m)||a(u)})},a=c=>{this.targetWindow&&(i++,i<o?this.targetWindow.requestAnimationFrame(()=>r(c)):console.warn(`Failed to scroll to index ${e} after ${o} attempts.`))};r(t)},this.scrollBy=(e,{behavior:t}={})=>{t==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;const t=this.getMeasurements();let s;if(t.length===0)s=this.options.paddingStart;else if(this.options.lanes===1)s=((e=t[t.length-1])==null?void 0:e.end)??0;else{const i=Array(this.options.lanes).fill(null);let o=t.length-1;for(;o>=0&&i.some(r=>r===null);){const r=t[o];i[r.lane]===null&&(i[r.lane]=r.end),o--}s=Math.max(...i.filter(r=>r!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:s})=>{this.options.scrollToFn(e,{behavior:s,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(l)}}const k=(n,l,e,t)=>{for(;n<=l;){const s=(n+l)/2|0,i=e(s);if(i<t)n=s+1;else if(i>t)l=s-1;else return s}return n>0?n-1:0};function J({measurements:n,outerSize:l,scrollOffset:e,lanes:t}){const s=n.length-1,i=a=>n[a].start;if(n.length<=t)return{startIndex:0,endIndex:s};let o=k(0,s,i,e),r=o;if(t===1)for(;r<s&&n[r].end<e+l;)r++;else if(t>1){const a=Array(t).fill(0);for(;r<s&&a.some(h=>h<e+l);){const h=n[r];a[h.lane]=h.end,r++}const c=Array(t).fill(e+l);for(;o>=0&&c.some(h=>h>=e);){const h=n[o];c[h.lane]=h.start,o--}o=Math.max(0,o-o%t),r=Math.min(s,r+(t-1-r%t))}return{startIndex:o,endIndex:r}}const _=typeof document<"u"?S.useLayoutEffect:S.useEffect;function X(n){const l=S.useReducer(()=>({}),{})[1],e={...n,onChange:(s,i)=>{var o;i?F.flushSync(l):l(),(o=n.onChange)==null||o.call(n,s,i)}},[t]=S.useState(()=>new Q(e));return t.setOptions(e),_(()=>t._didMount(),[]),_(()=>t._willUpdate()),t}function Z(n){return X({observeElementRect:U,observeElementOffset:K,scrollToFn:Y,...n})}function te({items:n,totalItems:l,parentRef:e,hasNextPage:t,isFetchingNextPage:s,fetchNextPage:i,estimateSize:o=()=>100,overscan:r=5}){const a=Z({count:l,getScrollElement:()=>I(e.current),estimateSize:o,overscan:r}),c=a.getVirtualItems(),h=c.length>0?(c.at(0)?.start??0)-a.options.scrollMargin:0,f=c.length>0?a.getTotalSize()-(c.at(-1)?.end??0):0,u=c.map(d=>({virtualItem:d,key:d.key,item:n[d.index],props:{ref:a.measureElement,"data-index":d.index}})),m=u.at(-1)&&!u.at(-1)?.item;return S.useEffect(()=>{t&&m&&!s&&i()},[t,m,s,i]),{visibleItems:u,virtualizer:a,spaceBefore:h,spaceAfter:f}}export{y as H,I as g,te as u};
4
+ color: hsl(${Math.max(0,Math.min(120-120*E,120))}deg 100% 31%);`,e?.key)}return(c=e?.onChange)==null||c.call(e,s),s}return i.updateDeps=o=>{t=o},i}function M(n,l){if(n===void 0)throw new Error("Unexpected undefined");return n}const B=(n,l)=>Math.abs(n-l)<1.01,P=(n,l,e)=>{let t;return function(...s){n.clearTimeout(t),t=n.setTimeout(()=>l.apply(this,s),e)}},z=n=>{const{offsetWidth:l,offsetHeight:e}=n;return{width:l,height:e}},$=n=>n,q=n=>{const l=Math.max(n.startIndex-n.overscan,0),e=Math.min(n.endIndex+n.overscan,n.count-1),t=[];for(let s=l;s<=e;s++)t.push(s);return t},U=(n,l)=>{const e=n.scrollElement;if(!e)return;const t=n.targetWindow;if(!t)return;const s=o=>{const{width:r,height:a}=o;l({width:Math.round(r),height:Math.round(a)})};if(s(z(e)),!t.ResizeObserver)return()=>{};const i=new t.ResizeObserver(o=>{const r=()=>{const a=o[0];if(a?.borderBoxSize){const c=a.borderBoxSize[0];if(c){s({width:c.inlineSize,height:c.blockSize});return}}s(z(e))};n.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return i.observe(e,{box:"border-box"}),()=>{i.unobserve(e)}},O={passive:!0},C=typeof window>"u"?!0:"onscrollend"in window,K=(n,l)=>{const e=n.scrollElement;if(!e)return;const t=n.targetWindow;if(!t)return;let s=0;const i=n.options.useScrollendEvent&&C?()=>{}:P(t,()=>{l(s,!1)},n.options.isScrollingResetDelay),o=h=>()=>{const{horizontal:f,isRtl:u}=n.options;s=f?e.scrollLeft*(u&&-1||1):e.scrollTop,i(),l(s,h)},r=o(!0),a=o(!1);a(),e.addEventListener("scroll",r,O);const c=n.options.useScrollendEvent&&C;return c&&e.addEventListener("scrollend",a,O),()=>{e.removeEventListener("scroll",r),c&&e.removeEventListener("scrollend",a)}},G=(n,l,e)=>{if(l?.borderBoxSize){const t=l.borderBoxSize[0];if(t)return Math.round(t[e.options.horizontal?"inlineSize":"blockSize"])}return n[e.options.horizontal?"offsetWidth":"offsetHeight"]},Y=(n,{adjustments:l=0,behavior:e},t)=>{var s,i;const o=n+l;(i=(s=t.scrollElement)==null?void 0:s.scrollTo)==null||i.call(s,{[t.options.horizontal?"left":"top"]:o,behavior:e})};class J{constructor(l){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null;const t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(s=>{s.forEach(i=>{const o=()=>{this._measureElement(i.target,i)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})}));return{disconnect:()=>{var s;(s=t())==null||s.disconnect(),e=null},observe:s=>{var i;return(i=t())==null?void 0:i.observe(s,{box:"border-box"})},unobserve:s=>{var i;return(i=t())==null?void 0:i.unobserve(s)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,s])=>{typeof s>"u"&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:$,rangeExtractor:q,onChange:()=>{},measureElement:G,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,s;(s=(t=this.options).onChange)==null||s.call(t,this,e)},this.maybeNotify=x(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t){this.maybeNotify();return}this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((e=this.scrollElement)==null?void 0:e.window)??null,this.elementsCache.forEach(s=>{this.observer.observe(s)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,s=>{this.scrollRect=s,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(s,i)=>{this.scrollAdjustments=0,this.scrollDirection=i?this.getScrollOffset()<s?"forward":"backward":null,this.scrollOffset=s,this.isScrolling=i,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{const s=new Map,i=new Map;for(let o=t-1;o>=0;o--){const r=e[o];if(s.has(r.lane))continue;const a=i.get(r.lane);if(a==null||r.end>a.end?i.set(r.lane,r):r.end<a.end&&s.set(r.lane,!0),s.size===this.options.lanes)break}return i.size===this.options.lanes?Array.from(i.values()).sort((o,r)=>o.end===r.end?o.index-r.index:o.end-r.end)[0]:void 0},this.getMeasurementOptions=x(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,s,i,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:s,getItemKey:i,enabled:o}),{key:!1}),this.getMeasurements=x(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:s,getItemKey:i,enabled:o},r)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(h=>{this.itemSizeCache.set(h.key,h.size)}));const a=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const c=this.measurementsCache.slice(0,a);for(let h=a;h<e;h++){const f=i(h),u=this.options.lanes===1?c[h-1]:this.getFurthestMeasurement(c,h),m=u?u.end+this.options.gap:t+s,d=r.get(f),g=typeof d=="number"?d:this.options.estimateSize(h),E=m+g,w=u?u.lane:h%this.options.lanes;c[h]={index:h,start:m,size:g,end:E,key:f,lane:w}}return this.measurementsCache=c,c},{key:!1,debug:()=>this.options.debug}),this.calculateRange=x(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,s,i)=>this.range=e.length>0&&t>0?Q({measurements:e,outerSize:t,scrollOffset:s,lanes:i}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=x(()=>{let e=null,t=null;const s=this.calculateRange();return s&&(e=s.startIndex,t=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,s,i,o)=>i===null||o===null?[]:e({startIndex:i,endIndex:o,overscan:t,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,s=e.getAttribute(t);return s?parseInt(s,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{const s=this.indexFromElement(e),i=this.measurementsCache[s];if(!i)return;const o=i.key,r=this.elementsCache.get(o);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(s,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{const s=this.measurementsCache[e];if(!s)return;const i=this.itemSizeCache.get(s.key)??s.size,o=t-i;o!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(s,o,this):s.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=o,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(s.index),this.itemSizeCache=new Map(this.itemSizeCache.set(s.key,t)),this.notify(!1))},this.measureElement=e=>{if(!e){this.elementsCache.forEach((t,s)=>{t.isConnected||(this.observer.unobserve(t),this.elementsCache.delete(s))});return}this._measureElement(e,void 0)},this.getVirtualItems=x(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{const s=[];for(let i=0,o=e.length;i<o;i++){const r=e[i],a=t[r];s.push(a)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const t=this.getMeasurements();if(t.length!==0)return M(t[k(0,t.length-1,s=>M(t[s]).start,e)])},this.getOffsetForAlignment=(e,t,s=0)=>{const i=this.getSize(),o=this.getScrollOffset();t==="auto"&&(t=e>=o+i?"end":"start"),t==="center"?e+=(s-i)/2:t==="end"&&(e-=i);const r=this.getTotalSize()+this.options.scrollMargin-i;return Math.max(Math.min(r,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const s=this.measurementsCache[e];if(!s)return;const i=this.getSize(),o=this.getScrollOffset();if(t==="auto")if(s.end>=o+i-this.options.scrollPaddingEnd)t="end";else if(s.start<=o+this.options.scrollPaddingStart)t="start";else return[o,t];const r=t==="end"?s.end+this.options.scrollPaddingEnd:s.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(r,t,s.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:s})},this.scrollToIndex=(e,{align:t="auto",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let i=0;const o=10,r=c=>{if(!this.targetWindow)return;const h=this.getOffsetForIndex(e,c);if(!h){console.warn("Failed to get offset for index:",e);return}const[f,u]=h;this._scrollToOffset(f,{adjustments:void 0,behavior:s}),this.targetWindow.requestAnimationFrame(()=>{const m=this.getScrollOffset(),d=this.getOffsetForIndex(e,u);if(!d){console.warn("Failed to get offset for index:",e);return}B(d[0],m)||a(u)})},a=c=>{this.targetWindow&&(i++,i<o?this.targetWindow.requestAnimationFrame(()=>r(c)):console.warn(`Failed to scroll to index ${e} after ${o} attempts.`))};r(t)},this.scrollBy=(e,{behavior:t}={})=>{t==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;const t=this.getMeasurements();let s;if(t.length===0)s=this.options.paddingStart;else if(this.options.lanes===1)s=((e=t[t.length-1])==null?void 0:e.end)??0;else{const i=Array(this.options.lanes).fill(null);let o=t.length-1;for(;o>=0&&i.some(r=>r===null);){const r=t[o];i[r.lane]===null&&(i[r.lane]=r.end),o--}s=Math.max(...i.filter(r=>r!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:s})=>{this.options.scrollToFn(e,{behavior:s,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(l)}}const k=(n,l,e,t)=>{for(;n<=l;){const s=(n+l)/2|0,i=e(s);if(i<t)n=s+1;else if(i>t)l=s-1;else return s}return n>0?n-1:0};function Q({measurements:n,outerSize:l,scrollOffset:e,lanes:t}){const s=n.length-1,i=a=>n[a].start;if(n.length<=t)return{startIndex:0,endIndex:s};let o=k(0,s,i,e),r=o;if(t===1)for(;r<s&&n[r].end<e+l;)r++;else if(t>1){const a=Array(t).fill(0);for(;r<s&&a.some(h=>h<e+l);){const h=n[r];a[h.lane]=h.end,r++}const c=Array(t).fill(e+l);for(;o>=0&&c.some(h=>h>=e);){const h=n[o];c[h.lane]=h.start,o--}o=Math.max(0,o-o%t),r=Math.min(s,r+(t-1-r%t))}return{startIndex:o,endIndex:r}}const _=typeof document<"u"?S.useLayoutEffect:S.useEffect;function X(n){const l=S.useReducer(()=>({}),{})[1],e={...n,onChange:(s,i)=>{var o;i?F.flushSync(l):l(),(o=n.onChange)==null||o.call(n,s,i)}},[t]=S.useState(()=>new J(e));return t.setOptions(e),_(()=>t._didMount(),[]),_(()=>t._willUpdate()),t}function Z(n){return X({observeElementRect:U,observeElementOffset:K,scrollToFn:Y,...n})}function te({items:n,totalItems:l,parentRef:e,hasNextPage:t,isFetchingNextPage:s,fetchNextPage:i,estimateSize:o=()=>100,overscan:r=5}){const a=Z({count:l,getScrollElement:()=>I(e.current),estimateSize:o,overscan:r}),c=a.getVirtualItems(),h=c.length>0?(c.at(0)?.start??0)-a.options.scrollMargin:0,f=c.length>0?a.getTotalSize()-(c.at(-1)?.end??0):0,u=c.map(d=>({virtualItem:d,key:d.key,item:n[d.index],props:{ref:a.measureElement,"data-index":d.index}})),m=u.at(-1)&&!u.at(-1)?.item;return S.useEffect(()=>{t&&m&&!s&&i()},[t,m,s,i]),{visibleItems:u,virtualizer:a,spaceBefore:h,spaceAfter:f}}export{y as H,I as g,te as u};
@@ -1 +1 @@
1
- import{e as u,j as i,y as l,B as c,aM as h,r as m}from"./index-B8G0f0hb.js";import{A as N}from"./lucide-react-ClQ3Iy7l.js";const j=u.forwardRef(({className:e,children:t,...n},a)=>i.jsx("div",{ref:a,className:l("flex items-center justify-between gap-4 pb-6 text-sm",e),...n,children:t}));j.displayName="SimplePagination";const w=u.forwardRef(({className:e,currentPage:t,totalPages:n,...a},r)=>i.jsxs("span",{ref:r,className:l("text-muted-foreground",e),...a,children:["Pages ",t," of ",n]}));w.displayName="SimplePaginationPages";const v=u.forwardRef(({className:e,children:t,...n},a)=>i.jsx("div",{ref:a,className:l("flex items-center gap-1.5",e),...n,children:t}));v.displayName="SimplePaginationNavigation";const M=u.forwardRef(({variant:e="outline",...t},n)=>i.jsx(c,{ref:n,size:"sm",variant:e,...t,children:i.jsx(h,{})}));M.displayName="SimplePaginationPreviousButton";const y=u.forwardRef(({variant:e="outline",...t},n)=>i.jsx(c,{ref:n,size:"sm",variant:e,...t,children:i.jsx(N,{})}));y.displayName="SimplePaginationNextButton";function b({data:e,itemsPerPage:t,initialPage:n=1}){const[a,r]=m.useState(n);if(t<=0)throw new Error("itemsPerPage must be a positive number");const p=s=>{const S=Math.max(1,Math.min(o,s));r(S)},o=m.useMemo(()=>e?Math.ceil(e.length/t):1,[e,t]);m.useEffect(()=>{a>o&&r(1)},[a,o]);const g=m.useMemo(()=>{if(!e)return null;const s=(a-1)*t;return e.slice(s,s+t)},[e,a,t]),f=()=>{r(s=>Math.min(o,s+1))},x=()=>{r(s=>Math.max(1,s-1))},P=a<o,d=a>1;return{currentPage:a,setCurrentPage:p,totalPages:o,paginatedData:g,nextPage:f,previousPage:x,hasNextPage:P,hasPreviousPage:d}}export{j as S,v as a,M as b,y as c,w as d,b as u};
1
+ import{e as u,j as i,y as l,B as c,aM as h,r as m}from"./index-DCTdAEHx.js";import{A as N}from"./lucide-react-DtMIZssr.js";const j=u.forwardRef(({className:e,children:t,...n},a)=>i.jsx("div",{ref:a,className:l("flex items-center justify-between gap-4 pb-6 text-sm",e),...n,children:t}));j.displayName="SimplePagination";const w=u.forwardRef(({className:e,currentPage:t,totalPages:n,...a},r)=>i.jsxs("span",{ref:r,className:l("text-muted-foreground",e),...a,children:["Pages ",t," of ",n]}));w.displayName="SimplePaginationPages";const v=u.forwardRef(({className:e,children:t,...n},a)=>i.jsx("div",{ref:a,className:l("flex items-center gap-1.5",e),...n,children:t}));v.displayName="SimplePaginationNavigation";const M=u.forwardRef(({variant:e="outline",...t},n)=>i.jsx(c,{ref:n,size:"sm",variant:e,...t,children:i.jsx(h,{})}));M.displayName="SimplePaginationPreviousButton";const y=u.forwardRef(({variant:e="outline",...t},n)=>i.jsx(c,{ref:n,size:"sm",variant:e,...t,children:i.jsx(N,{})}));y.displayName="SimplePaginationNextButton";function b({data:e,itemsPerPage:t,initialPage:n=1}){const[a,r]=m.useState(n);if(t<=0)throw new Error("itemsPerPage must be a positive number");const p=s=>{const S=Math.max(1,Math.min(o,s));r(S)},o=m.useMemo(()=>e?Math.ceil(e.length/t):1,[e,t]);m.useEffect(()=>{a>o&&r(1)},[a,o]);const g=m.useMemo(()=>{if(!e)return null;const s=(a-1)*t;return e.slice(s,s+t)},[e,a,t]),f=()=>{r(s=>Math.min(o,s+1))},x=()=>{r(s=>Math.max(1,s-1))},P=a<o,d=a>1;return{currentPage:a,setCurrentPage:p,totalPages:o,paginatedData:g,nextPage:f,previousPage:x,hasNextPage:P,hasPreviousPage:d}}export{j as S,v as a,M as b,y as c,w as d,b as u};
@@ -1,4 +1,4 @@
1
- import{aA as e}from"./index-B8G0f0hb.js";/**
1
+ import{aA as e}from"./index-DCTdAEHx.js";/**
2
2
  * @license lucide-react v0.553.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{aA as a}from"./index-B8G0f0hb.js";/**
1
+ import{aA as a}from"./index-DCTdAEHx.js";/**
2
2
  * @license lucide-react v0.553.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{j as t,aS as be,aR as xe,by as Se,bz as je,B as oe,bA as _e,bB as Ce,bC as Ne,bD as ve,ch as Le,aj as ye,ai as Te,aU as Ee,r as l,ci as Fe,aT as J,bK as Oe,af as ne,ag as $,cj as ke,bG as De,aP as Ae,u as Ie,aV as Me,aQ as Pe}from"./index-B8G0f0hb.js";import{S as we,a as Ue,b as Ve,c as Re,d as Be,e as ze,f as Ke}from"./select-C7aNW8QS.js";import{u as H,S as ie,a as re,A as Z,b as z,c as q,U as le}from"./post-analytics-context-BLkup0Xh.js";import{a as $e,F as Ge,b as He}from"./message-square-text-Dd1XS5-H.js";import{g as We,a as Qe,S as Ye,b as qe}from"./kpis-D-gz-lUk.js";import{F as Xe,c as W,e as ce}from"./en-DuTkaMAI.js";import{C as ue,a as Je,b as Ze,f as et,c as de,g as tt,u as K,j as ee}from"./pagemenu-CkzsZrHC.js";import{D as st,h as at,i as te,a as ot,b as nt,c as it,d as rt,e as lt,f as ct,g as ut}from"./data-list-Dn5MkmyD.js";import{a as dt,U as mt}from"./wallet-cards-xX4QZik7.js";import{P as pt,a as ht}from"./post-analytics-header-D9srAPT5.js";import{F as gt,c as ft}from"./filters-gnOx5Z45.js";import{b as bt,c as xt,F as St,d as jt,S as _t,T as Ct}from"./lucide-react-ClQ3Iy7l.js";import{E as Nt}from"./empty-indicator-C2Z0dddU.js";import"./posts-DDkuYoN7.js";import"./source-icon-DTz4isLK.js";import"./source-utils-B1S3ZHA2.js";import"./gh-chart-B2aWYkGg.js";import"./chart-BAQCVPCH.js";import"./_baseAssignValue-D_UsvJRN.js";import"./tabs-CjNdfW0y.js";import"./index-DKAlEWM4.js";import"./post-share-modal-CkvJtrRw.js";import"./post-helpers-gInwAwEv.js";import"./trash-D7ZWrnDq.js";import"./sprout-BwLQTzMf.js";import"./a-large-small-DVyx4GMu.js";import"./at-sign-CGNkBrZS.js";import"./copy-CNsHZEFR.js";import"./hash-j3sh-UI3.js";import"./inbox-1cUdr8Mm.js";import"./list-filter-DPE4Xj2T.js";import"./minus-CyEc3BE5.js";import"./tags-PGeGAafJ.js";import"./square-YF1YE9ex.js";import"./user-round-check-BLc3L-ei.js";import"./repeat-B-SL0yPM.js";import"./reply-BdCPoUQ9.js";const se=()=>{const{range:e,setRange:s}=H();return t.jsxs(we,{value:`${e}`,onValueChange:a=>{s(Number(a))},children:[t.jsxs(Ue,{className:"w-auto",children:[t.jsx($e,{className:"mr-2",size:16,strokeWidth:1.5}),t.jsx(Ve,{placeholder:"Select a period"})]}),t.jsx(Re,{align:"end",children:t.jsxs(Be,{children:[t.jsx(ze,{children:"Period"}),Object.values(ie).map(a=>t.jsx(Ke,{value:`${a.value}`,children:a.name},a.value))]})})]})};W.registerLocale(ce);const vt=e=>re[e]||W.getName(e,"en")||"Unknown",Lt=e=>{const s={"UNITED STATES":"US","UNITED STATES OF AMERICA":"US",USA:"US","UNITED KINGDOM":"GB",UK:"GB","GREAT BRITAIN":"GB",NETHERLANDS:"NL"},a=e.toUpperCase();return s[a]||(e.length>2?e.substring(0,2):e)},ae=({tableHeader:e,data:s,onLocationClick:a})=>t.jsxs(st,{children:[e&&t.jsxs(at,{children:[t.jsx(te,{children:"Country"}),t.jsx(te,{children:"Visitors"})]}),t.jsx(ot,{children:s.map(i=>{const o=vt(`${i.location}`),r=a&&i.location!=="Unknown",c=i.location?i.location.toLowerCase():"unknown";return t.jsxs(nt,{className:r?"cursor-pointer":"","data-testid":`location-row-${c}`,onClick:r?()=>a(i.location):void 0,children:[t.jsx(it,{style:{width:`${i.percentage?Math.round(i.percentage*100):0}%`}}),t.jsx(rt,{className:"group-hover/data:max-w-[calc(100%-140px)]",children:t.jsxs("div",{className:"flex items-center space-x-3 overflow-hidden",title:o,children:[t.jsx(Xe,{countryCode:`${Lt(i.location)}`,fallback:t.jsx("span",{className:"flex h-[14px] w-[22px] items-center justify-center rounded-[2px] bg-black text-white",children:t.jsx(Le.SkullAndBones,{className:"size-3"})})}),t.jsx("div",{className:"truncate font-medium",children:o})]})}),t.jsxs(lt,{children:[t.jsx(ct,{children:ye(Number(i.visits))}),t.jsx(ut,{children:Te(i.percentage)})]})]},i.location||"unknown")})})]}),yt=({data:e,isLoading:s,onLocationClick:a})=>{const i=e.slice(0,10);return t.jsx(t.Fragment,{children:s?"":t.jsx(t.Fragment,{children:e&&e.length>0&&t.jsxs(ue,{className:"group/datalist","data-testid":"locations-card",children:[t.jsxs("div",{className:"flex items-center justify-between p-6",children:[t.jsxs(Je,{className:"p-0",children:[t.jsx(Ze,{children:"Locations"}),t.jsx(et,{children:"Where are the readers of this post"})]}),t.jsx(be,{className:"mr-2",children:"Visitors"})]}),t.jsxs(de,{className:"overflow-hidden",children:[t.jsx(xe,{}),t.jsx(ae,{data:i,tableHeader:!1,onLocationClick:a})]}),e.length>10&&t.jsx(tt,{children:t.jsxs(Se,{children:[t.jsx(je,{asChild:!0,children:t.jsxs(oe,{variant:"outline",children:["View all ",t.jsx(dt,{})]})}),t.jsxs(_e,{className:"overflow-y-auto pt-0 sm:max-w-[600px]",children:[t.jsxs(Ce,{className:"sticky top-0 z-40 -mx-6 bg-background/60 p-6 backdrop-blur",children:[t.jsx(Ne,{children:"Top locations"}),t.jsx(ve,{children:"Where are the readers of this post"})]}),t.jsx("div",{className:"group/datalist",children:t.jsx(ae,{data:e,tableHeader:!0,onLocationClick:a})})]})]})})]})})})},me=e=>!e||e.length===0?Z:z.filter(s=>e.includes(s.value)).reduce((s,a)=>s|a.bit,0)||Z,pe=e=>{const s=[];return(e&q.PUBLIC)!==0&&s.push(z[0].value),(e&q.FREE)!==0&&s.push(z[1].value),(e&q.PAID)!==0&&s.push(z[2].value),s.join(",")};W.registerLocale(ce);const Tt=e=>re[e]||W.getName(e,"en")||e,Et=({visits:e})=>t.jsx("span",{className:"order-2 font-mono text-xs text-muted-foreground",children:e.toLocaleString()}),Ft={utm_source:{endpoint:"api_top_utm_sources",valueKey:"utm_source",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},utm_medium:{endpoint:"api_top_utm_mediums",valueKey:"utm_medium",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},utm_campaign:{endpoint:"api_top_utm_campaigns",valueKey:"utm_campaign",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},utm_content:{endpoint:"api_top_utm_contents",valueKey:"utm_content",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},utm_term:{endpoint:"api_top_utm_terms",valueKey:"utm_term",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},source:{endpoint:"api_top_sources",valueKey:"source",transformValue:e=>({value:e||"",label:e||"Direct"})},location:{endpoint:"api_top_locations",valueKey:"location",filterItem(e){const s=String(e.location||"");return s!==""&&!le.includes(s)},transformValue:e=>({value:e,label:Tt(e)})},device:{endpoint:"api_top_devices",valueKey:"device",transformValue:e=>({value:e,label:e==="mobile-ios"?"iOS":e==="mobile-android"?"Android":e==="desktop"?"Desktop":e==="bot"?"Bot":e})}},Ot=(e,s,a)=>{const i={...a};return e.forEach(o=>{if(o.field===s||o.values.length===0)return;const r=o.values[0];o.field!=="audience"&&(o.field==="source"||o.field==="device"||o.field==="location"||o.field.startsWith("utm_"))&&(i[o.field]=r)}),i},O=(e,s=[],a,i={})=>{const{enabled:o=!0}=i,{statsConfig:r,range:c}=H(),{startDate:b,endDate:m,timezone:x}=ne(c),p=Ft[e],d=l.useMemo(()=>{const j=s.find(h=>h.field==="audience");return me(j?.values)},[s]),S=l.useMemo(()=>{const j={site_uuid:r?.id||"",date_from:$(b),date_to:$(m),timezone:x,member_status:pe(d),limit:"50"};return a&&(j.post_uuid=a),Ot(s,e,j)},[r?.id,b,m,x,d,s,e,a]),{data:v,loading:k}=K({endpoint:p?.endpoint||"",statsConfig:r,params:S,enabled:o&&!!p});return{options:l.useMemo(()=>p?(v||[]).filter(h=>p.filterItem?p.filterItem(h):!0).map(h=>{const E=String(h[p.valueKey]??""),M=Number(h.visits)||0,{value:F,label:y}=p.transformValue?p.transformValue(E):{value:E,label:E};return{label:y,value:F,icon:t.jsx(Et,{visits:M})}}):[],[v,p]),loading:k}};function kt({filters:e,onChange:s,...a}){const{appSettings:i}=Ee(),{post:o}=H(),r=o?.uuid,[c,b]=l.useState(null),[m,x]=l.useState(!1);l.useEffect(()=>{const g=window.matchMedia("(max-width: 1024px)"),C=T=>{x(T.matches)};return C(g),g.addEventListener("change",C),()=>g.removeEventListener("change",C)},[]);const p=l.useMemo(()=>{const g=[{value:"undefined",label:"Public visitors",icon:t.jsx(J,{className:"text-gray-700"})},{value:"free",label:"Free members",icon:t.jsx(Oe,{className:"text-green"})},{value:"paid",label:"Paid members",icon:t.jsx(mt,{className:"text-orange"})}];return i?.paidMembersEnabled?g:g.filter(C=>C.value!=="paid")},[i?.paidMembersEnabled]),d=l.useCallback(g=>{const C=c===g,T=e.some(n=>n.field===g);return C||T},[c,e]),{options:S,loading:v}=O("utm_source",e,r,{enabled:d("utm_source")}),{options:k,loading:I}=O("utm_medium",e,r,{enabled:d("utm_medium")}),{options:j,loading:h}=O("utm_campaign",e,r,{enabled:d("utm_campaign")}),{options:E,loading:M}=O("utm_content",e,r,{enabled:d("utm_content")}),{options:F,loading:y}=O("utm_term",e,r,{enabled:d("utm_term")}),{options:R,loading:D}=O("source",e,r,{enabled:d("source")}),{options:U,loading:A}=O("device",e,r,{enabled:d("device")}),{options:B,loading:P}=O("location",e,r,{enabled:d("location")}),_=l.useMemo(()=>[{value:"is",label:"is"}],[]),Q=l.useMemo(()=>{const g=[{key:"utm_source",label:"UTM Source",type:"select",icon:t.jsx(jt,{className:"size-4"}),placeholder:"Select source",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:S,isLoading:v,searchable:!0,selectedOptionsClassName:"hidden"},{key:"utm_medium",label:"UTM Medium",type:"select",icon:t.jsx(_t,{className:"size-4"}),placeholder:"Select medium",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:k,isLoading:I,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"},{key:"utm_campaign",label:"UTM Campaign",type:"select",icon:t.jsx(He,{className:"size-4"}),placeholder:"Select campaign",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:j,isLoading:h,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"},{key:"utm_content",label:"UTM Content",type:"select",icon:t.jsx(Ct,{className:"size-4"}),placeholder:"Select content",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:E,isLoading:M,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"},{key:"utm_term",label:"UTM Term",type:"select",icon:t.jsx(ke,{className:"size-4"}),placeholder:"Select term",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:F,isLoading:y,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"}];return[{group:"Basic",fields:[{key:"audience",label:"Audience",type:"multiselect",icon:t.jsx(Fe,{}),options:p.map(({value:C,label:T,icon:n})=>({value:C,label:T,icon:n})),defaultOperator:"is any of",hideOperatorSelect:!0,autoCloseOnSelect:!0},{key:"source",label:"Source",type:"select",icon:t.jsx(J,{className:"size-4"}),placeholder:"Select source",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:R,isLoading:D,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"},{key:"device",label:"Device",type:"select",icon:t.jsx(bt,{className:"size-4"}),placeholder:"Select device",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:U,isLoading:A,selectedOptionsClassName:"hidden"},{key:"location",label:"Location",type:"select",icon:t.jsx(xt,{className:"size-4"}),placeholder:"Select location",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:B,isLoading:P,searchable:!0,selectedOptionsClassName:"hidden"}]},{group:"UTM parameters",fields:g}]},[S,v,k,I,j,h,E,M,F,y,_,p,R,D,U,A,B,P]),w=e.length>0,Y=l.useCallback(()=>{s&&s([])},[s]);return t.jsxs("div",{className:"mt-3 flex w-full justify-between gap-2 lg:mt-0","data-testid":"stats-filter-container",children:[t.jsx(gt,{addButtonIcon:t.jsx(Ge,{}),addButtonText:w?"Add filter":"Filter",allowMultiple:!1,className:`[&>button]:order-last ${w&&"[&>button]:border-none"}`,fields:Q,filters:e,keyboardShortcut:"f",popoverAlign:m||w?"start":"end",showSearchInput:!1,onActiveFieldChange:b,onChange:s||(()=>{}),...a}),w&&t.jsxs(oe,{className:"hidden font-normal text-muted-foreground lg:flex","data-testid":"stats-filter-clear-button",variant:"ghost",onClick:Y,children:[t.jsx(St,{}),"Clear"]})]})}const G=["audience","source","device","location","utm_source","utm_medium","utm_campaign","utm_content","utm_term"],he="__empty__",ge="%2C";function Dt(e){const s=new URLSearchParams;return e.forEach(a=>{if(G.includes(a.field)&&a.values.length>0){const i=a.values.map(o=>o===""?he:String(o).replace(/,/g,ge)).join(",");s.set(a.field,i)}}),s}const X=new Map;function At(e){return X.has(e)||X.set(e,`url-${e}-${Date.now()}-${Math.random().toString(36).substring(2,11)}`),X.get(e)}function It(e){const s=[],a=new Set(G);return e.forEach((i,o)=>{if(!a.has(o))return;const r=i.split(",").map(c=>c===he?"":c.replace(new RegExp(ge,"g"),","));if(r.length>0){const c=o==="audience"?"is any of":"is";s.push({id:At(o),field:o,operator:c,values:r})}}),s}function Mt(e={}){const[s,a]=De(),{onFiltersChange:i}=e,o=l.useRef(!1),r=l.useMemo(()=>It(s),[s]);l.useEffect(()=>{!o.current&&i&&i(r)},[r,i]);const c=l.useCallback(m=>{o.current=!0;const x=typeof m=="function"?m(r):m,p=Dt(x),d=new URLSearchParams(s);G.forEach(S=>{d.delete(S)}),p.forEach((S,v)=>{d.set(v,S)}),a(d,{replace:!0}),setTimeout(()=>{o.current=!1},0)},[r,s,a]),b=l.useCallback(()=>{o.current=!0;const m=new URLSearchParams(s);G.forEach(x=>{m.delete(x)}),a(m,{replace:!0}),setTimeout(()=>{o.current=!1},0)},[s,a]);return{filters:r,setFilters:c,clearFilters:b}}const Ss=()=>{const e=Ae(),{postId:s}=Ie(),{statsConfig:a,isLoading:i,range:o,data:r,post:c,isPostLoading:b}=H(),{filters:m,setFilters:x}=Mt(),p=l.useMemo(()=>{const n=m.find(f=>f.field==="audience");return me(n?.values)},[m]);l.useEffect(()=>{!b&&c?.email_only&&e(`/posts/analytics/${s}`)},[b,c?.email_only,e,s]);const d=l.useMemo(()=>{if(!c?.published_at)return ie.ALL_TIME.value;const n=Me(c.published_at);return o>n?n:o},[c?.published_at,o]),{startDate:S,endDate:v,timezone:k}=ne(d),I=l.useCallback(()=>{const n=document.querySelector(".overflow-y-scroll");n&&n.scrollTo({top:0,behavior:"smooth"})},[]),j=l.useMemo(()=>{const n={};return m.forEach(f=>{const N=f.field,L=f.values;if(N==="audience")return;const u=L&&L.length>0&&L[0]!==null&&L[0]!==void 0,V=N==="source"&&L?.[0]==="";if(u&&(L[0]!==""||V)){const fe=String(L[0]);n[N]=fe}}),n},[m]),h=l.useCallback((n,f)=>{x(N=>N.find(u=>u.field===n)?N.map(u=>u.field===n?{...u,values:[f]}:u):[...N,ft(n,"is",[f])]),I()},[x,I]),E=l.useCallback(n=>h("location",n),[h]),M=l.useCallback(n=>h("source",n),[h]),F=l.useMemo(()=>{const n={site_uuid:a?.id||"",date_from:$(S),date_to:$(v),timezone:k,member_status:pe(p),post_uuid:"",...j};return!b&&c?.uuid?{...n,post_uuid:c.uuid}:n},[b,c,a?.id,S,v,k,p,j]),{data:y,loading:R}=K({endpoint:"api_kpis",statsConfig:a||{id:""},params:F}),{data:D,loading:U}=K({endpoint:"api_top_locations",statsConfig:a||{id:""},params:F}),{data:A,loading:B}=K({endpoint:"api_top_sources",statsConfig:a||{id:""},params:F}),P=l.useMemo(()=>D?.reduce((n,f)=>n+Number(f.visits),0)||0,[D]),_=l.useMemo(()=>A?A.reduce((n,f)=>n+Number(f.visits||0),0):0,[A]),Q=r?.url,w=r?.icon,Y=l.useMemo(()=>{const n=D?.map(u=>({location:String(u.location),visits:Number(u.visits),percentage:P>0?Number(u.visits)/P:0,isUnknown:le.includes(String(u.location))}))||[],f=n.filter(u=>!u.isUnknown),N=n.filter(u=>u.isUnknown),L=N.length>0?[{location:"Unknown",visits:N.reduce((u,V)=>u+V.visits,0),percentage:N.reduce((u,V)=>u+V.percentage,0)}]:[];return[...f,...L]},[D,P]),g=i||b||R||U||B,C=We(y),T=m.length>0;return t.jsxs(t.Fragment,{children:[t.jsxs(pt,{currentTab:"Web",children:[T&&t.jsx(ee,{children:t.jsx(se,{})}),t.jsxs(ee,{className:`${T?"!mt-0 [grid-area:subactions] lg:!mt-[25px]":"[grid-area:actions]"}`,children:[t.jsx(kt,{filters:m,onChange:x}),!T&&t.jsx(se,{})]})]}),t.jsx(ht,{children:g?t.jsx(ue,{className:"size-full",variant:"plain",children:t.jsx(de,{className:"size-full items-center justify-center",children:t.jsx(Pe,{})})}):y&&y.length!==0&&C.visits!=="0"?t.jsxs(t.Fragment,{children:[t.jsx(Qe,{data:y,range:d}),t.jsxs("div",{className:"flex flex-col gap-6 lg:grid lg:grid-cols-2",children:[t.jsx(yt,{data:Y,isLoading:U,onLocationClick:E}),t.jsx(Ye,{data:A,range:d,siteIcon:w,siteUrl:Q,totalVisitors:_,onSourceClick:M})]})]}):t.jsx("div",{className:"grow",children:t.jsx(Nt,{className:"h-full",description:"Try adjusting filters to see more data.",title:`No visitors ${qe(o)}`,children:t.jsx(J,{strokeWidth:1.5})})})})]})};export{Ss as default};
1
+ import{j as t,aS as be,aR as xe,bv as Se,bw as je,B as oe,bx as _e,by as Ce,bz as Ne,bA as ve,ch as Le,aj as ye,ai as Te,aU as Ee,r as l,ci as Fe,aT as J,bH as Oe,af as ne,ag as K,cj as ke,bD as De,aP as Ae,u as Ie,aV as Me,aQ as we}from"./index-DCTdAEHx.js";import{S as Pe,a as Ue,b as Ve,c as Re,d as Be,e as ze,f as $e}from"./select-WwMsbBbg.js";import{u as H,S as ie,a as re,A as Z,b as z,c as q,U as le}from"./post-analytics-context-BST4bzps.js";import{a as Ke,F as Ge,b as He}from"./message-square-text-BDZtUW-2.js";import{g as We,a as Qe,S as Ye,b as qe}from"./kpis-Cc2RxnvZ.js";import{F as Xe,c as W,e as ce}from"./en-C7eSFQRw.js";import{C as ue,a as Je,b as Ze,f as et,c as de,g as tt,u as $,j as ee}from"./pagemenu-Cd45frnF.js";import{D as st,h as at,i as te,a as ot,b as nt,c as it,d as rt,e as lt,f as ct,g as ut}from"./data-list-Bu3jzs1s.js";import{a as dt,U as mt}from"./wallet-cards-ddLuIN-b.js";import{P as pt,a as ht}from"./post-analytics-header-DAZPp6M8.js";import{F as gt,c as ft}from"./filters-DEKF0tIB.js";import{b as bt,c as xt,F as St,d as jt,S as _t,T as Ct}from"./lucide-react-DtMIZssr.js";import{E as Nt}from"./empty-indicator-C6BBh99D.js";import"./posts-DFiJPOft.js";import"./source-icon-VpYWpwYb.js";import"./source-utils-B1S3ZHA2.js";import"./gh-chart-D9KI0_sO.js";import"./chart--RFLGIL4.js";import"./_baseAssignValue-Bwn07Ln5.js";import"./tabs-CBD0hW8V.js";import"./index-LyfDjTto.js";import"./post-share-modal-D1JQfuYx.js";import"./post-helpers-gInwAwEv.js";import"./trash-CJY1Wro_.js";import"./sprout-DRqlFJSK.js";import"./a-large-small-p58xibEK.js";import"./at-sign-BZPuAx5m.js";import"./copy-Bi7VpgPR.js";import"./hash-DFhnGHId.js";import"./inbox-p-Y5uScT.js";import"./list-filter-3EF6cVg-.js";import"./minus-CSphShdJ.js";import"./tags-CKrBptuC.js";import"./square-CwHQ9sJ2.js";import"./user-round-check-zOuzV3OS.js";import"./repeat-Smml9n0k.js";import"./reply-CooY4lmk.js";const se=()=>{const{range:e,setRange:s}=H();return t.jsxs(Pe,{value:`${e}`,onValueChange:a=>{s(Number(a))},children:[t.jsxs(Ue,{className:"w-auto",children:[t.jsx(Ke,{className:"mr-2",size:16,strokeWidth:1.5}),t.jsx(Ve,{placeholder:"Select a period"})]}),t.jsx(Re,{align:"end",children:t.jsxs(Be,{children:[t.jsx(ze,{children:"Period"}),Object.values(ie).map(a=>t.jsx($e,{value:`${a.value}`,children:a.name},a.value))]})})]})};W.registerLocale(ce);const vt=e=>re[e]||W.getName(e,"en")||"Unknown",Lt=e=>{const s={"UNITED STATES":"US","UNITED STATES OF AMERICA":"US",USA:"US","UNITED KINGDOM":"GB",UK:"GB","GREAT BRITAIN":"GB",NETHERLANDS:"NL"},a=e.toUpperCase();return s[a]||(e.length>2?e.substring(0,2):e)},ae=({tableHeader:e,data:s,onLocationClick:a})=>t.jsxs(st,{children:[e&&t.jsxs(at,{children:[t.jsx(te,{children:"Country"}),t.jsx(te,{children:"Visitors"})]}),t.jsx(ot,{children:s.map(i=>{const o=vt(`${i.location}`),r=a&&i.location!=="Unknown",c=i.location?i.location.toLowerCase():"unknown";return t.jsxs(nt,{className:r?"cursor-pointer":"","data-testid":`location-row-${c}`,onClick:r?()=>a(i.location):void 0,children:[t.jsx(it,{style:{width:`${i.percentage?Math.round(i.percentage*100):0}%`}}),t.jsx(rt,{className:"group-hover/data:max-w-[calc(100%-140px)]",children:t.jsxs("div",{className:"flex items-center space-x-3 overflow-hidden",title:o,children:[t.jsx(Xe,{countryCode:`${Lt(i.location)}`,fallback:t.jsx("span",{className:"flex h-[14px] w-[22px] items-center justify-center rounded-[2px] bg-black text-white",children:t.jsx(Le.SkullAndBones,{className:"size-3"})})}),t.jsx("div",{className:"truncate font-medium",children:o})]})}),t.jsxs(lt,{children:[t.jsx(ct,{children:ye(Number(i.visits))}),t.jsx(ut,{children:Te(i.percentage)})]})]},i.location||"unknown")})})]}),yt=({data:e,isLoading:s,onLocationClick:a})=>{const i=e.slice(0,10);return t.jsx(t.Fragment,{children:s?"":t.jsx(t.Fragment,{children:e&&e.length>0&&t.jsxs(ue,{className:"group/datalist","data-testid":"locations-card",children:[t.jsxs("div",{className:"flex items-center justify-between p-6",children:[t.jsxs(Je,{className:"p-0",children:[t.jsx(Ze,{children:"Locations"}),t.jsx(et,{children:"Where are the readers of this post"})]}),t.jsx(be,{className:"mr-2",children:"Visitors"})]}),t.jsxs(de,{className:"overflow-hidden",children:[t.jsx(xe,{}),t.jsx(ae,{data:i,tableHeader:!1,onLocationClick:a})]}),e.length>10&&t.jsx(tt,{children:t.jsxs(Se,{children:[t.jsx(je,{asChild:!0,children:t.jsxs(oe,{variant:"outline",children:["View all ",t.jsx(dt,{})]})}),t.jsxs(_e,{className:"overflow-y-auto pt-0 sm:max-w-[600px]",children:[t.jsxs(Ce,{className:"sticky top-0 z-40 -mx-6 bg-background/60 p-6 backdrop-blur",children:[t.jsx(Ne,{children:"Top locations"}),t.jsx(ve,{children:"Where are the readers of this post"})]}),t.jsx("div",{className:"group/datalist",children:t.jsx(ae,{data:e,tableHeader:!0,onLocationClick:a})})]})]})})]})})})},me=e=>!e||e.length===0?Z:z.filter(s=>e.includes(s.value)).reduce((s,a)=>s|a.bit,0)||Z,pe=e=>{const s=[];return(e&q.PUBLIC)!==0&&s.push(z[0].value),(e&q.FREE)!==0&&s.push(z[1].value),(e&q.PAID)!==0&&s.push(z[2].value),s.join(",")};W.registerLocale(ce);const Tt=e=>re[e]||W.getName(e,"en")||e,Et=({visits:e})=>t.jsx("span",{className:"order-2 font-mono text-xs text-muted-foreground",children:e.toLocaleString()}),Ft={utm_source:{endpoint:"api_top_utm_sources",valueKey:"utm_source",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},utm_medium:{endpoint:"api_top_utm_mediums",valueKey:"utm_medium",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},utm_campaign:{endpoint:"api_top_utm_campaigns",valueKey:"utm_campaign",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},utm_content:{endpoint:"api_top_utm_contents",valueKey:"utm_content",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},utm_term:{endpoint:"api_top_utm_terms",valueKey:"utm_term",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},source:{endpoint:"api_top_sources",valueKey:"source",transformValue:e=>({value:e||"",label:e||"Direct"})},location:{endpoint:"api_top_locations",valueKey:"location",filterItem(e){const s=String(e.location||"");return s!==""&&!le.includes(s)},transformValue:e=>({value:e,label:Tt(e)})},device:{endpoint:"api_top_devices",valueKey:"device",transformValue:e=>({value:e,label:e==="mobile-ios"?"iOS":e==="mobile-android"?"Android":e==="desktop"?"Desktop":e==="bot"?"Bot":e})}},Ot=(e,s,a)=>{const i={...a};return e.forEach(o=>{if(o.field===s||o.values.length===0)return;const r=o.values[0];o.field!=="audience"&&(o.field==="source"||o.field==="device"||o.field==="location"||o.field.startsWith("utm_"))&&(i[o.field]=r)}),i},O=(e,s=[],a,i={})=>{const{enabled:o=!0}=i,{statsConfig:r,range:c}=H(),{startDate:b,endDate:m,timezone:x}=ne(c),p=Ft[e],d=l.useMemo(()=>{const j=s.find(h=>h.field==="audience");return me(j?.values)},[s]),S=l.useMemo(()=>{const j={site_uuid:r?.id||"",date_from:K(b),date_to:K(m),timezone:x,member_status:pe(d),limit:"50"};return a&&(j.post_uuid=a),Ot(s,e,j)},[r?.id,b,m,x,d,s,e,a]),{data:v,loading:k}=$({endpoint:p?.endpoint||"",statsConfig:r,params:S,enabled:o&&!!p});return{options:l.useMemo(()=>p?(v||[]).filter(h=>p.filterItem?p.filterItem(h):!0).map(h=>{const E=String(h[p.valueKey]??""),M=Number(h.visits)||0,{value:F,label:y}=p.transformValue?p.transformValue(E):{value:E,label:E};return{label:y,value:F,icon:t.jsx(Et,{visits:M})}}):[],[v,p]),loading:k}};function kt({filters:e,onChange:s,...a}){const{appSettings:i}=Ee(),{post:o}=H(),r=o?.uuid,[c,b]=l.useState(null),[m,x]=l.useState(!1);l.useEffect(()=>{const g=window.matchMedia("(max-width: 1024px)"),C=T=>{x(T.matches)};return C(g),g.addEventListener("change",C),()=>g.removeEventListener("change",C)},[]);const p=l.useMemo(()=>{const g=[{value:"undefined",label:"Public visitors",icon:t.jsx(J,{className:"text-gray-700"})},{value:"free",label:"Free members",icon:t.jsx(Oe,{className:"text-green"})},{value:"paid",label:"Paid members",icon:t.jsx(mt,{className:"text-orange"})}];return i?.paidMembersEnabled?g:g.filter(C=>C.value!=="paid")},[i?.paidMembersEnabled]),d=l.useCallback(g=>{const C=c===g,T=e.some(n=>n.field===g);return C||T},[c,e]),{options:S,loading:v}=O("utm_source",e,r,{enabled:d("utm_source")}),{options:k,loading:I}=O("utm_medium",e,r,{enabled:d("utm_medium")}),{options:j,loading:h}=O("utm_campaign",e,r,{enabled:d("utm_campaign")}),{options:E,loading:M}=O("utm_content",e,r,{enabled:d("utm_content")}),{options:F,loading:y}=O("utm_term",e,r,{enabled:d("utm_term")}),{options:R,loading:D}=O("source",e,r,{enabled:d("source")}),{options:U,loading:A}=O("device",e,r,{enabled:d("device")}),{options:B,loading:w}=O("location",e,r,{enabled:d("location")}),_=l.useMemo(()=>[{value:"is",label:"is"}],[]),Q=l.useMemo(()=>{const g=[{key:"utm_source",label:"UTM Source",type:"select",icon:t.jsx(jt,{className:"size-4"}),placeholder:"Select source",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:S,isLoading:v,searchable:!0,selectedOptionsClassName:"hidden"},{key:"utm_medium",label:"UTM Medium",type:"select",icon:t.jsx(_t,{className:"size-4"}),placeholder:"Select medium",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:k,isLoading:I,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"},{key:"utm_campaign",label:"UTM Campaign",type:"select",icon:t.jsx(He,{className:"size-4"}),placeholder:"Select campaign",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:j,isLoading:h,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"},{key:"utm_content",label:"UTM Content",type:"select",icon:t.jsx(Ct,{className:"size-4"}),placeholder:"Select content",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:E,isLoading:M,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"},{key:"utm_term",label:"UTM Term",type:"select",icon:t.jsx(ke,{className:"size-4"}),placeholder:"Select term",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:F,isLoading:y,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"}];return[{group:"Basic",fields:[{key:"audience",label:"Audience",type:"multiselect",icon:t.jsx(Fe,{}),options:p.map(({value:C,label:T,icon:n})=>({value:C,label:T,icon:n})),defaultOperator:"is any of",hideOperatorSelect:!0,autoCloseOnSelect:!0},{key:"source",label:"Source",type:"select",icon:t.jsx(J,{className:"size-4"}),placeholder:"Select source",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:R,isLoading:D,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"},{key:"device",label:"Device",type:"select",icon:t.jsx(bt,{className:"size-4"}),placeholder:"Select device",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:U,isLoading:A,selectedOptionsClassName:"hidden"},{key:"location",label:"Location",type:"select",icon:t.jsx(xt,{className:"size-4"}),placeholder:"Select location",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:B,isLoading:w,searchable:!0,selectedOptionsClassName:"hidden"}]},{group:"UTM parameters",fields:g}]},[S,v,k,I,j,h,E,M,F,y,_,p,R,D,U,A,B,w]),P=e.length>0,Y=l.useCallback(()=>{s&&s([])},[s]);return t.jsxs("div",{className:"mt-3 flex w-full justify-between gap-2 lg:mt-0","data-testid":"stats-filter-container",children:[t.jsx(gt,{addButtonIcon:t.jsx(Ge,{}),addButtonText:P?"Add filter":"Filter",allowMultiple:!1,className:`[&>button]:order-last ${P&&"[&>button]:border-none"}`,fields:Q,filters:e,keyboardShortcut:"f",popoverAlign:m||P?"start":"end",showSearchInput:!1,onActiveFieldChange:b,onChange:s||(()=>{}),...a}),P&&t.jsxs(oe,{className:"hidden font-normal text-muted-foreground lg:flex","data-testid":"stats-filter-clear-button",variant:"ghost",onClick:Y,children:[t.jsx(St,{}),"Clear"]})]})}const G=["audience","source","device","location","utm_source","utm_medium","utm_campaign","utm_content","utm_term"],he="__empty__",ge="%2C";function Dt(e){const s=new URLSearchParams;return e.forEach(a=>{if(G.includes(a.field)&&a.values.length>0){const i=a.values.map(o=>o===""?he:String(o).replace(/,/g,ge)).join(",");s.set(a.field,i)}}),s}const X=new Map;function At(e){return X.has(e)||X.set(e,`url-${e}-${Date.now()}-${Math.random().toString(36).substring(2,11)}`),X.get(e)}function It(e){const s=[],a=new Set(G);return e.forEach((i,o)=>{if(!a.has(o))return;const r=i.split(",").map(c=>c===he?"":c.replace(new RegExp(ge,"g"),","));if(r.length>0){const c=o==="audience"?"is any of":"is";s.push({id:At(o),field:o,operator:c,values:r})}}),s}function Mt(e={}){const[s,a]=De(),{onFiltersChange:i}=e,o=l.useRef(!1),r=l.useMemo(()=>It(s),[s]);l.useEffect(()=>{!o.current&&i&&i(r)},[r,i]);const c=l.useCallback(m=>{o.current=!0;const x=typeof m=="function"?m(r):m,p=Dt(x),d=new URLSearchParams(s);G.forEach(S=>{d.delete(S)}),p.forEach((S,v)=>{d.set(v,S)}),a(d,{replace:!0}),setTimeout(()=>{o.current=!1},0)},[r,s,a]),b=l.useCallback(()=>{o.current=!0;const m=new URLSearchParams(s);G.forEach(x=>{m.delete(x)}),a(m,{replace:!0}),setTimeout(()=>{o.current=!1},0)},[s,a]);return{filters:r,setFilters:c,clearFilters:b}}const Ss=()=>{const e=Ae(),{postId:s}=Ie(),{statsConfig:a,isLoading:i,range:o,data:r,post:c,isPostLoading:b}=H(),{filters:m,setFilters:x}=Mt(),p=l.useMemo(()=>{const n=m.find(f=>f.field==="audience");return me(n?.values)},[m]);l.useEffect(()=>{!b&&c?.email_only&&e(`/posts/analytics/${s}`)},[b,c?.email_only,e,s]);const d=l.useMemo(()=>{if(!c?.published_at)return ie.ALL_TIME.value;const n=Me(c.published_at);return o>n?n:o},[c?.published_at,o]),{startDate:S,endDate:v,timezone:k}=ne(d),I=l.useCallback(()=>{const n=document.querySelector(".overflow-y-scroll");n&&n.scrollTo({top:0,behavior:"smooth"})},[]),j=l.useMemo(()=>{const n={};return m.forEach(f=>{const N=f.field,L=f.values;if(N==="audience")return;const u=L&&L.length>0&&L[0]!==null&&L[0]!==void 0,V=N==="source"&&L?.[0]==="";if(u&&(L[0]!==""||V)){const fe=String(L[0]);n[N]=fe}}),n},[m]),h=l.useCallback((n,f)=>{x(N=>N.find(u=>u.field===n)?N.map(u=>u.field===n?{...u,values:[f]}:u):[...N,ft(n,"is",[f])]),I()},[x,I]),E=l.useCallback(n=>h("location",n),[h]),M=l.useCallback(n=>h("source",n),[h]),F=l.useMemo(()=>{const n={site_uuid:a?.id||"",date_from:K(S),date_to:K(v),timezone:k,member_status:pe(p),post_uuid:"",...j};return!b&&c?.uuid?{...n,post_uuid:c.uuid}:n},[b,c,a?.id,S,v,k,p,j]),{data:y,loading:R}=$({endpoint:"api_kpis",statsConfig:a||{id:""},params:F}),{data:D,loading:U}=$({endpoint:"api_top_locations",statsConfig:a||{id:""},params:F}),{data:A,loading:B}=$({endpoint:"api_top_sources",statsConfig:a||{id:""},params:F}),w=l.useMemo(()=>D?.reduce((n,f)=>n+Number(f.visits),0)||0,[D]),_=l.useMemo(()=>A?A.reduce((n,f)=>n+Number(f.visits||0),0):0,[A]),Q=r?.url,P=r?.icon,Y=l.useMemo(()=>{const n=D?.map(u=>({location:String(u.location),visits:Number(u.visits),percentage:w>0?Number(u.visits)/w:0,isUnknown:le.includes(String(u.location))}))||[],f=n.filter(u=>!u.isUnknown),N=n.filter(u=>u.isUnknown),L=N.length>0?[{location:"Unknown",visits:N.reduce((u,V)=>u+V.visits,0),percentage:N.reduce((u,V)=>u+V.percentage,0)}]:[];return[...f,...L]},[D,w]),g=i||b||R||U||B,C=We(y),T=m.length>0;return t.jsxs(t.Fragment,{children:[t.jsxs(pt,{currentTab:"Web",children:[T&&t.jsx(ee,{children:t.jsx(se,{})}),t.jsxs(ee,{className:`${T?"!mt-0 [grid-area:subactions] lg:!mt-[25px]":"[grid-area:actions]"}`,children:[t.jsx(kt,{filters:m,onChange:x}),!T&&t.jsx(se,{})]})]}),t.jsx(ht,{children:g?t.jsx(ue,{className:"size-full",variant:"plain",children:t.jsx(de,{className:"size-full items-center justify-center",children:t.jsx(we,{})})}):y&&y.length!==0&&C.visits!=="0"?t.jsxs(t.Fragment,{children:[t.jsx(Qe,{data:y,range:d}),t.jsxs("div",{className:"flex flex-col gap-6 lg:grid lg:grid-cols-2",children:[t.jsx(yt,{data:Y,isLoading:U,onLocationClick:E}),t.jsx(Ye,{data:A,range:d,siteIcon:P,siteUrl:Q,totalVisitors:_,onSourceClick:M})]})]}):t.jsx("div",{className:"grow",children:t.jsx(Nt,{className:"h-full",description:"Try adjusting filters to see more data.",title:`No visitors ${qe(o)}`,children:t.jsx(J,{strokeWidth:1.5})})})})]})};export{Ss as default};
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <link rel="stylesheet" href="./assets/vendor-0ede59da8efb5e28fa929557f7ff7154.css">
5
5
  <link rel="stylesheet" href="./assets/ghost-3c48d37b32f4fcd7eb15cfd739905a03.css">
6
- <meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22cdnUrl%22%3A%22%22%2C%22editorUrl%22%3A%22%22%2C%22rootURL%22%3A%22%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%226.18%22%2C%22name%22%3A%22ghost-admin%22%7D%2C%22ember-simple-auth%22%3A%7B%7D%2C%22%40sentry%2Fember%22%3A%7B%22disablePerformance%22%3Atrue%2C%22sentry%22%3A%7B%7D%7D%2C%22ember-cli-mirage%22%3A%7B%22usingProxy%22%3Afalse%2C%22useDefaultPassthroughs%22%3Atrue%7D%2C%22exportApplicationGlobal%22%3Afalse%2C%22ember-load%22%3A%7B%22loadingIndicatorClass%22%3A%22ember-load-indicator%22%7D%2C%22editorFilename%22%3A%22koenig-lexical.umd.js%22%2C%22editorHash%22%3A%22e3b2a7ff32%22%2C%22adminXSettingsFilename%22%3A%22admin-x-settings.js%22%2C%22adminXSettingsHash%22%3A%22d795c01849%22%2C%22activitypubFilename%22%3A%22activitypub.js%22%2C%22activitypubHash%22%3A%224d76e4db3f%22%2C%22postsFilename%22%3A%22posts.js%22%2C%22postsHash%22%3A%22171bc5b3ae%22%2C%22statsFilename%22%3A%22stats.js%22%2C%22statsHash%22%3A%226f1c278b75%22%2C%22activitypubRemoteConfigUrl%22%3A%22%2F.ghost%2Factivitypub%2Fstable%2Fclient-config%22%7D">
6
+ <meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22cdnUrl%22%3A%22%22%2C%22editorUrl%22%3A%22%22%2C%22rootURL%22%3A%22%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%226.19%22%2C%22name%22%3A%22ghost-admin%22%7D%2C%22ember-simple-auth%22%3A%7B%7D%2C%22%40sentry%2Fember%22%3A%7B%22disablePerformance%22%3Atrue%2C%22sentry%22%3A%7B%7D%7D%2C%22ember-cli-mirage%22%3A%7B%22usingProxy%22%3Afalse%2C%22useDefaultPassthroughs%22%3Atrue%7D%2C%22exportApplicationGlobal%22%3Afalse%2C%22ember-load%22%3A%7B%22loadingIndicatorClass%22%3A%22ember-load-indicator%22%7D%2C%22editorFilename%22%3A%22koenig-lexical.umd.js%22%2C%22editorHash%22%3A%22e537e614ff%22%2C%22adminXSettingsFilename%22%3A%22admin-x-settings.js%22%2C%22adminXSettingsHash%22%3A%22832391a656%22%2C%22activitypubFilename%22%3A%22activitypub.js%22%2C%22activitypubHash%22%3A%224d76e4db3f%22%2C%22postsFilename%22%3A%22posts.js%22%2C%22postsHash%22%3A%2204f49e00e5%22%2C%22statsFilename%22%3A%22stats.js%22%2C%22statsHash%22%3A%22c1a972b40c%22%2C%22activitypubRemoteConfigUrl%22%3A%22%2F.ghost%2Factivitypub%2Fstable%2Fclient-config%22%7D">
7
7
 
8
8
  <meta charset="UTF-8" />
9
9
 
@@ -17,8 +17,8 @@
17
17
  <meta name="apple-mobile-web-app-title" content="Ghost" />
18
18
  <meta name="apple-mobile-web-app-capable" content="yes" />
19
19
  <meta name="apple-mobile-web-app-status-bar-style" content="black" />
20
- <script type="module" crossorigin src="./assets/index-B8G0f0hb.js"></script>
21
- <link rel="stylesheet" crossorigin href="./assets/index-D_sGUCda.css">
20
+ <script type="module" crossorigin src="./assets/index-DCTdAEHx.js"></script>
21
+ <link rel="stylesheet" crossorigin href="./assets/index-4ZkTY34B.css">
22
22
  </head>
23
23
  <body class="react-admin">
24
24
  <div id="ember-alerts-wormhole"></div>
@@ -36,9 +36,10 @@
36
36
  <div id="ember-basic-dropdown-wormhole"></div>
37
37
  <div id="ember-modal-wormhole"></div>
38
38
  <div id="ember-liquid-wormhole"></div>
39
+ <div id="ember-notifications-wormhole"></div>
39
40
  <script src="./assets/vendor-0e6161f8da2ad46cf62cef0a53cfb16a.js"></script>
40
41
  <script src="./assets/chunk.397.fc6a300ea45f7b5ebab7.js"></script>
41
- <script src="./assets/chunk.524.428356d01feabbc7b932.js"></script>
42
- <script src="./assets/ghost-29f8f3c80e41126ba5e3c52ad5727e8a.js"></script>
42
+ <script src="./assets/chunk.524.5c5c3f3273a86d1d9913.js"></script>
43
+ <script src="./assets/ghost-6bff5c535ef015b0ed9421ceb6c699a7.js"></script>
43
44
  </body>
44
45
  </html>