@ably/ui 14.0.5 → 14.0.6

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 (279) hide show
  1. package/core/Flash.js +1 -1
  2. package/package.json +7 -9
  3. package/src/core/Accordion/Accordion.stories.tsx +0 -39
  4. package/src/core/Accordion.tsx +0 -149
  5. package/src/core/Code/Code.stories.tsx +0 -71
  6. package/src/core/Code/component.css +0 -1
  7. package/src/core/Code/component.js +0 -27
  8. package/src/core/Code.tsx +0 -44
  9. package/src/core/ConnectStateWrapper.tsx +0 -43
  10. package/src/core/ContactFooter/ContactFooter.stories.tsx +0 -11
  11. package/src/core/ContactFooter/component.css +0 -11
  12. package/src/core/ContactFooter/component.js +0 -2
  13. package/src/core/ContactFooter.tsx +0 -91
  14. package/src/core/CookieMessage/CookieMessage.stories.tsx +0 -12
  15. package/src/core/CookieMessage/component.css +0 -15
  16. package/src/core/CookieMessage.tsx +0 -52
  17. package/src/core/CustomerLogos/CustomerLogos.stories.tsx +0 -43
  18. package/src/core/CustomerLogos.tsx +0 -35
  19. package/src/core/DropdownMenu/DropdownMenu.stories.tsx +0 -48
  20. package/src/core/DropdownMenu.tsx +0 -140
  21. package/src/core/Expander/Expander.stories.tsx +0 -132
  22. package/src/core/Expander.tsx +0 -63
  23. package/src/core/FeaturedLink/FeaturedLink.stories.tsx +0 -43
  24. package/src/core/FeaturedLink.tsx +0 -93
  25. package/src/core/Flash/Flash.stories.tsx +0 -37
  26. package/src/core/Flash/component.css +0 -28
  27. package/src/core/Flash.tsx +0 -233
  28. package/src/core/Footer/Footer.stories.tsx +0 -26
  29. package/src/core/Footer/component.css +0 -33
  30. package/src/core/Footer.tsx +0 -535
  31. package/src/core/Icon/Icon.stories.tsx +0 -151
  32. package/src/core/Icon.tsx +0 -26
  33. package/src/core/Loader/Loader.stories.tsx +0 -21
  34. package/src/core/Loader.tsx +0 -52
  35. package/src/core/Logo/Logo.stories.tsx +0 -12
  36. package/src/core/Logo.tsx +0 -29
  37. package/src/core/Meganav/Meganav.stories.tsx +0 -86
  38. package/src/core/Meganav/component.css +0 -114
  39. package/src/core/Meganav/component.js +0 -150
  40. package/src/core/Meganav/component.json +0 -37
  41. package/src/core/Meganav.tsx +0 -225
  42. package/src/core/MeganavBlogPostsList/component.js +0 -43
  43. package/src/core/MeganavBlogPostsList.tsx +0 -41
  44. package/src/core/MeganavContentCompany.tsx +0 -166
  45. package/src/core/MeganavContentDevelopers.tsx +0 -210
  46. package/src/core/MeganavContentProducts.tsx +0 -163
  47. package/src/core/MeganavContentUseCases.tsx +0 -244
  48. package/src/core/MeganavControl/component.js +0 -117
  49. package/src/core/MeganavControl.tsx +0 -39
  50. package/src/core/MeganavControlMobileDropdown/component.js +0 -46
  51. package/src/core/MeganavControlMobileDropdown.tsx +0 -31
  52. package/src/core/MeganavControlMobilePanelClose/component.js +0 -36
  53. package/src/core/MeganavControlMobilePanelClose.tsx +0 -34
  54. package/src/core/MeganavControlMobilePanelOpen/component.js +0 -59
  55. package/src/core/MeganavControlMobilePanelOpen.tsx +0 -31
  56. package/src/core/MeganavItemsDesktop.tsx +0 -68
  57. package/src/core/MeganavItemsMobile.tsx +0 -197
  58. package/src/core/MeganavItemsSignedIn.tsx +0 -130
  59. package/src/core/MeganavSearch.tsx +0 -36
  60. package/src/core/MeganavSearchAutocomplete/component.js +0 -177
  61. package/src/core/MeganavSearchAutocomplete.tsx +0 -12
  62. package/src/core/MeganavSearchPanel.tsx +0 -52
  63. package/src/core/MeganavSearchSuggestions/component.js +0 -133
  64. package/src/core/MeganavSearchSuggestions.tsx +0 -62
  65. package/src/core/Notice/component.css +0 -7
  66. package/src/core/Notice/component.js +0 -154
  67. package/src/core/Notice.tsx +0 -102
  68. package/src/core/SignOutLink.tsx +0 -51
  69. package/src/core/Slider/Slider.stories.tsx +0 -98
  70. package/src/core/Slider/component.css +0 -40
  71. package/src/core/Slider/component.js +0 -105
  72. package/src/core/Slider.tsx +0 -224
  73. package/src/core/Table/Table.stories.tsx +0 -12
  74. package/src/core/Table/Table.tsx +0 -58
  75. package/src/core/Table/TableCell.tsx +0 -71
  76. package/src/core/Table/TableRow.tsx +0 -25
  77. package/src/core/Table/data.tsx +0 -133
  78. package/src/core/Table.tsx +0 -15
  79. package/src/core/Tooltip/Tooltip.stories.tsx +0 -27
  80. package/src/core/Tooltip.tsx +0 -88
  81. package/src/core/css.js +0 -3
  82. package/src/core/dom-query.js +0 -5
  83. package/src/core/fonts/NEXT-Book-Light-Italic.eot +0 -0
  84. package/src/core/fonts/NEXT-Book-Light-Italic.otf +0 -0
  85. package/src/core/fonts/NEXT-Book-Light-Italic.woff +0 -0
  86. package/src/core/fonts/NEXT-Book-Light-Italic.woff2 +0 -0
  87. package/src/core/fonts/NEXT-Book-Light.eot +0 -0
  88. package/src/core/fonts/NEXT-Book-Light.otf +0 -0
  89. package/src/core/fonts/NEXT-Book-Light.woff +0 -0
  90. package/src/core/fonts/NEXT-Book-Light.woff2 +0 -0
  91. package/src/core/fonts/NEXT-Book-Medium-Italic.eot +0 -0
  92. package/src/core/fonts/NEXT-Book-Medium-Italic.otf +0 -0
  93. package/src/core/fonts/NEXT-Book-Medium-Italic.woff +0 -0
  94. package/src/core/fonts/NEXT-Book-Medium-Italic.woff2 +0 -0
  95. package/src/core/fonts/NEXT-Book-Medium.eot +0 -0
  96. package/src/core/fonts/NEXT-Book-Medium.otf +0 -0
  97. package/src/core/fonts/NEXT-Book-Medium.woff +0 -0
  98. package/src/core/fonts/NEXT-Book-Medium.woff2 +0 -0
  99. package/src/core/fonts/jetBrains-mono.css +0 -3
  100. package/src/core/fonts/manrope.css +0 -3
  101. package/src/core/fonts/next.css +0 -63
  102. package/src/core/fonts/source-code-pro.css +0 -3
  103. package/src/core/hubspot-chat-toggle.js +0 -67
  104. package/src/core/icons/discord.svg +0 -10
  105. package/src/core/icons/facebook.svg +0 -4
  106. package/src/core/icons/github.svg +0 -3
  107. package/src/core/icons/glassdoor.svg +0 -3
  108. package/src/core/icons/google.svg +0 -3
  109. package/src/core/icons/icon-display-48hrs.svg +0 -3
  110. package/src/core/icons/icon-display-about-ably-col.svg +0 -4
  111. package/src/core/icons/icon-display-api-keys.svg +0 -3
  112. package/src/core/icons/icon-display-api.svg +0 -3
  113. package/src/core/icons/icon-display-asset-tracking-col.svg +0 -18
  114. package/src/core/icons/icon-display-browser.svg +0 -10
  115. package/src/core/icons/icon-display-calendar.svg +0 -3
  116. package/src/core/icons/icon-display-call-mobile.svg +0 -3
  117. package/src/core/icons/icon-display-careers-col.svg +0 -9
  118. package/src/core/icons/icon-display-case-studies-col.svg +0 -5
  119. package/src/core/icons/icon-display-chat-col.svg +0 -4
  120. package/src/core/icons/icon-display-chat-stack-col.svg +0 -4
  121. package/src/core/icons/icon-display-chat-stack.svg +0 -4
  122. package/src/core/icons/icon-display-cloud-servers.svg +0 -3
  123. package/src/core/icons/icon-display-compare-tech-col.svg +0 -9
  124. package/src/core/icons/icon-display-customers-col.svg +0 -15
  125. package/src/core/icons/icon-display-data-broadcast-col.svg +0 -26
  126. package/src/core/icons/icon-display-data-synchronization-col.svg +0 -14
  127. package/src/core/icons/icon-display-docs-col.svg +0 -7
  128. package/src/core/icons/icon-display-documentation.svg +0 -3
  129. package/src/core/icons/icon-display-events-col.svg +0 -13
  130. package/src/core/icons/icon-display-examples-col.svg +0 -11
  131. package/src/core/icons/icon-display-gdpr.svg +0 -3
  132. package/src/core/icons/icon-display-general-comms.svg +0 -3
  133. package/src/core/icons/icon-display-hipaa.svg +0 -10
  134. package/src/core/icons/icon-display-integrations-col.svg +0 -8
  135. package/src/core/icons/icon-display-it-support-access.svg +0 -3
  136. package/src/core/icons/icon-display-it-support-helpdesk.svg +0 -3
  137. package/src/core/icons/icon-display-kafka-at-the-edge-col.svg +0 -8
  138. package/src/core/icons/icon-display-laptop.svg +0 -10
  139. package/src/core/icons/icon-display-lightbulb-col.svg +0 -10
  140. package/src/core/icons/icon-display-live-chat.svg +0 -3
  141. package/src/core/icons/icon-display-map-pin.svg +0 -3
  142. package/src/core/icons/icon-display-message.svg +0 -3
  143. package/src/core/icons/icon-display-padlock-closed.svg +0 -3
  144. package/src/core/icons/icon-display-platform.svg +0 -22
  145. package/src/core/icons/icon-display-play.svg +0 -3
  146. package/src/core/icons/icon-display-privacy-shield-framework.svg +0 -7
  147. package/src/core/icons/icon-display-push-notifications-col.svg +0 -6
  148. package/src/core/icons/icon-display-quickstart-guides-col.svg +0 -8
  149. package/src/core/icons/icon-display-resources-col.svg +0 -21
  150. package/src/core/icons/icon-display-sdks-col.svg +0 -11
  151. package/src/core/icons/icon-display-servers.svg +0 -3
  152. package/src/core/icons/icon-display-shopping-cart.svg +0 -10
  153. package/src/core/icons/icon-display-sla.svg +0 -3
  154. package/src/core/icons/icon-display-soc2-type2.svg +0 -3
  155. package/src/core/icons/icon-display-tech-account-comms.svg +0 -3
  156. package/src/core/icons/icon-display-tutorials-demos-col.svg +0 -25
  157. package/src/core/icons/icon-display-virtual-events-col.svg +0 -12
  158. package/src/core/icons/icon-display-virtual-events.svg +0 -12
  159. package/src/core/icons/icon-gui-ably-badge.svg +0 -3
  160. package/src/core/icons/icon-gui-arrow-bidirectional-horizontal.svg +0 -3
  161. package/src/core/icons/icon-gui-arrow-bidirectional-vertical.svg +0 -3
  162. package/src/core/icons/icon-gui-arrow-down.svg +0 -3
  163. package/src/core/icons/icon-gui-arrow-left.svg +0 -3
  164. package/src/core/icons/icon-gui-arrow-right.svg +0 -3
  165. package/src/core/icons/icon-gui-arrow-up.svg +0 -3
  166. package/src/core/icons/icon-gui-burger-menu.svg +0 -5
  167. package/src/core/icons/icon-gui-check-circled-fill-black.svg +0 -4
  168. package/src/core/icons/icon-gui-check-circled-fill.svg +0 -4
  169. package/src/core/icons/icon-gui-check-circled.svg +0 -3
  170. package/src/core/icons/icon-gui-checklist-checked.svg +0 -3
  171. package/src/core/icons/icon-gui-clock.svg +0 -3
  172. package/src/core/icons/icon-gui-close.svg +0 -3
  173. package/src/core/icons/icon-gui-copy.svg +0 -10
  174. package/src/core/icons/icon-gui-cross-circled-fill.svg +0 -4
  175. package/src/core/icons/icon-gui-cross-circled.svg +0 -3
  176. package/src/core/icons/icon-gui-dash-circled.svg +0 -3
  177. package/src/core/icons/icon-gui-disclosure-arrow.svg +0 -3
  178. package/src/core/icons/icon-gui-document-generic.svg +0 -3
  179. package/src/core/icons/icon-gui-enlarge.svg +0 -3
  180. package/src/core/icons/icon-gui-external-link.svg +0 -3
  181. package/src/core/icons/icon-gui-filter-flow-step-1.svg +0 -5
  182. package/src/core/icons/icon-gui-filter-flow-step-2.svg +0 -5
  183. package/src/core/icons/icon-gui-filter-flow-step-3.svg +0 -5
  184. package/src/core/icons/icon-gui-history.svg +0 -3
  185. package/src/core/icons/icon-gui-info.svg +0 -3
  186. package/src/core/icons/icon-gui-link-arrow.svg +0 -3
  187. package/src/core/icons/icon-gui-link.svg +0 -4
  188. package/src/core/icons/icon-gui-live-chat.svg +0 -3
  189. package/src/core/icons/icon-gui-minus.svg +0 -3
  190. package/src/core/icons/icon-gui-partial.svg +0 -4
  191. package/src/core/icons/icon-gui-plus.svg +0 -3
  192. package/src/core/icons/icon-gui-quote-marks-solid.svg +0 -3
  193. package/src/core/icons/icon-gui-refresh.svg +0 -10
  194. package/src/core/icons/icon-gui-resources.svg +0 -3
  195. package/src/core/icons/icon-gui-search.svg +0 -3
  196. package/src/core/icons/icon-gui-tick.svg +0 -3
  197. package/src/core/icons/icon-gui-warning.svg +0 -5
  198. package/src/core/icons/icon-live-updates-results-metrics-col.svg +0 -26
  199. package/src/core/icons/icon-multi-user-spaces-col.svg +0 -13
  200. package/src/core/icons/icon-social-x.svg +0 -3
  201. package/src/core/icons/icon-tech-apachekafka.svg +0 -3
  202. package/src/core/icons/linkedin.svg +0 -3
  203. package/src/core/icons/quote.svg +0 -3
  204. package/src/core/icons/stackoverflow.svg +0 -3
  205. package/src/core/icons/twitter.svg +0 -3
  206. package/src/core/icons/youtube.svg +0 -11
  207. package/src/core/icons.js +0 -6
  208. package/src/core/images/ably-logo.png +0 -0
  209. package/src/core/images/ably-logo.svg +0 -15
  210. package/src/core/images/ably-stack.svg +0 -14
  211. package/src/core/images/best-support-2023.svg +0 -1
  212. package/src/core/images/cust-logo-ao-col-pos.png +0 -0
  213. package/src/core/images/cust-logo-ao-col-pos@2x.png +0 -0
  214. package/src/core/images/cust-logo-ausopen-col-pos.png +0 -0
  215. package/src/core/images/cust-logo-ausopen-col-pos@2x.png +0 -0
  216. package/src/core/images/cust-logo-ausopen-mono-pos.svg +0 -5
  217. package/src/core/images/cust-logo-bloomberg-mono-pos.svg +0 -11
  218. package/src/core/images/cust-logo-hopin-mono-pos.svg +0 -4
  219. package/src/core/images/cust-logo-hubspot-col-pos.png +0 -0
  220. package/src/core/images/cust-logo-hubspot-col-pos@2x.png +0 -0
  221. package/src/core/images/cust-logo-hubspot-mono-pos.svg +0 -4
  222. package/src/core/images/cust-logo-lightspeed-col-pos.png +0 -0
  223. package/src/core/images/cust-logo-lightspeed-col-pos@2x.png +0 -0
  224. package/src/core/images/cust-logo-lightspeed-syst-col-pos.png +0 -0
  225. package/src/core/images/cust-logo-lightspeed-syst-col-pos@2x.png +0 -0
  226. package/src/core/images/cust-logo-mentimeter-mono-pos.svg +0 -17
  227. package/src/core/images/cust-logo-split-col-pos.png +0 -0
  228. package/src/core/images/cust-logo-split-col-pos@2x.png +0 -0
  229. package/src/core/images/cust-logo-split-mono-pos.svg +0 -9
  230. package/src/core/images/cust-logo-toyota-mono-pos.svg +0 -18
  231. package/src/core/images/cust-logo-vitac-col-pos.png +0 -0
  232. package/src/core/images/cust-logo-vitac-col-pos@2x.png +0 -0
  233. package/src/core/images/cust-logo-webflow-col-pos.svg +0 -3
  234. package/src/core/images/cust-photo-hubspot-max-freiert.jpg +0 -0
  235. package/src/core/images/cust-photo-split-pato-echague.jpg +0 -0
  236. package/src/core/images/cust-photo-vitac-joe-antonio.jpg +0 -0
  237. package/src/core/images/fastest-implementation-2023.svg +0 -1
  238. package/src/core/images/flexible-companies.png +0 -0
  239. package/src/core/images/high-performer-2022.png +0 -0
  240. package/src/core/images/high-performer-2023.svg +0 -1
  241. package/src/core/images/highest-user-adoption-2022.png +0 -0
  242. package/src/core/images/highest-user-adoption-2023.svg +0 -1
  243. package/src/core/images/icon-tech-aws.svg +0 -4
  244. package/src/core/images/rocket-list-2021.png +0 -0
  245. package/src/core/images/scale-motif-open-empathetic.svg +0 -1
  246. package/src/core/images/technical-support-01-800x533.jpg +0 -0
  247. package/src/core/images/users-love-us-2022.png +0 -0
  248. package/src/core/load-sprites.js +0 -11
  249. package/src/core/react-renderer.tsx +0 -29
  250. package/src/core/remote-blogs-posts.js +0 -42
  251. package/src/core/remote-data-store.js +0 -34
  252. package/src/core/remote-data-util.js +0 -4
  253. package/src/core/remote-session-data.js +0 -58
  254. package/src/core/scripts.js +0 -10
  255. package/src/core/styles/buttons.css +0 -124
  256. package/src/core/styles/forms.css +0 -64
  257. package/src/core/styles/layout.css +0 -21
  258. package/src/core/styles/properties.css +0 -278
  259. package/src/core/styles/text.css +0 -168
  260. package/src/core/styles/toggles.css +0 -38
  261. package/src/core/styles.base.css +0 -1
  262. package/src/core/styles.components.css +0 -44
  263. package/src/core/styles.css +0 -2
  264. package/src/core/url-base.js +0 -7
  265. package/src/core/utils/syntax-highlighter-registry.js +0 -63
  266. package/src/core/utils/syntax-highlighter.css +0 -71
  267. package/src/core/utils/syntax-highlighter.js +0 -103
  268. package/src/pages/Buttons.mdx +0 -121
  269. package/src/pages/Chips.mdx +0 -136
  270. package/src/pages/Colour.mdx +0 -23
  271. package/src/pages/Forms.mdx +0 -219
  272. package/src/pages/Layout.mdx +0 -58
  273. package/src/pages/Toggles.mdx +0 -42
  274. package/src/pages/Typography.mdx +0 -206
  275. package/src/pages/utils.ts +0 -80
  276. package/src/reset/scripts.js +0 -1
  277. package/src/reset/styles/normalize.css +0 -353
  278. package/src/reset/styles/reset.css +0 -139
  279. package/src/reset/styles.css +0 -2
@@ -1,225 +0,0 @@
1
- import React, { ReactNode, useEffect, useState } from "react";
2
-
3
- import { connectState } from "./remote-data-store.js";
4
- import { selectSessionData } from "./remote-session-data.js";
5
-
6
- import Logo from "./Logo";
7
- import MeganavData from "./Meganav/component.json";
8
- import MeganavScripts from "./Meganav/component.js";
9
- import MeganavItemsDesktop from "./MeganavItemsDesktop";
10
- import MeganavItemsSignedIn from "./MeganavItemsSignedIn";
11
- import MeganavItemsMobile from "./MeganavItemsMobile";
12
- import Notice from "./Notice";
13
- import _absUrl from "./url-base.js";
14
- import MeganavContentProducts from "./MeganavContentProducts";
15
- import MeganavContentUseCases from "./MeganavContentUseCases";
16
- import MeganavContentCompany from "./MeganavContentCompany";
17
- import MeganavContentDevelopers from "./MeganavContentDevelopers";
18
- import MeganavSearch from "./MeganavSearch";
19
-
20
- export type MeganavTheme = {
21
- backgroundColor?: string;
22
- textColor?: string;
23
- buttonBackgroundColor?: string;
24
- buttonTextColor?: string;
25
- mobileMenuColor?: string;
26
- logoTextColor?: string;
27
- barShadow?: string;
28
- };
29
-
30
- export type AbsUrl = (path: string) => string;
31
-
32
- export type MeganavPanels = {
33
- [index: string]: ({ paths, absUrl }) => ReactNode;
34
- };
35
-
36
- export type MeganavSessionState = {
37
- signedIn: boolean;
38
- logOut: {
39
- token: string;
40
- href: string;
41
- text: string;
42
- };
43
- accountName: string;
44
- preferredEmail: string;
45
- account: {
46
- links: {
47
- dashboard: {
48
- href: string;
49
- };
50
- };
51
- };
52
- mySettings: {
53
- text: string;
54
- href: string;
55
- };
56
- myAccessTokens: {
57
- text: string;
58
- href: string;
59
- };
60
- };
61
-
62
- type SignInProps = {
63
- sessionState: MeganavSessionState;
64
- theme: MeganavTheme;
65
- loginLink: string;
66
- absUrl: AbsUrl;
67
- };
68
-
69
- type MeganavProps = {
70
- paths?: {
71
- logo: string;
72
- iconSprites: string;
73
- ablyStack: string;
74
- blogThumb1: string;
75
- blogThumb2: string;
76
- blogThumb3: string;
77
- };
78
-
79
- themeName: "white" | "black" | "transparentToWhite";
80
- notice?: {
81
- props: {
82
- title: string;
83
- bodyText: string;
84
- buttonLink: string;
85
- buttonLabel: string;
86
- closeBtn: boolean;
87
- };
88
- config: {
89
- cookieId: string;
90
- noticeId: string;
91
- collapse: boolean;
92
- };
93
- };
94
- loginLink?: string;
95
- urlBase?: string;
96
- addSearchApiKey: string;
97
- };
98
-
99
- const SignIn = ({ sessionState, theme, loginLink, absUrl }: SignInProps) => {
100
- return sessionState.signedIn ? (
101
- <MeganavItemsSignedIn
102
- absUrl={absUrl}
103
- sessionState={sessionState}
104
- theme={theme}
105
- />
106
- ) : (
107
- <ul className="hidden md:flex items-center">
108
- <li className="ui-meganav-item">
109
- <a
110
- href={absUrl("/contact")}
111
- className={`ui-meganav-link ${theme.textColor}`}
112
- data-id="meganav-link"
113
- >
114
- Contact us
115
- </a>
116
- </li>
117
- <li className="ui-meganav-item">
118
- <a
119
- href={absUrl(loginLink)}
120
- className={`ui-meganav-link mr-0 ${theme.textColor}`}
121
- data-id="meganav-link"
122
- >
123
- Login
124
- </a>
125
- </li>
126
- <li className="ui-meganav-item">
127
- <MeganavSearch absUrl={absUrl} />
128
- </li>
129
- <li className="ui-meganav-item">
130
- <a
131
- href={absUrl("/sign-up")}
132
- data-id="meganav-sign-up-btn"
133
- className={`ui-btn p-btn-small ${theme.buttonBackgroundColor} ${theme.buttonTextColor}`}
134
- >
135
- Sign up free
136
- </a>
137
- </li>
138
- </ul>
139
- );
140
- };
141
-
142
- const SignInPlaceholder = () => <div />;
143
-
144
- const panels = {
145
- MeganavContentProducts,
146
- MeganavContentUseCases,
147
- MeganavContentCompany,
148
- MeganavContentDevelopers,
149
- };
150
-
151
- const Meganav = ({
152
- paths,
153
- themeName = "white",
154
- notice,
155
- loginLink = "/login",
156
- urlBase,
157
- addSearchApiKey,
158
- }: MeganavProps) => {
159
- const [sessionState, setSessionState] = useState<MeganavSessionState>();
160
-
161
- useEffect(() => {
162
- // Note if state is never updated, sessionState stays null and never removes the placeholder.
163
- // This makes SSR consistent (ie. we always show the placeholder)
164
- connectState(selectSessionData, setSessionState);
165
- }, []);
166
-
167
- useEffect(() => {
168
- const teardown = MeganavScripts({ themeName, addSearchApiKey });
169
- // TODO(jamiehenson): update this when JS assets are converted to TS
170
- // @ts-expect-error: teardown parsed as Element from JS file, cannot be coerced into Function form
171
- return () => teardown();
172
- }, [sessionState]);
173
-
174
- const theme = MeganavData.themes[themeName];
175
- const absUrl = (path) => _absUrl(path, urlBase);
176
-
177
- return (
178
- <nav
179
- className={`ui-meganav-wrapper ${theme.backgroundColor} ${theme.barShadow}`}
180
- data-id="meganav"
181
- aria-label="Main"
182
- >
183
- {notice && <Notice {...notice.props} config={notice.config} />}
184
- <div className="ui-meganav ui-grid-px">
185
- <div className="mr-24">
186
- <Logo
187
- dataId="meganav-logo"
188
- href={urlBase}
189
- logoUrl={paths?.logo ?? ""}
190
- />
191
- </div>
192
-
193
- <MeganavItemsDesktop
194
- panels={panels}
195
- paths={paths}
196
- theme={theme}
197
- absUrl={absUrl}
198
- />
199
-
200
- {/* Because we load the session state through fetch, we display a placeholder until fetch returns */}
201
- {sessionState ? (
202
- <SignIn
203
- sessionState={sessionState}
204
- theme={theme}
205
- loginLink={loginLink}
206
- absUrl={absUrl}
207
- />
208
- ) : (
209
- <SignInPlaceholder />
210
- )}
211
-
212
- <MeganavItemsMobile
213
- panels={panels}
214
- sessionState={sessionState}
215
- paths={paths}
216
- theme={theme}
217
- loginLink={loginLink}
218
- absUrl={absUrl}
219
- />
220
- </div>
221
- </nav>
222
- );
223
- };
224
-
225
- export default Meganav;
@@ -1,43 +0,0 @@
1
- import { queryIdAll } from "../dom-query";
2
- import { selectRecentBlogPosts } from "../remote-blogs-posts";
3
- import { connectState } from "../remote-data-store";
4
-
5
- const template = ({ link, title, pubDate }) => {
6
- const [li, a, heading, copy] = ["li", "a", "p", "p"].map((el) =>
7
- document.createElement(el),
8
- );
9
-
10
- a.href = link;
11
- a.classList.add("ui-meganav-media", "group");
12
-
13
- heading.textContent = title;
14
- heading.classList.add("ui-meganav-media-heading");
15
-
16
- copy.textContent = pubDate;
17
- copy.classList.add("ui-meganav-media-copy");
18
-
19
- a.appendChild(heading);
20
- a.appendChild(copy);
21
- li.appendChild(a);
22
-
23
- return li;
24
- };
25
-
26
- export default () => {
27
- connectState(selectRecentBlogPosts, (recentBlogPosts) => {
28
- if (Array.isArray(recentBlogPosts) && recentBlogPosts.length > 0) {
29
- const sections = queryIdAll("meganav-company-panel-blog-section");
30
- const containers = queryIdAll("meganav-company-panel-recent-blog-posts");
31
-
32
- Array.from(containers).forEach((container) => {
33
- const fragment = document.createDocumentFragment();
34
- recentBlogPosts.forEach((post) => fragment.appendChild(template(post)));
35
- container.appendChild(fragment);
36
- });
37
-
38
- Array.from(sections).forEach((section) =>
39
- section.classList.remove("hidden"),
40
- );
41
- }
42
- });
43
- };
@@ -1,41 +0,0 @@
1
- import React from "react";
2
-
3
- import FeaturedLink from "./FeaturedLink";
4
- import { AbsUrl } from "./Meganav";
5
-
6
- type MeganavBlogPostsListProps = {
7
- recentBlogPosts: {
8
- link: string;
9
- title: string;
10
- pubDate: string;
11
- }[];
12
- absUrl: AbsUrl;
13
- };
14
-
15
- const MeganavBlogPostsList = ({
16
- recentBlogPosts,
17
- absUrl,
18
- }: MeganavBlogPostsListProps) =>
19
- recentBlogPosts ? (
20
- <div className="col-span-full md:col-span-4 pt-8 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0">
21
- <h3 className="ui-meganav-overline" id="meganav-company-panel-list-blog">
22
- Blog
23
- </h3>
24
- <ul className="mb-8" aria-labelledby="meganav-company-panel-list-blog">
25
- {recentBlogPosts.map((post) => (
26
- <li key={post.link}>
27
- <a href={post.link} className="ui-meganav-media group">
28
- <p className="ui-meganav-media-heading">{post.title}</p>
29
- <p className="ui-meganav-media-copy">{post.pubDate}</p>
30
- </a>
31
- </li>
32
- ))}
33
- </ul>
34
-
35
- <FeaturedLink url={absUrl("/blog")} textSize="text-p3">
36
- More from our Blog
37
- </FeaturedLink>
38
- </div>
39
- ) : null;
40
-
41
- export default MeganavBlogPostsList;
@@ -1,166 +0,0 @@
1
- import React from "react";
2
-
3
- import MeganavBlogPostsList from "./MeganavBlogPostsList";
4
- import ConnectStateWrapper from "./ConnectStateWrapper";
5
- import { selectRecentBlogPosts } from "./remote-blogs-posts.js";
6
- import Icon from "./Icon";
7
- import { AbsUrl } from "./Meganav";
8
-
9
- type MeganavContentCompanyProps = {
10
- absUrl: AbsUrl;
11
- paths: {
12
- awsLogo: string;
13
- };
14
- };
15
-
16
- const MeganavContentCompany = ({
17
- paths,
18
- absUrl,
19
- }: MeganavContentCompanyProps) => {
20
- const BlogPostsList = ConnectStateWrapper(MeganavBlogPostsList, {
21
- recentBlogPosts: selectRecentBlogPosts,
22
- });
23
-
24
- return (
25
- <div className="flex max-w-screen-xl mx-auto">
26
- <div className="ui-meganav-content-spacer"></div>
27
- <section className="grid grid-cols-12 ui-grid-gap-x w-full">
28
- <div className="col-span-full md:col-span-4 pt-24 md:py-24 lg:py-32 px-24 sm:px-32 md:pl-0 md:pr-24">
29
- <h3
30
- className="ui-meganav-overline"
31
- id="meganav-company-panel-list-why-companies"
32
- >
33
- Why companies choose Ably
34
- </h3>
35
- <ul aria-labelledby="meganav-company-panel-list-why-companies">
36
- <li>
37
- <a
38
- href={absUrl("/customers")}
39
- className="ui-meganav-media-with-image group"
40
- >
41
- <Icon name="icon-display-customers-col" size="2.5rem" />
42
- <div className="flex flex-col justify-center">
43
- <p className="ui-meganav-media-heading">Customers</p>
44
- <p className="ui-meganav-media-copy">
45
- Ably supports customers across multiple industries.
46
- </p>
47
- </div>
48
- </a>
49
- </li>
50
- <li>
51
- <a
52
- href={absUrl("/case-studies")}
53
- className="ui-meganav-media-with-image group"
54
- >
55
- <Icon name="icon-display-case-studies-col" size="2.5rem" />
56
- <div className="flex flex-col justify-center">
57
- <p className="ui-meganav-media-heading">Case studies</p>
58
- <p className="ui-meganav-media-copy">
59
- Discover how customers are benefiting from Ably.
60
- </p>
61
- </div>
62
- </a>
63
- </li>
64
- <li>
65
- <a
66
- href={absUrl("/compare")}
67
- className="ui-meganav-media-with-image group"
68
- >
69
- <Icon name="icon-display-compare-tech-col" size="2.5rem" />
70
- <div className="flex flex-col justify-center">
71
- <p className="ui-meganav-media-heading">Compare our tech</p>
72
- <p className="ui-meganav-media-copy">
73
- Choose the right realtime service.
74
- </p>
75
- </div>
76
- </a>
77
- </li>
78
- <li>
79
- <a
80
- href={absUrl("/aws")}
81
- className="ui-meganav-media-with-image group"
82
- >
83
- <img src={paths.awsLogo} alt="AWS logo" />
84
- <div className="flex flex-col justify-center">
85
- <p className="ui-meganav-media-heading">Partners</p>
86
- <p className="ui-meganav-media-copy">
87
- Ably collaborates and integrates with AWS.
88
- </p>
89
- </div>
90
- </a>
91
- </li>
92
- </ul>
93
- </div>
94
-
95
- <div className="col-span-full md:col-span-4 pb-8 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0">
96
- <ul
97
- className="md:mt-40"
98
- aria-labelledby="meganav-company-panel-list-why-companies"
99
- >
100
- <li>
101
- <a
102
- href={absUrl("/resources")}
103
- className="ui-meganav-media-with-image group"
104
- >
105
- <Icon name="icon-display-resources-col" size="2.5rem" />
106
- <div className="flex flex-col justify-center">
107
- <p className="ui-meganav-media-heading">Resources</p>
108
- <p className="ui-meganav-media-copy">
109
- Learn more about realtime with our handy resources.
110
- </p>
111
- </div>
112
- </a>
113
- </li>
114
- <li>
115
- <a
116
- href={absUrl("/about")}
117
- className="ui-meganav-media-with-image group"
118
- >
119
- <Icon name="icon-display-about-ably-col" size="2.5rem" />
120
- <div className="flex flex-col justify-center">
121
- <p className="ui-meganav-media-heading">About Ably</p>
122
- <p className="ui-meganav-media-copy">
123
- Find out more about Ably’s mission.
124
- </p>
125
- </div>
126
- </a>
127
- </li>
128
- <li>
129
- <a
130
- href={absUrl("/careers")}
131
- className="ui-meganav-media-with-image group"
132
- >
133
- <Icon name="icon-display-careers-col" size="2.5rem" />
134
- <div className="flex flex-col justify-center">
135
- <p className="ui-meganav-media-heading">Careers</p>
136
- <p className="ui-meganav-media-copy">
137
- Discover our open roles and core Ably values.
138
- </p>
139
- </div>
140
- </a>
141
- </li>
142
- <li>
143
- <a
144
- href={absUrl("/events")}
145
- className="ui-meganav-media-with-image group"
146
- >
147
- <Icon name="icon-display-events-col" size="2.5rem" />
148
- <div className="flex flex-col justify-center">
149
- <p className="ui-meganav-media-heading">Events</p>
150
- <p className="ui-meganav-media-copy">
151
- Join Ably at upcoming events.
152
- </p>
153
- </div>
154
- </a>
155
- </li>
156
- </ul>
157
- </div>
158
-
159
- <BlogPostsList absUrl={absUrl} />
160
- </section>
161
- <div className="ui-meganav-content-spacer"></div>
162
- </div>
163
- );
164
- };
165
-
166
- export default MeganavContentCompany;
@@ -1,210 +0,0 @@
1
- import React from "react";
2
-
3
- import Icon from "./Icon";
4
- import { AbsUrl } from "./Meganav";
5
-
6
- const MeganavContentDevelopers = ({ absUrl }: { absUrl: AbsUrl }) => (
7
- <div className="flex max-w-screen-xl mx-auto">
8
- <div className="ui-meganav-content-spacer"></div>
9
- <section className="grid grid-cols-12 ui-grid-gap-x w-full">
10
- <div className="col-span-full md:col-span-4 pt-24 md:py-24 lg:py-32 px-24 sm:px-32 md:pl-0 md:pr-24">
11
- <h3
12
- className="ui-meganav-overline uppercase"
13
- id="meganav-developers-panel-explore"
14
- >
15
- Explore
16
- </h3>
17
- <ul aria-labelledby="meganav-developers-panel-explore">
18
- <li>
19
- <a
20
- href={absUrl("/docs")}
21
- className="ui-meganav-media-with-image group"
22
- >
23
- <Icon name="icon-display-docs-col" size="2.5rem" />
24
- <div className="flex flex-col justify-center">
25
- <p className="ui-meganav-media-heading">Documentation</p>
26
- <p className="ui-meganav-media-copy">
27
- Technical guides to help you build with Ably.
28
- </p>
29
- </div>
30
- </a>
31
- </li>
32
- <li>
33
- <a
34
- href={absUrl("/docs/quick-start-guide")}
35
- className="ui-meganav-media-with-image group"
36
- >
37
- <Icon name="icon-display-quickstart-guides-col" size="2.5rem" />
38
- <div className="flex flex-col justify-center">
39
- <p className="ui-meganav-media-heading">Quickstart guides</p>
40
- <p className="ui-meganav-media-copy">
41
- Documentation to help you get started quickly.
42
- </p>
43
- </div>
44
- </a>
45
- </li>
46
- <li>
47
- <a
48
- href={absUrl("/integrations")}
49
- className="ui-meganav-media-with-image group"
50
- >
51
- <Icon name="icon-display-integrations-col" size="2.5rem" />
52
- <div className="flex flex-col justify-center">
53
- <p className="ui-meganav-media-heading">Integrations</p>
54
- <p className="ui-meganav-media-copy">
55
- Find out more about Ably integrations.{" "}
56
- </p>
57
- </div>
58
- </a>
59
- </li>
60
- <li>
61
- <a
62
- href={absUrl("/examples")}
63
- className="ui-meganav-media-with-image group"
64
- >
65
- <Icon name="icon-display-examples-col" size="2.5rem" />
66
- <div className="flex flex-col justify-center">
67
- <p className="ui-meganav-media-heading">Live examples</p>
68
- <p className="ui-meganav-media-copy">
69
- Discover our features and their use cases.
70
- </p>
71
- </div>
72
- </a>
73
- </li>
74
- </ul>
75
- </div>
76
-
77
- <div className="col-span-full md:col-span-4 pb-8 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0">
78
- <ul
79
- className="md:mt-40"
80
- aria-labelledby="meganav-developers-panel-explore"
81
- >
82
- <li>
83
- <a
84
- href={absUrl("/docs/sdks")}
85
- className="ui-meganav-media-with-image group"
86
- >
87
- <Icon name="icon-display-sdks-col" size="2.5rem" />
88
- <div className="flex flex-col justify-center">
89
- <p className="ui-meganav-media-heading">SDKs</p>
90
- <p className="ui-meganav-media-copy">
91
- Download an SDK to help you build realtime apps faster.
92
- </p>
93
- </div>
94
- </a>
95
- </li>
96
- <li>
97
- <a
98
- href={absUrl("/tutorials")}
99
- className="ui-meganav-media-with-image group"
100
- >
101
- <Icon name="icon-display-tutorials-demos-col" size="2.5rem" />
102
- <div className="flex flex-col justify-center">
103
- <p className="ui-meganav-media-heading">Tutorials & Demos</p>
104
- <p className="ui-meganav-media-copy">
105
- Get stuck in with our hands-on resources.
106
- </p>
107
- </div>
108
- </a>
109
- </li>
110
- <li>
111
- <a
112
- href={absUrl("/reference-guide-chat")}
113
- className="ui-meganav-media-with-image group"
114
- >
115
- <Icon name="icon-display-chat-col" size="2.5rem" />
116
- <div className="flex flex-col justify-center">
117
- <p className="ui-meganav-media-heading">
118
- Chat apps reference guide
119
- </p>
120
- <p className="ui-meganav-media-copy">
121
- Learn how to build chat apps with Ably.
122
- </p>
123
- </div>
124
- </a>
125
- </li>
126
- <li>
127
- <a
128
- href={absUrl("/reference-guide-multiplayer")}
129
- className="ui-meganav-media-with-image group"
130
- >
131
- <Icon name="icon-multi-user-spaces-col" size="2.5rem" />
132
- <div className="flex flex-col justify-center">
133
- <p className="ui-meganav-media-heading">
134
- Multiplayer reference guide
135
- </p>
136
- <p className="ui-meganav-media-copy">
137
- Learn how to build collaborative features with Ably.
138
- </p>
139
- </div>
140
- </a>
141
- </li>
142
- </ul>
143
- </div>
144
-
145
- <div className="col-span-full md:col-span-4 pt-8 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0">
146
- <h3
147
- className="ui-meganav-overline uppercase"
148
- id="meganav-developers-panel-quick-links"
149
- >
150
- Quick links
151
- </h3>
152
- <ul aria-labelledby="meganav-developers-panel-quick-links">
153
- <li>
154
- <a
155
- href="https://discord.gg/jwBPhEZ9g5"
156
- className="group ui-meganav-media py-12"
157
- >
158
- <p className="ui-meganav-media-heading">Discord</p>
159
- </a>
160
- </li>
161
- <li>
162
- <a
163
- href="https://github.com/ably"
164
- className="group ui-meganav-media py-12"
165
- >
166
- <p className="ui-meganav-media-heading">GitHub</p>
167
- </a>
168
- </li>
169
- <li>
170
- <a
171
- href="https://changelog.ably.com/"
172
- className="group ui-meganav-media py-12"
173
- >
174
- <p className="ui-meganav-media-heading">Changelog</p>
175
- </a>
176
- </li>
177
- <li>
178
- <a
179
- href="https://status.ably.com/"
180
- className="group ui-meganav-media py-12"
181
- >
182
- <p className="ui-meganav-media-heading">
183
- Status
184
- <iframe
185
- title="Ably status"
186
- src="https://status.ably.com/embed/icon"
187
- style={{ backgroundColor: "transparent" }}
188
- frameBorder="0"
189
- scrolling="no"
190
- className="w-24 h-24 ml-4 border-none pointer-events-none align-middle"
191
- ></iframe>
192
- </p>
193
- </a>
194
- </li>
195
- <li>
196
- <a
197
- href={absUrl("/support")}
198
- className="group ui-meganav-media py-12"
199
- >
200
- <p className="ui-meganav-media-heading">Support & FAQs</p>
201
- </a>
202
- </li>
203
- </ul>
204
- </div>
205
- </section>
206
- <div className="ui-meganav-content-spacer"></div>
207
- </div>
208
- );
209
-
210
- export default MeganavContentDevelopers;