@ably/ui 14.1.0-dev.76621d8 → 14.1.0-dev.f3a3c90

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 (306) hide show
  1. package/core/styles/forms.css +15 -2
  2. package/package.json +1 -2
  3. package/src/.DS_Store +0 -0
  4. package/src/core/.DS_Store +0 -0
  5. package/src/core/Accordion/.DS_Store +0 -0
  6. package/src/core/Accordion/Accordion.stories.tsx +0 -39
  7. package/src/core/Accordion.tsx +0 -149
  8. package/src/core/Code/.DS_Store +0 -0
  9. package/src/core/Code/Code.stories.tsx +0 -71
  10. package/src/core/Code/component.css +0 -1
  11. package/src/core/Code/component.js +0 -27
  12. package/src/core/Code.tsx +0 -44
  13. package/src/core/ConnectStateWrapper.tsx +0 -43
  14. package/src/core/ContactFooter/.DS_Store +0 -0
  15. package/src/core/ContactFooter/ContactFooter.stories.tsx +0 -11
  16. package/src/core/ContactFooter/component.css +0 -11
  17. package/src/core/ContactFooter/component.js +0 -2
  18. package/src/core/ContactFooter.tsx +0 -91
  19. package/src/core/CookieMessage/.DS_Store +0 -0
  20. package/src/core/CookieMessage/CookieMessage.stories.tsx +0 -12
  21. package/src/core/CookieMessage/component.css +0 -15
  22. package/src/core/CookieMessage.tsx +0 -52
  23. package/src/core/CustomerLogos/.DS_Store +0 -0
  24. package/src/core/CustomerLogos/CustomerLogos.stories.tsx +0 -43
  25. package/src/core/CustomerLogos.tsx +0 -35
  26. package/src/core/DropdownMenu/.DS_Store +0 -0
  27. package/src/core/DropdownMenu/DropdownMenu.stories.tsx +0 -48
  28. package/src/core/DropdownMenu.tsx +0 -140
  29. package/src/core/Expander/Expander.stories.tsx +0 -132
  30. package/src/core/Expander.tsx +0 -63
  31. package/src/core/FeaturedLink/.DS_Store +0 -0
  32. package/src/core/FeaturedLink/FeaturedLink.stories.tsx +0 -43
  33. package/src/core/FeaturedLink.tsx +0 -93
  34. package/src/core/Flash/.DS_Store +0 -0
  35. package/src/core/Flash/Flash.stories.tsx +0 -37
  36. package/src/core/Flash/component.css +0 -28
  37. package/src/core/Flash.tsx +0 -233
  38. package/src/core/Footer/.DS_Store +0 -0
  39. package/src/core/Footer/Footer.stories.tsx +0 -26
  40. package/src/core/Footer/component.css +0 -33
  41. package/src/core/Footer.tsx +0 -535
  42. package/src/core/Icon/.DS_Store +0 -0
  43. package/src/core/Icon/Icon.stories.tsx +0 -151
  44. package/src/core/Icon.tsx +0 -26
  45. package/src/core/Loader/.DS_Store +0 -0
  46. package/src/core/Loader/Loader.stories.tsx +0 -21
  47. package/src/core/Loader.tsx +0 -52
  48. package/src/core/Logo/.DS_Store +0 -0
  49. package/src/core/Logo/Logo.stories.tsx +0 -12
  50. package/src/core/Logo.tsx +0 -29
  51. package/src/core/Meganav/.DS_Store +0 -0
  52. package/src/core/Meganav/Meganav.stories.tsx +0 -86
  53. package/src/core/Meganav/component.css +0 -114
  54. package/src/core/Meganav/component.js +0 -150
  55. package/src/core/Meganav/component.json +0 -37
  56. package/src/core/Meganav.tsx +0 -225
  57. package/src/core/MeganavBlogPostsList/.DS_Store +0 -0
  58. package/src/core/MeganavBlogPostsList/component.js +0 -43
  59. package/src/core/MeganavBlogPostsList.tsx +0 -41
  60. package/src/core/MeganavContentCompany.tsx +0 -166
  61. package/src/core/MeganavContentDevelopers.tsx +0 -210
  62. package/src/core/MeganavContentProducts.tsx +0 -163
  63. package/src/core/MeganavContentUseCases.tsx +0 -244
  64. package/src/core/MeganavControl/.DS_Store +0 -0
  65. package/src/core/MeganavControl/component.js +0 -117
  66. package/src/core/MeganavControl.tsx +0 -39
  67. package/src/core/MeganavControlMobileDropdown/.DS_Store +0 -0
  68. package/src/core/MeganavControlMobileDropdown/component.js +0 -46
  69. package/src/core/MeganavControlMobileDropdown.tsx +0 -31
  70. package/src/core/MeganavControlMobilePanelClose/.DS_Store +0 -0
  71. package/src/core/MeganavControlMobilePanelClose/component.js +0 -36
  72. package/src/core/MeganavControlMobilePanelClose.tsx +0 -34
  73. package/src/core/MeganavControlMobilePanelOpen/.DS_Store +0 -0
  74. package/src/core/MeganavControlMobilePanelOpen/component.js +0 -59
  75. package/src/core/MeganavControlMobilePanelOpen.tsx +0 -31
  76. package/src/core/MeganavItemsDesktop.tsx +0 -68
  77. package/src/core/MeganavItemsMobile.tsx +0 -197
  78. package/src/core/MeganavItemsSignedIn.tsx +0 -130
  79. package/src/core/MeganavSearch.tsx +0 -36
  80. package/src/core/MeganavSearchAutocomplete/.DS_Store +0 -0
  81. package/src/core/MeganavSearchAutocomplete/component.js +0 -177
  82. package/src/core/MeganavSearchAutocomplete.tsx +0 -12
  83. package/src/core/MeganavSearchPanel.tsx +0 -52
  84. package/src/core/MeganavSearchSuggestions/.DS_Store +0 -0
  85. package/src/core/MeganavSearchSuggestions/component.js +0 -133
  86. package/src/core/MeganavSearchSuggestions.tsx +0 -62
  87. package/src/core/Notice/.DS_Store +0 -0
  88. package/src/core/Notice/component.css +0 -7
  89. package/src/core/Notice/component.js +0 -154
  90. package/src/core/Notice.tsx +0 -102
  91. package/src/core/SignOutLink.tsx +0 -51
  92. package/src/core/Slider/.DS_Store +0 -0
  93. package/src/core/Slider/Slider.stories.tsx +0 -98
  94. package/src/core/Slider/component.css +0 -40
  95. package/src/core/Slider/component.js +0 -105
  96. package/src/core/Slider.tsx +0 -224
  97. package/src/core/Table/.DS_Store +0 -0
  98. package/src/core/Table/Table.stories.tsx +0 -12
  99. package/src/core/Table/Table.tsx +0 -58
  100. package/src/core/Table/TableCell.tsx +0 -71
  101. package/src/core/Table/TableRow.tsx +0 -25
  102. package/src/core/Table/data.tsx +0 -133
  103. package/src/core/Table.tsx +0 -15
  104. package/src/core/Tooltip/.DS_Store +0 -0
  105. package/src/core/Tooltip/Tooltip.stories.tsx +0 -27
  106. package/src/core/Tooltip.tsx +0 -88
  107. package/src/core/css.js +0 -3
  108. package/src/core/dom-query.js +0 -5
  109. package/src/core/fonts/NEXT-Book-Light-Italic.eot +0 -0
  110. package/src/core/fonts/NEXT-Book-Light-Italic.otf +0 -0
  111. package/src/core/fonts/NEXT-Book-Light-Italic.woff +0 -0
  112. package/src/core/fonts/NEXT-Book-Light-Italic.woff2 +0 -0
  113. package/src/core/fonts/NEXT-Book-Light.eot +0 -0
  114. package/src/core/fonts/NEXT-Book-Light.otf +0 -0
  115. package/src/core/fonts/NEXT-Book-Light.woff +0 -0
  116. package/src/core/fonts/NEXT-Book-Light.woff2 +0 -0
  117. package/src/core/fonts/NEXT-Book-Medium-Italic.eot +0 -0
  118. package/src/core/fonts/NEXT-Book-Medium-Italic.otf +0 -0
  119. package/src/core/fonts/NEXT-Book-Medium-Italic.woff +0 -0
  120. package/src/core/fonts/NEXT-Book-Medium-Italic.woff2 +0 -0
  121. package/src/core/fonts/NEXT-Book-Medium.eot +0 -0
  122. package/src/core/fonts/NEXT-Book-Medium.otf +0 -0
  123. package/src/core/fonts/NEXT-Book-Medium.woff +0 -0
  124. package/src/core/fonts/NEXT-Book-Medium.woff2 +0 -0
  125. package/src/core/fonts/jetBrains-mono.css +0 -3
  126. package/src/core/fonts/manrope.css +0 -3
  127. package/src/core/fonts/next.css +0 -63
  128. package/src/core/fonts/source-code-pro.css +0 -3
  129. package/src/core/hubspot-chat-toggle.js +0 -67
  130. package/src/core/icons/discord.svg +0 -10
  131. package/src/core/icons/facebook.svg +0 -4
  132. package/src/core/icons/github.svg +0 -3
  133. package/src/core/icons/glassdoor.svg +0 -3
  134. package/src/core/icons/google.svg +0 -3
  135. package/src/core/icons/icon-display-48hrs.svg +0 -3
  136. package/src/core/icons/icon-display-about-ably-col.svg +0 -4
  137. package/src/core/icons/icon-display-api-keys.svg +0 -3
  138. package/src/core/icons/icon-display-api.svg +0 -3
  139. package/src/core/icons/icon-display-asset-tracking-col.svg +0 -18
  140. package/src/core/icons/icon-display-browser.svg +0 -10
  141. package/src/core/icons/icon-display-calendar.svg +0 -3
  142. package/src/core/icons/icon-display-call-mobile.svg +0 -3
  143. package/src/core/icons/icon-display-careers-col.svg +0 -9
  144. package/src/core/icons/icon-display-case-studies-col.svg +0 -5
  145. package/src/core/icons/icon-display-chat-col.svg +0 -4
  146. package/src/core/icons/icon-display-chat-stack-col.svg +0 -4
  147. package/src/core/icons/icon-display-chat-stack.svg +0 -4
  148. package/src/core/icons/icon-display-cloud-servers.svg +0 -3
  149. package/src/core/icons/icon-display-compare-tech-col.svg +0 -9
  150. package/src/core/icons/icon-display-customers-col.svg +0 -15
  151. package/src/core/icons/icon-display-data-broadcast-col.svg +0 -26
  152. package/src/core/icons/icon-display-data-synchronization-col.svg +0 -14
  153. package/src/core/icons/icon-display-docs-col.svg +0 -7
  154. package/src/core/icons/icon-display-documentation.svg +0 -3
  155. package/src/core/icons/icon-display-events-col.svg +0 -13
  156. package/src/core/icons/icon-display-examples-col.svg +0 -11
  157. package/src/core/icons/icon-display-gdpr.svg +0 -3
  158. package/src/core/icons/icon-display-general-comms.svg +0 -3
  159. package/src/core/icons/icon-display-hipaa.svg +0 -10
  160. package/src/core/icons/icon-display-integrations-col.svg +0 -8
  161. package/src/core/icons/icon-display-it-support-access.svg +0 -3
  162. package/src/core/icons/icon-display-it-support-helpdesk.svg +0 -3
  163. package/src/core/icons/icon-display-kafka-at-the-edge-col.svg +0 -8
  164. package/src/core/icons/icon-display-laptop.svg +0 -10
  165. package/src/core/icons/icon-display-lightbulb-col.svg +0 -10
  166. package/src/core/icons/icon-display-live-chat.svg +0 -3
  167. package/src/core/icons/icon-display-map-pin.svg +0 -3
  168. package/src/core/icons/icon-display-message.svg +0 -3
  169. package/src/core/icons/icon-display-padlock-closed.svg +0 -3
  170. package/src/core/icons/icon-display-platform.svg +0 -22
  171. package/src/core/icons/icon-display-play.svg +0 -3
  172. package/src/core/icons/icon-display-privacy-shield-framework.svg +0 -7
  173. package/src/core/icons/icon-display-push-notifications-col.svg +0 -6
  174. package/src/core/icons/icon-display-quickstart-guides-col.svg +0 -8
  175. package/src/core/icons/icon-display-resources-col.svg +0 -21
  176. package/src/core/icons/icon-display-sdks-col.svg +0 -11
  177. package/src/core/icons/icon-display-servers.svg +0 -3
  178. package/src/core/icons/icon-display-shopping-cart.svg +0 -10
  179. package/src/core/icons/icon-display-sla.svg +0 -3
  180. package/src/core/icons/icon-display-soc2-type2.svg +0 -3
  181. package/src/core/icons/icon-display-tech-account-comms.svg +0 -3
  182. package/src/core/icons/icon-display-tutorials-demos-col.svg +0 -25
  183. package/src/core/icons/icon-display-virtual-events-col.svg +0 -12
  184. package/src/core/icons/icon-display-virtual-events.svg +0 -12
  185. package/src/core/icons/icon-gui-ably-badge.svg +0 -3
  186. package/src/core/icons/icon-gui-arrow-bidirectional-horizontal.svg +0 -3
  187. package/src/core/icons/icon-gui-arrow-bidirectional-vertical.svg +0 -3
  188. package/src/core/icons/icon-gui-arrow-down.svg +0 -3
  189. package/src/core/icons/icon-gui-arrow-left.svg +0 -3
  190. package/src/core/icons/icon-gui-arrow-right.svg +0 -3
  191. package/src/core/icons/icon-gui-arrow-up.svg +0 -3
  192. package/src/core/icons/icon-gui-burger-menu.svg +0 -5
  193. package/src/core/icons/icon-gui-check-circled-fill-black.svg +0 -4
  194. package/src/core/icons/icon-gui-check-circled-fill.svg +0 -4
  195. package/src/core/icons/icon-gui-check-circled.svg +0 -3
  196. package/src/core/icons/icon-gui-checklist-checked.svg +0 -3
  197. package/src/core/icons/icon-gui-clock.svg +0 -3
  198. package/src/core/icons/icon-gui-close.svg +0 -3
  199. package/src/core/icons/icon-gui-copy.svg +0 -10
  200. package/src/core/icons/icon-gui-cross-circled-fill.svg +0 -4
  201. package/src/core/icons/icon-gui-cross-circled.svg +0 -3
  202. package/src/core/icons/icon-gui-dash-circled.svg +0 -3
  203. package/src/core/icons/icon-gui-disclosure-arrow.svg +0 -3
  204. package/src/core/icons/icon-gui-document-generic.svg +0 -3
  205. package/src/core/icons/icon-gui-enlarge.svg +0 -3
  206. package/src/core/icons/icon-gui-external-link.svg +0 -3
  207. package/src/core/icons/icon-gui-filter-flow-step-1.svg +0 -5
  208. package/src/core/icons/icon-gui-filter-flow-step-2.svg +0 -5
  209. package/src/core/icons/icon-gui-filter-flow-step-3.svg +0 -5
  210. package/src/core/icons/icon-gui-history.svg +0 -3
  211. package/src/core/icons/icon-gui-info.svg +0 -3
  212. package/src/core/icons/icon-gui-link-arrow.svg +0 -3
  213. package/src/core/icons/icon-gui-link.svg +0 -4
  214. package/src/core/icons/icon-gui-live-chat.svg +0 -3
  215. package/src/core/icons/icon-gui-minus.svg +0 -3
  216. package/src/core/icons/icon-gui-partial.svg +0 -4
  217. package/src/core/icons/icon-gui-plus.svg +0 -3
  218. package/src/core/icons/icon-gui-quote-marks-solid.svg +0 -3
  219. package/src/core/icons/icon-gui-refresh.svg +0 -10
  220. package/src/core/icons/icon-gui-resources.svg +0 -3
  221. package/src/core/icons/icon-gui-search.svg +0 -3
  222. package/src/core/icons/icon-gui-tick.svg +0 -3
  223. package/src/core/icons/icon-gui-warning.svg +0 -5
  224. package/src/core/icons/icon-live-updates-results-metrics-col.svg +0 -26
  225. package/src/core/icons/icon-multi-user-spaces-col.svg +0 -13
  226. package/src/core/icons/icon-social-x.svg +0 -3
  227. package/src/core/icons/icon-tech-apachekafka.svg +0 -3
  228. package/src/core/icons/linkedin.svg +0 -3
  229. package/src/core/icons/quote.svg +0 -3
  230. package/src/core/icons/stackoverflow.svg +0 -3
  231. package/src/core/icons/twitter.svg +0 -3
  232. package/src/core/icons/youtube.svg +0 -11
  233. package/src/core/icons.js +0 -6
  234. package/src/core/images/ably-logo.png +0 -0
  235. package/src/core/images/ably-logo.svg +0 -15
  236. package/src/core/images/ably-stack.svg +0 -14
  237. package/src/core/images/best-support-2023.svg +0 -1
  238. package/src/core/images/cust-logo-ao-col-pos.png +0 -0
  239. package/src/core/images/cust-logo-ao-col-pos@2x.png +0 -0
  240. package/src/core/images/cust-logo-ausopen-col-pos.png +0 -0
  241. package/src/core/images/cust-logo-ausopen-col-pos@2x.png +0 -0
  242. package/src/core/images/cust-logo-ausopen-mono-pos.svg +0 -5
  243. package/src/core/images/cust-logo-bloomberg-mono-pos.svg +0 -11
  244. package/src/core/images/cust-logo-hopin-mono-pos.svg +0 -4
  245. package/src/core/images/cust-logo-hubspot-col-pos.png +0 -0
  246. package/src/core/images/cust-logo-hubspot-col-pos@2x.png +0 -0
  247. package/src/core/images/cust-logo-hubspot-mono-pos.svg +0 -4
  248. package/src/core/images/cust-logo-lightspeed-col-pos.png +0 -0
  249. package/src/core/images/cust-logo-lightspeed-col-pos@2x.png +0 -0
  250. package/src/core/images/cust-logo-lightspeed-syst-col-pos.png +0 -0
  251. package/src/core/images/cust-logo-lightspeed-syst-col-pos@2x.png +0 -0
  252. package/src/core/images/cust-logo-mentimeter-mono-pos.svg +0 -17
  253. package/src/core/images/cust-logo-split-col-pos.png +0 -0
  254. package/src/core/images/cust-logo-split-col-pos@2x.png +0 -0
  255. package/src/core/images/cust-logo-split-mono-pos.svg +0 -9
  256. package/src/core/images/cust-logo-toyota-mono-pos.svg +0 -18
  257. package/src/core/images/cust-logo-vitac-col-pos.png +0 -0
  258. package/src/core/images/cust-logo-vitac-col-pos@2x.png +0 -0
  259. package/src/core/images/cust-logo-webflow-col-pos.svg +0 -3
  260. package/src/core/images/cust-photo-hubspot-max-freiert.jpg +0 -0
  261. package/src/core/images/cust-photo-split-pato-echague.jpg +0 -0
  262. package/src/core/images/cust-photo-vitac-joe-antonio.jpg +0 -0
  263. package/src/core/images/fastest-implementation-2023.svg +0 -1
  264. package/src/core/images/flexible-companies.png +0 -0
  265. package/src/core/images/high-performer-2022.png +0 -0
  266. package/src/core/images/high-performer-2023.svg +0 -1
  267. package/src/core/images/highest-user-adoption-2022.png +0 -0
  268. package/src/core/images/highest-user-adoption-2023.svg +0 -1
  269. package/src/core/images/icon-tech-aws.svg +0 -4
  270. package/src/core/images/rocket-list-2021.png +0 -0
  271. package/src/core/images/scale-motif-open-empathetic.svg +0 -1
  272. package/src/core/images/technical-support-01-800x533.jpg +0 -0
  273. package/src/core/images/users-love-us-2022.png +0 -0
  274. package/src/core/load-sprites.js +0 -11
  275. package/src/core/react-renderer.tsx +0 -29
  276. package/src/core/remote-blogs-posts.js +0 -42
  277. package/src/core/remote-data-store.js +0 -34
  278. package/src/core/remote-data-util.js +0 -4
  279. package/src/core/remote-session-data.js +0 -58
  280. package/src/core/scripts.js +0 -10
  281. package/src/core/styles/Dropdown.stories.tsx +0 -49
  282. package/src/core/styles/Toggle.stories.tsx +0 -41
  283. package/src/core/styles/buttons.css +0 -124
  284. package/src/core/styles/forms.css +0 -83
  285. package/src/core/styles/layout.css +0 -21
  286. package/src/core/styles/properties.css +0 -278
  287. package/src/core/styles/text.css +0 -168
  288. package/src/core/styles/toggles.css +0 -38
  289. package/src/core/styles.base.css +0 -1
  290. package/src/core/styles.components.css +0 -44
  291. package/src/core/styles.css +0 -2
  292. package/src/core/url-base.js +0 -7
  293. package/src/core/utils/syntax-highlighter-registry.js +0 -63
  294. package/src/core/utils/syntax-highlighter.css +0 -71
  295. package/src/core/utils/syntax-highlighter.js +0 -103
  296. package/src/pages/Buttons.mdx +0 -121
  297. package/src/pages/Chips.mdx +0 -136
  298. package/src/pages/Colour.mdx +0 -23
  299. package/src/pages/Forms.mdx +0 -219
  300. package/src/pages/Layout.mdx +0 -58
  301. package/src/pages/Typography.mdx +0 -206
  302. package/src/pages/utils.ts +0 -80
  303. package/src/reset/scripts.js +0 -1
  304. package/src/reset/styles/normalize.css +0 -353
  305. package/src/reset/styles/reset.css +0 -139
  306. 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;