ghost 5.87.0 → 5.87.2

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 (190) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +6 -5
  3. package/components/tryghost-adapter-cache-memory-ttl-5.87.2.tgz +0 -0
  4. package/components/{tryghost-adapter-cache-redis-5.87.0.tgz → tryghost-adapter-cache-redis-5.87.2.tgz} +0 -0
  5. package/components/{tryghost-adapter-manager-5.87.0.tgz → tryghost-adapter-manager-5.87.2.tgz} +0 -0
  6. package/components/tryghost-announcement-bar-settings-5.87.2.tgz +0 -0
  7. package/components/{tryghost-api-framework-5.87.0.tgz → tryghost-api-framework-5.87.2.tgz} +0 -0
  8. package/components/{tryghost-api-version-compatibility-service-5.87.0.tgz → tryghost-api-version-compatibility-service-5.87.2.tgz} +0 -0
  9. package/components/tryghost-audience-feedback-5.87.2.tgz +0 -0
  10. package/components/tryghost-bookshelf-repository-5.87.2.tgz +0 -0
  11. package/components/{tryghost-bootstrap-socket-5.87.0.tgz → tryghost-bootstrap-socket-5.87.2.tgz} +0 -0
  12. package/components/{tryghost-collections-5.87.0.tgz → tryghost-collections-5.87.2.tgz} +0 -0
  13. package/components/tryghost-constants-5.87.2.tgz +0 -0
  14. package/components/tryghost-custom-theme-settings-service-5.87.2.tgz +0 -0
  15. package/components/{tryghost-data-generator-5.87.0.tgz → tryghost-data-generator-5.87.2.tgz} +0 -0
  16. package/components/tryghost-domain-events-5.87.2.tgz +0 -0
  17. package/components/{tryghost-donations-5.87.0.tgz → tryghost-donations-5.87.2.tgz} +0 -0
  18. package/components/tryghost-dynamic-routing-events-5.87.2.tgz +0 -0
  19. package/components/tryghost-email-addresses-5.87.2.tgz +0 -0
  20. package/components/{tryghost-email-analytics-provider-mailgun-5.87.0.tgz → tryghost-email-analytics-provider-mailgun-5.87.2.tgz} +0 -0
  21. package/components/{tryghost-email-analytics-service-5.87.0.tgz → tryghost-email-analytics-service-5.87.2.tgz} +0 -0
  22. package/components/tryghost-email-content-generator-5.87.2.tgz +0 -0
  23. package/components/{tryghost-email-events-5.87.0.tgz → tryghost-email-events-5.87.2.tgz} +0 -0
  24. package/components/tryghost-email-service-5.87.2.tgz +0 -0
  25. package/components/tryghost-email-suppression-list-5.87.2.tgz +0 -0
  26. package/components/tryghost-express-dynamic-redirects-5.87.2.tgz +0 -0
  27. package/components/tryghost-external-media-inliner-5.87.2.tgz +0 -0
  28. package/components/tryghost-extract-api-key-5.87.2.tgz +0 -0
  29. package/components/tryghost-ghost-5.87.2.tgz +0 -0
  30. package/components/{tryghost-html-to-plaintext-5.87.0.tgz → tryghost-html-to-plaintext-5.87.2.tgz} +0 -0
  31. package/components/tryghost-i18n-5.87.2.tgz +0 -0
  32. package/components/tryghost-importer-handler-content-files-5.87.2.tgz +0 -0
  33. package/components/{tryghost-importer-revue-5.87.0.tgz → tryghost-importer-revue-5.87.2.tgz} +0 -0
  34. package/components/tryghost-in-memory-repository-5.87.2.tgz +0 -0
  35. package/components/{tryghost-job-manager-5.87.0.tgz → tryghost-job-manager-5.87.2.tgz} +0 -0
  36. package/components/tryghost-link-redirects-5.87.2.tgz +0 -0
  37. package/components/{tryghost-link-replacer-5.87.0.tgz → tryghost-link-replacer-5.87.2.tgz} +0 -0
  38. package/components/tryghost-link-tracking-5.87.2.tgz +0 -0
  39. package/components/tryghost-magic-link-5.87.2.tgz +0 -0
  40. package/components/{tryghost-mail-events-5.87.0.tgz → tryghost-mail-events-5.87.2.tgz} +0 -0
  41. package/components/{tryghost-mailgun-client-5.87.0.tgz → tryghost-mailgun-client-5.87.2.tgz} +0 -0
  42. package/components/{tryghost-member-attribution-5.87.0.tgz → tryghost-member-attribution-5.87.2.tgz} +0 -0
  43. package/components/tryghost-member-events-5.87.2.tgz +0 -0
  44. package/components/tryghost-members-api-5.87.2.tgz +0 -0
  45. package/components/tryghost-members-csv-5.87.2.tgz +0 -0
  46. package/components/tryghost-members-events-service-5.87.2.tgz +0 -0
  47. package/components/{tryghost-members-importer-5.87.0.tgz → tryghost-members-importer-5.87.2.tgz} +0 -0
  48. package/components/{tryghost-members-offers-5.87.0.tgz → tryghost-members-offers-5.87.2.tgz} +0 -0
  49. package/components/tryghost-members-payments-5.87.2.tgz +0 -0
  50. package/components/tryghost-members-ssr-5.87.2.tgz +0 -0
  51. package/components/tryghost-members-stripe-service-5.87.2.tgz +0 -0
  52. package/components/{tryghost-mentions-email-report-5.87.0.tgz → tryghost-mentions-email-report-5.87.2.tgz} +0 -0
  53. package/components/{tryghost-milestones-5.87.0.tgz → tryghost-milestones-5.87.2.tgz} +0 -0
  54. package/components/{tryghost-minifier-5.87.0.tgz → tryghost-minifier-5.87.2.tgz} +0 -0
  55. package/components/tryghost-model-to-domain-event-interceptor-5.87.2.tgz +0 -0
  56. package/components/tryghost-mw-api-version-mismatch-5.87.2.tgz +0 -0
  57. package/components/tryghost-mw-cache-control-5.87.2.tgz +0 -0
  58. package/components/tryghost-mw-error-handler-5.87.2.tgz +0 -0
  59. package/components/{tryghost-mw-session-from-token-5.87.0.tgz → tryghost-mw-session-from-token-5.87.2.tgz} +0 -0
  60. package/components/tryghost-mw-update-user-last-seen-5.87.2.tgz +0 -0
  61. package/components/{tryghost-mw-version-match-5.87.0.tgz → tryghost-mw-version-match-5.87.2.tgz} +0 -0
  62. package/components/tryghost-mw-vhost-5.87.2.tgz +0 -0
  63. package/components/tryghost-nql-filter-expansions-5.87.2.tgz +0 -0
  64. package/components/tryghost-oembed-service-5.87.2.tgz +0 -0
  65. package/components/{tryghost-package-json-5.87.0.tgz → tryghost-package-json-5.87.2.tgz} +0 -0
  66. package/components/tryghost-post-events-5.87.2.tgz +0 -0
  67. package/components/tryghost-post-revisions-5.87.2.tgz +0 -0
  68. package/components/tryghost-posts-service-5.87.2.tgz +0 -0
  69. package/components/tryghost-recommendations-5.87.2.tgz +0 -0
  70. package/components/tryghost-referrers-5.87.2.tgz +0 -0
  71. package/components/{tryghost-security-5.87.0.tgz → tryghost-security-5.87.2.tgz} +0 -0
  72. package/components/{tryghost-session-service-5.87.0.tgz → tryghost-session-service-5.87.2.tgz} +0 -0
  73. package/components/tryghost-settings-path-manager-5.87.2.tgz +0 -0
  74. package/components/tryghost-slack-notifications-5.87.2.tgz +0 -0
  75. package/components/tryghost-staff-service-5.87.2.tgz +0 -0
  76. package/components/tryghost-stats-service-5.87.2.tgz +0 -0
  77. package/components/{tryghost-tiers-5.87.0.tgz → tryghost-tiers-5.87.2.tgz} +0 -0
  78. package/components/{tryghost-update-check-service-5.87.0.tgz → tryghost-update-check-service-5.87.2.tgz} +0 -0
  79. package/components/tryghost-verification-trigger-5.87.2.tgz +0 -0
  80. package/components/{tryghost-version-notifications-data-service-5.87.0.tgz → tryghost-version-notifications-data-service-5.87.2.tgz} +0 -0
  81. package/components/{tryghost-webmentions-5.87.0.tgz → tryghost-webmentions-5.87.2.tgz} +0 -0
  82. package/content/themes/casper/assets/built/screen.css +1 -1
  83. package/content/themes/casper/assets/built/screen.css.map +1 -1
  84. package/content/themes/casper/assets/css/screen.css +12 -0
  85. package/content/themes/casper/package.json +1 -1
  86. package/content/themes/casper/post.hbs +1 -1
  87. package/content/themes/source/assets/built/screen.css +1 -1
  88. package/content/themes/source/assets/built/screen.css.map +1 -1
  89. package/content/themes/source/assets/css/screen.css +12 -45
  90. package/content/themes/source/default.hbs +3 -0
  91. package/content/themes/source/package.json +1 -1
  92. package/content/themes/source/partials/email-subscription.hbs +1 -1
  93. package/content/themes/source/partials/feature-image.hbs +8 -9
  94. package/content/themes/source/partials/typography/fonts.hbs +15 -0
  95. package/content/themes/source/partials/typography/mono.hbs +21 -0
  96. package/content/themes/source/partials/typography/sans.hbs +11 -0
  97. package/content/themes/source/partials/typography/serif.hbs +21 -0
  98. package/content/themes/source/post.hbs +2 -2
  99. package/core/boot.js +0 -4
  100. package/core/built/admin/assets/admin-x-activitypub/admin-x-activitypub.js +3 -3
  101. package/core/built/admin/assets/admin-x-activitypub/index-b4a353e7.mjs +18739 -0
  102. package/core/built/admin/assets/admin-x-activitypub/modals-f64a65f9.mjs +514 -0
  103. package/core/built/admin/assets/admin-x-demo/admin-x-demo.js +2 -2
  104. package/core/built/admin/assets/admin-x-demo/index-5e68f89b.mjs +12341 -0
  105. package/core/built/admin/assets/admin-x-demo/{modals-0790023d.mjs → modals-f789a6c4.mjs} +109 -108
  106. package/core/built/admin/assets/admin-x-settings/{CodeEditorView-18434b62.mjs → CodeEditorView-e762149f.mjs} +2 -2
  107. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +2 -2
  108. package/core/built/admin/assets/admin-x-settings/{index-26c4c463.mjs → index-b5d002c9.mjs} +2 -2
  109. package/core/built/admin/assets/admin-x-settings/{index-c8f7240c.mjs → index-e85d0dcf.mjs} +14001 -10336
  110. package/core/built/admin/assets/admin-x-settings/{modals-bef82301.mjs → modals-ccd29d36.mjs} +10876 -14498
  111. package/core/built/admin/assets/{chunk.216.1641331b33471771559d.js → chunk.42.0879e40a4de3db25b177.js} +6069 -6334
  112. package/core/built/admin/assets/{chunk.216.1641331b33471771559d.js.LICENSE.txt → chunk.42.0879e40a4de3db25b177.js.LICENSE.txt} +1 -44
  113. package/core/built/admin/assets/{chunk.524.d2e0fcb8c19f3c1a3b30.js → chunk.524.a026cb2ef64affe16853.js} +5 -5
  114. package/core/built/admin/assets/{chunk.582.21faf5b79ae545480852.js → chunk.582.87261633b6177d1a30a5.js} +11 -11
  115. package/core/built/admin/assets/{ghost-7cd5e5705abfd8aa74248fc44aec54b5.js → ghost-07422c98448d7259d957d65c6737a274.js} +451 -468
  116. package/core/built/admin/assets/ghost-cb98187b163a0d8b42d752ab890e039a.css +1 -0
  117. package/core/built/admin/assets/ghost-dark-0d78b0a11f5c2604992de20c1bfe396f.css +1 -0
  118. package/core/built/admin/assets/koenig-lexical/index.css +1 -1
  119. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +6427 -6384
  120. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +111 -110
  121. package/core/built/admin/assets/{vendor-104fd33edb243021ce2f1a3797d513ef.js → vendor-051d43ec47258b77ffd2fcc21a6d8c50.js} +564 -987
  122. package/core/built/admin/index.html +6 -6
  123. package/core/frontend/services/routing/controllers/unsubscribe.js +1 -2
  124. package/core/frontend/src/cards/css/bookmark.css +1 -1
  125. package/core/frontend/src/member-attribution/member-attribution.js +15 -1
  126. package/core/server/api/endpoints/utils/serializers/output/authentication.js +1 -1
  127. package/core/server/data/importer/importers/data/ProductsImporter.js +18 -0
  128. package/core/server/lib/image/ImageSize.js +15 -3
  129. package/core/server/lib/image/ImageUtils.js +2 -1
  130. package/core/server/services/custom-redirects/CustomRedirectsAPI.js +3 -4
  131. package/core/server/services/custom-redirects/validation.js +21 -3
  132. package/core/server/services/recommendations/RecommendationServiceWrapper.js +6 -11
  133. package/core/server/services/webhooks/WebhookTrigger.js +2 -1
  134. package/core/shared/labs.js +0 -7
  135. package/package.json +159 -161
  136. package/yarn.lock +1181 -935
  137. package/components/tryghost-adapter-cache-memory-ttl-5.87.0.tgz +0 -0
  138. package/components/tryghost-announcement-bar-settings-5.87.0.tgz +0 -0
  139. package/components/tryghost-audience-feedback-5.87.0.tgz +0 -0
  140. package/components/tryghost-bookshelf-repository-5.87.0.tgz +0 -0
  141. package/components/tryghost-constants-5.87.0.tgz +0 -0
  142. package/components/tryghost-custom-theme-settings-service-5.87.0.tgz +0 -0
  143. package/components/tryghost-domain-events-5.87.0.tgz +0 -0
  144. package/components/tryghost-dynamic-routing-events-5.87.0.tgz +0 -0
  145. package/components/tryghost-email-addresses-5.87.0.tgz +0 -0
  146. package/components/tryghost-email-content-generator-5.87.0.tgz +0 -0
  147. package/components/tryghost-email-service-5.87.0.tgz +0 -0
  148. package/components/tryghost-email-suppression-list-5.87.0.tgz +0 -0
  149. package/components/tryghost-express-dynamic-redirects-5.87.0.tgz +0 -0
  150. package/components/tryghost-external-media-inliner-5.87.0.tgz +0 -0
  151. package/components/tryghost-extract-api-key-5.87.0.tgz +0 -0
  152. package/components/tryghost-ghost-5.87.0.tgz +0 -0
  153. package/components/tryghost-i18n-5.87.0.tgz +0 -0
  154. package/components/tryghost-importer-handler-content-files-5.87.0.tgz +0 -0
  155. package/components/tryghost-in-memory-repository-5.87.0.tgz +0 -0
  156. package/components/tryghost-link-redirects-5.87.0.tgz +0 -0
  157. package/components/tryghost-link-tracking-5.87.0.tgz +0 -0
  158. package/components/tryghost-magic-link-5.87.0.tgz +0 -0
  159. package/components/tryghost-member-events-5.87.0.tgz +0 -0
  160. package/components/tryghost-members-api-5.87.0.tgz +0 -0
  161. package/components/tryghost-members-csv-5.87.0.tgz +0 -0
  162. package/components/tryghost-members-events-service-5.87.0.tgz +0 -0
  163. package/components/tryghost-members-payments-5.87.0.tgz +0 -0
  164. package/components/tryghost-members-ssr-5.87.0.tgz +0 -0
  165. package/components/tryghost-members-stripe-service-5.87.0.tgz +0 -0
  166. package/components/tryghost-model-to-domain-event-interceptor-5.87.0.tgz +0 -0
  167. package/components/tryghost-mw-api-version-mismatch-5.87.0.tgz +0 -0
  168. package/components/tryghost-mw-cache-control-5.87.0.tgz +0 -0
  169. package/components/tryghost-mw-error-handler-5.87.0.tgz +0 -0
  170. package/components/tryghost-mw-update-user-last-seen-5.87.0.tgz +0 -0
  171. package/components/tryghost-mw-vhost-5.87.0.tgz +0 -0
  172. package/components/tryghost-nql-filter-expansions-5.87.0.tgz +0 -0
  173. package/components/tryghost-oembed-service-5.87.0.tgz +0 -0
  174. package/components/tryghost-post-events-5.87.0.tgz +0 -0
  175. package/components/tryghost-post-revisions-5.87.0.tgz +0 -0
  176. package/components/tryghost-posts-service-5.87.0.tgz +0 -0
  177. package/components/tryghost-recommendations-5.87.0.tgz +0 -0
  178. package/components/tryghost-referrers-5.87.0.tgz +0 -0
  179. package/components/tryghost-settings-path-manager-5.87.0.tgz +0 -0
  180. package/components/tryghost-slack-notifications-5.87.0.tgz +0 -0
  181. package/components/tryghost-staff-service-5.87.0.tgz +0 -0
  182. package/components/tryghost-stats-service-5.87.0.tgz +0 -0
  183. package/components/tryghost-verification-trigger-5.87.0.tgz +0 -0
  184. package/core/built/admin/assets/admin-x-activitypub/index-adf6f50d.mjs +0 -15011
  185. package/core/built/admin/assets/admin-x-activitypub/modals-c796922a.mjs +0 -511
  186. package/core/built/admin/assets/admin-x-demo/index-ea257d67.mjs +0 -8664
  187. package/core/built/admin/assets/ghost-ce50e3eb300a8e297d8b1f8b372c25d6.css +0 -1
  188. package/core/built/admin/assets/ghost-dark-4b969016a590f3112196d4ba3da7843a.css +0 -1
  189. package/core/server/services/websockets/index.js +0 -1
  190. package/core/server/services/websockets/service.js +0 -38
@@ -1,511 +0,0 @@
1
- import { u as ce, a as ie, c as s, j as e, H as P, b as de, B as D, d as ee, e as me, f as U, g as K, N as B, h as X, i as se, k as ue, s as xe, l as pe, L as te, m as oe, n as G, A as ae, o as be, p as fe } from "./index-adf6f50d.mjs";
2
- const ge = ({
3
- type: o = "text",
4
- inputRef: l,
5
- title: t,
6
- hideTitle: r,
7
- value: a,
8
- error: u,
9
- placeholder: x,
10
- rightPlaceholder: c,
11
- hint: d,
12
- onChange: p,
13
- onFocus: w,
14
- onBlur: f,
15
- clearBg: j = !1,
16
- className: g = "",
17
- maxLength: _,
18
- containerClassName: v = "",
19
- hintClassName: h = "",
20
- unstyled: L = !1,
21
- disabled: k,
22
- ...V
23
- }) => {
24
- const H = ce(), { setFocusState: T } = ie(), I = (E) => {
25
- w == null || w(E), T(!0);
26
- }, O = (E) => {
27
- f == null || f(E), T(!1);
28
- }, Q = s(
29
- "relative order-2 flex w-full items-center",
30
- t && !r && "mt-1.5"
31
- ), F = !L && s(
32
- "absolute inset-0 rounded-lg border text-grey-300 transition-colors peer-hover:bg-grey-100 peer-focus:border-green peer-focus:bg-white peer-focus:shadow-[0_0_0_2px_rgba(48,207,67,.25)] dark:peer-hover:bg-grey-925 dark:peer-focus:bg-grey-950",
33
- u ? "border-red bg-white dark:bg-grey-925" : "border-transparent bg-grey-150 dark:bg-grey-900",
34
- k && "bg-grey-50 peer-hover:bg-grey-50 dark:bg-grey-950 dark:peer-hover:bg-grey-950"
35
- ), q = !L && s(
36
- "peer z-[1] order-2 h-9 w-full bg-transparent px-3 py-1.5 text-sm placeholder:text-grey-500 dark:placeholder:text-grey-700 md:h-[38px] md:py-2 md:text-md",
37
- k ? "cursor-not-allowed text-grey-600 opacity-60 dark:text-grey-800" : "dark:text-white",
38
- c ? "w-0 grow rounded-l-lg" : "rounded-lg",
39
- g
40
- ), C = !L && s(
41
- "z-[1] order-3 rounded-r-lg",
42
- c ? typeof c == "string" ? "flex h-8 items-center py-1 pr-3 text-right text-sm text-grey-500 md:h-9 md:text-base" : "h-9 pr-1" : "pr-2"
43
- );
44
- let z = /* @__PURE__ */ e.jsx(e.Fragment, {});
45
- const A = /* @__PURE__ */ e.jsx(
46
- "input",
47
- {
48
- ref: l,
49
- className: q || g,
50
- disabled: k,
51
- id: H,
52
- maxLength: _,
53
- placeholder: x,
54
- type: o,
55
- value: a,
56
- onBlur: O,
57
- onChange: p,
58
- onFocus: I,
59
- ...V
60
- }
61
- );
62
- return z = /* @__PURE__ */ e.jsxs("div", { className: Q, children: [
63
- A,
64
- !L && !j && /* @__PURE__ */ e.jsx("div", { className: F || "" }),
65
- c && /* @__PURE__ */ e.jsx("span", { className: C || "", children: c })
66
- ] }), h = s(
67
- "order-3",
68
- h
69
- ), v = s(
70
- "flex flex-col",
71
- v
72
- ), t || d ? /* @__PURE__ */ e.jsxs("div", { className: v, children: [
73
- z,
74
- t && /* @__PURE__ */ e.jsx(P, { className: r ? "sr-only" : "order-1", htmlFor: H, useLabelTag: !0, children: t }),
75
- d && /* @__PURE__ */ e.jsx(de, { className: h, color: u ? "red" : "default", children: d })
76
- ] }) : z;
77
- }, he = ({ size: o = "md", buttons: l, link: t, linkWithPadding: r, clearBg: a = !0, outlineOnMobile: u, className: x }) => {
78
- let c = s(
79
- "flex items-center justify-start rounded",
80
- t ? "gap-4" : "gap-2",
81
- x
82
- );
83
- return t && !a && (c = s(
84
- "transition-all hover:bg-grey-200 dark:hover:bg-grey-900",
85
- o === "sm" ? "h-7 px-3" : "h-[34px] px-4",
86
- u && "border border-grey-300 hover:border-transparent md:border-transparent",
87
- c
88
- )), /* @__PURE__ */ e.jsx("div", { className: c, children: l.map(({ key: d, ...p }) => /* @__PURE__ */ e.jsx(D, { link: t, linkWithPadding: r, size: o, ...p }, d)) });
89
- }, ye = ({
90
- shiftY: o,
91
- footerBgColorClass: l = "bg-white dark:bg-black",
92
- contentBgColorClass: t = "bg-white dark:bg-black",
93
- height: r = 96,
94
- children: a
95
- }) => {
96
- const u = s(
97
- "w-100 sticky bottom-[-24px] z-[297] m-0 box-border p-0"
98
- ), x = o ? `calc(${o} - 24px)` : "-24px", c = `${r + 24}px`, d = s(
99
- "sticky z-[298] block h-[24px]",
100
- t
101
- ), p = "0", w = s(
102
- "sticky z-[299] mb-[-24px] flex items-center justify-between",
103
- "h-[96px]",
104
- l
105
- ), f = "0", j = `${r}px`, g = "sticky mx-2 block h-[24px] rounded-full shadow-[0_0_0_1px_rgba(0,0,0,.025),0_-8px_16px_-3px_rgba(0,0,0,.08)]", _ = o ? `calc(${o} + ${r - 24}px)` : `${r - 24}px`;
106
- return /* @__PURE__ */ e.jsxs(
107
- "div",
108
- {
109
- className: u,
110
- style: {
111
- bottom: x,
112
- height: c
113
- },
114
- children: [
115
- /* @__PURE__ */ e.jsx(
116
- "div",
117
- {
118
- className: d,
119
- style: {
120
- bottom: p
121
- }
122
- }
123
- ),
124
- /* @__PURE__ */ e.jsx(
125
- "div",
126
- {
127
- className: w,
128
- style: {
129
- bottom: f,
130
- height: j
131
- },
132
- children: a
133
- }
134
- ),
135
- /* @__PURE__ */ e.jsx(
136
- "div",
137
- {
138
- className: g,
139
- style: {
140
- bottom: _
141
- }
142
- }
143
- )
144
- ]
145
- }
146
- );
147
- };
148
- function Y(o, l, t = {}) {
149
- o ? B.show(ke, {
150
- title: "Are you sure you want to leave this page?",
151
- prompt: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
152
- /* @__PURE__ */ e.jsx("p", { children: "Hey there! It looks like you didn't save the changes you made." }),
153
- /* @__PURE__ */ e.jsx("p", { children: "Save before you go!" })
154
- ] }),
155
- okLabel: "Leave",
156
- cancelLabel: "Stay",
157
- okColor: "red",
158
- onOk: (r) => {
159
- l(), r == null || r.remove();
160
- },
161
- ...t
162
- }) : l();
163
- }
164
- const we = "bg-[rgba(98,109,121,0.2)] backdrop-blur-[3px]", R = ({
165
- size: o = "md",
166
- width: l,
167
- height: t,
168
- testId: r,
169
- title: a,
170
- okLabel: u = "OK",
171
- okLoading: x = !1,
172
- cancelLabel: c = "Cancel",
173
- footer: d,
174
- header: p,
175
- leftButtonProps: w,
176
- buttonsDisabled: f,
177
- padding: j = !0,
178
- onOk: g,
179
- okColor: _ = "black",
180
- onCancel: v,
181
- topRightContent: h,
182
- hideXOnMobile: L = !1,
183
- afterClose: k,
184
- children: V,
185
- backDrop: H = !0,
186
- backDropClick: T = !0,
187
- stickyFooter: I = !1,
188
- stickyHeader: O = !1,
189
- scrolling: Q = !0,
190
- dirty: F = !1,
191
- animate: q = !0,
192
- formSheet: C = !1,
193
- enableCMDS: z = !0
194
- }) => {
195
- const A = ee(), { setGlobalDirtyState: E } = me(), [Z, le] = U(!1);
196
- K(() => {
197
- E(F);
198
- }, [F, E]), K(() => {
199
- const y = (N) => {
200
- N.key === "Escape" && (document.activeElement && document.activeElement instanceof HTMLElement && document.activeElement.blur(), setTimeout(() => {
201
- v ? v() : Y(F, () => {
202
- A.remove(), k == null || k();
203
- });
204
- }), N.stopPropagation());
205
- };
206
- return document.addEventListener("keydown", y), () => {
207
- document.removeEventListener("keydown", y);
208
- };
209
- }, [A, F, k, v]), K(() => {
210
- const y = setTimeout(() => {
211
- le(!0);
212
- }, 250);
213
- return () => clearTimeout(y);
214
- }, []), K(() => {
215
- if (g) {
216
- const y = (N) => {
217
- (N.metaKey || N.ctrlKey) && N.key === "s" && (N.preventDefault(), g());
218
- };
219
- if (z)
220
- return window.addEventListener("keydown", y), () => {
221
- window.removeEventListener("keydown", y);
222
- };
223
- }
224
- });
225
- const W = [];
226
- let $;
227
- const J = () => {
228
- Y(F, () => {
229
- A.remove(), k == null || k();
230
- });
231
- };
232
- d || (c && W.push({
233
- key: "cancel-modal",
234
- label: c,
235
- color: "outline",
236
- onClick: v || (() => {
237
- J();
238
- }),
239
- disabled: f
240
- }), u && W.push({
241
- key: "ok-modal",
242
- label: u,
243
- color: _,
244
- className: "min-w-[80px]",
245
- onClick: g,
246
- disabled: f,
247
- loading: x
248
- }));
249
- let i = s(
250
- "relative z-50 mx-auto flex max-h-[100%] w-full flex-col justify-between overflow-x-hidden bg-white dark:bg-black",
251
- o !== "bleed" && "rounded",
252
- C ? "shadow-md" : "shadow-xl",
253
- q && !C && !Z && "animate-modal-in",
254
- C && !Z && "animate-modal-in-reverse",
255
- Q ? "overflow-y-auto" : "overflow-y-hidden"
256
- ), m = s(
257
- "fixed inset-0 z-[1000] h-[100vh] w-[100vw]"
258
- ), b = "", n = s(
259
- !h || h === "close" ? "" : "flex items-center justify-between gap-5"
260
- );
261
- switch (O && (n = s(
262
- n,
263
- "sticky top-0 z-[200] -mb-4 bg-white !pb-4 dark:bg-black"
264
- )), o) {
265
- case "sm":
266
- i = s(
267
- i,
268
- "max-w-[480px]"
269
- ), m = s(
270
- m,
271
- "p-4 md:p-[8vmin]"
272
- ), b = "p-8", n = s(
273
- n,
274
- "-inset-x-8"
275
- );
276
- break;
277
- case "md":
278
- i = s(
279
- i,
280
- "max-w-[720px]"
281
- ), m = s(
282
- m,
283
- "p-4 md:p-[8vmin]"
284
- ), b = "p-8", n = s(
285
- n,
286
- "-inset-x-8"
287
- );
288
- break;
289
- case "lg":
290
- i = s(
291
- i,
292
- "max-w-[1020px]"
293
- ), m = s(
294
- m,
295
- "p-4 md:p-[4vmin]"
296
- ), b = "p-7", n = s(
297
- n,
298
- "-inset-x-8"
299
- );
300
- break;
301
- case "xl":
302
- i = s(
303
- i,
304
- "max-w-[1240px]0"
305
- ), m = s(
306
- m,
307
- "p-4 md:p-[3vmin]"
308
- ), b = "p-10", n = s(
309
- n,
310
- "-inset-x-10 -top-10"
311
- );
312
- break;
313
- case "full":
314
- i = s(
315
- i,
316
- "h-full"
317
- ), m = s(
318
- m,
319
- "p-4 md:p-[3vmin]"
320
- ), b = "p-10", n = s(
321
- n,
322
- "-inset-x-10"
323
- );
324
- break;
325
- case "bleed":
326
- i = s(
327
- i,
328
- "h-full"
329
- ), b = "p-10", n = s(
330
- n,
331
- "-inset-x-10"
332
- );
333
- break;
334
- default:
335
- m = s(
336
- m,
337
- "p-4 md:p-[8vmin]"
338
- ), b = "p-8", n = s(
339
- n,
340
- "-inset-x-8"
341
- );
342
- break;
343
- }
344
- j || (b = "p-0"), i = s(
345
- i
346
- ), n = s(
347
- n,
348
- b,
349
- "pb-0"
350
- ), $ = s(
351
- b,
352
- "py-0"
353
- ), m = s(
354
- m,
355
- "max-[800px]:!pb-20"
356
- );
357
- const re = s(
358
- `${b} ${I ? "py-6" : ""}`,
359
- "flex w-full items-center justify-between"
360
- );
361
- $ = s(
362
- $,
363
- (o === "full" || o === "bleed" || t === "full" || typeof t == "number") && "grow"
364
- );
365
- const ne = (y) => {
366
- y.target === y.currentTarget && T && J();
367
- }, S = {};
368
- typeof l == "number" ? (S.width = "100%", S.maxWidth = l + "px") : l === "full" && (i = s(
369
- i,
370
- "w-full"
371
- )), typeof t == "number" ? (S.height = "100%", S.maxHeight = t + "px") : t === "full" && (i = s(
372
- i,
373
- "h-full"
374
- ));
375
- let M;
376
- return d ? M = d : d === !1 ? $ += " pb-0 " : M = /* @__PURE__ */ e.jsxs("div", { className: re, children: [
377
- /* @__PURE__ */ e.jsx("div", { children: w && /* @__PURE__ */ e.jsx(D, { ...w }) }),
378
- /* @__PURE__ */ e.jsx("div", { className: "flex gap-3", children: /* @__PURE__ */ e.jsx(he, { buttons: W }) })
379
- ] }), M = I ? /* @__PURE__ */ e.jsx(ye, { height: 84, children: M }) : /* @__PURE__ */ e.jsx(e.Fragment, { children: M }), /* @__PURE__ */ e.jsxs("div", { className: m, id: "modal-backdrop", onMouseDown: ne, children: [
380
- /* @__PURE__ */ e.jsx("div", { className: s(
381
- "pointer-events-none fixed inset-0 z-0",
382
- H && !C && we,
383
- C && "bg-[rgba(98,109,121,0.08)]"
384
- ) }),
385
- /* @__PURE__ */ e.jsxs("section", { className: i, "data-testid": r, style: S, children: [
386
- p === !1 ? "" : !h || h === "close" ? /* @__PURE__ */ e.jsxs("header", { className: n, children: [
387
- a && /* @__PURE__ */ e.jsx(P, { level: 3, children: a }),
388
- /* @__PURE__ */ e.jsx("div", { className: `${h !== "close" && "md:!invisible md:!hidden"} ${L && "hidden"} absolute right-6 top-6`, children: /* @__PURE__ */ e.jsx(D, { className: "-m-2 cursor-pointer p-2 opacity-50 hover:opacity-100", icon: "close", iconColorClass: "text-black dark:text-white", size: "sm", testId: "close-modal", unstyled: !0, onClick: J }) })
389
- ] }) : /* @__PURE__ */ e.jsxs("header", { className: n, children: [
390
- a && /* @__PURE__ */ e.jsx(P, { level: 3, children: a }),
391
- h
392
- ] }),
393
- /* @__PURE__ */ e.jsx("div", { className: $, children: V }),
394
- M
395
- ] })
396
- ] });
397
- }, ve = ({
398
- title: o = "Are you sure?",
399
- prompt: l,
400
- cancelLabel: t = "Cancel",
401
- okLabel: r = "OK",
402
- okRunningLabel: a = "...",
403
- okColor: u = "black",
404
- onCancel: x,
405
- onOk: c,
406
- customFooter: d,
407
- formSheet: p = !0
408
- }) => {
409
- const w = ee(), [f, j] = U("");
410
- return /* @__PURE__ */ e.jsx(
411
- R,
412
- {
413
- backDropClick: !1,
414
- buttonsDisabled: f === "running",
415
- cancelLabel: t,
416
- footer: d,
417
- formSheet: p,
418
- okColor: u,
419
- okLabel: f === "running" ? a : r,
420
- testId: "confirmation-modal",
421
- title: o,
422
- width: 540,
423
- onCancel: x,
424
- onOk: async () => {
425
- j("running");
426
- try {
427
- await (c == null ? void 0 : c(w));
428
- } catch (g) {
429
- console.error("Unhandled Promise Rejection. Make sure you catch errors in your onOk handler.", g);
430
- }
431
- j("");
432
- },
433
- children: /* @__PURE__ */ e.jsx("div", { className: "py-4 leading-9", children: l })
434
- }
435
- );
436
- }, ke = B.create(ve), je = B.create(() => {
437
- const { updateRoute: o } = X(), l = B.useModal(), t = se(), r = ue(), [a, u] = U(""), [x, c] = U(null), d = async () => {
438
- try {
439
- await t.mutateAsync({ username: a }), xe({
440
- message: "Site followed",
441
- type: "success"
442
- }), l.remove(), await r.refetchQueries({ queryKey: ["FollowingResponseData"], type: "active" }), o("");
443
- } catch {
444
- c(x);
445
- }
446
- };
447
- return /* @__PURE__ */ e.jsx(
448
- R,
449
- {
450
- afterClose: () => {
451
- t.reset(), o("");
452
- },
453
- cancelLabel: "Cancel",
454
- okLabel: "Follow",
455
- size: "sm",
456
- title: "Follow a Ghost site",
457
- onOk: d,
458
- children: /* @__PURE__ */ e.jsx("div", { className: "mt-3 flex flex-col gap-4", children: /* @__PURE__ */ e.jsx(
459
- ge,
460
- {
461
- autoFocus: !0,
462
- error: !!x,
463
- hint: x,
464
- placeholder: "@username@hostname",
465
- title: "Profile name",
466
- value: a,
467
- "data-test-new-follower": !0,
468
- onChange: (p) => u(p.target.value)
469
- }
470
- ) })
471
- }
472
- );
473
- }), Fe = ({}) => {
474
- const { updateRoute: o } = X(), l = se(), { data: { items: t = [] } = {} } = pe("inbox"), r = Array.isArray(t) ? t : [t];
475
- return /* @__PURE__ */ e.jsx(
476
- R,
477
- {
478
- afterClose: () => {
479
- l.reset(), o("");
480
- },
481
- cancelLabel: "",
482
- footer: !1,
483
- okLabel: "",
484
- size: "md",
485
- title: "Followers",
486
- topRightContent: "close",
487
- children: /* @__PURE__ */ e.jsx("div", { className: "mt-3 flex flex-col gap-4 pb-12", children: /* @__PURE__ */ e.jsx(te, { children: r.map((a) => /* @__PURE__ */ e.jsx(oe, { action: /* @__PURE__ */ e.jsx(D, { color: "grey", label: "Follow back", link: !0, onClick: () => l.mutate({ username: G(a) }) }), avatar: /* @__PURE__ */ e.jsx(ae, { image: a.icon, size: "sm" }), detail: G(a), id: "list-item", title: a.name })) }) })
488
- }
489
- );
490
- }, Ce = B.create(Fe), Ne = ({}) => {
491
- const { updateRoute: o } = X(), l = be(), { data: { items: t = [] } = {} } = fe("inbox"), r = Array.isArray(t) ? t : [t];
492
- return /* @__PURE__ */ e.jsx(
493
- R,
494
- {
495
- afterClose: () => {
496
- l.reset(), o("");
497
- },
498
- cancelLabel: "",
499
- footer: !1,
500
- okLabel: "",
501
- size: "md",
502
- title: "Following",
503
- topRightContent: "close",
504
- children: /* @__PURE__ */ e.jsx("div", { className: "mt-3 flex flex-col gap-4 pb-12", children: /* @__PURE__ */ e.jsx(te, { children: r.map((a) => /* @__PURE__ */ e.jsx(oe, { action: /* @__PURE__ */ e.jsx(D, { color: "grey", label: "Unfollow", link: !0, onClick: () => l.mutate({ username: G(a) }) }), avatar: /* @__PURE__ */ e.jsx(ae, { image: a.icon, size: "sm" }), detail: G(a), id: "list-item", title: a.name })) }) })
505
- }
506
- );
507
- }, Le = B.create(Ne), Me = { FollowSite: je, ViewFollowing: Le, ViewFollowers: Ce };
508
- export {
509
- Me as default
510
- };
511
- //# sourceMappingURL=modals-c796922a.mjs.map