@ably/ui 14.1.0-dev.6699453 → 14.1.0-dev.708de27

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 (311) hide show
  1. package/core/icons/icon-gui-dropdown-arrow.svg +3 -0
  2. package/core/sprites.svg +1 -1
  3. package/core/styles/forms.css +19 -0
  4. package/core/styles.components.css +0 -1
  5. package/package.json +2 -1
  6. package/src/.DS_Store +0 -0
  7. package/src/core/.DS_Store +0 -0
  8. package/src/core/Accordion/.DS_Store +0 -0
  9. package/src/core/Accordion/Accordion.stories.tsx +39 -0
  10. package/src/core/Accordion.tsx +149 -0
  11. package/src/core/Code/.DS_Store +0 -0
  12. package/src/core/Code/Code.stories.tsx +71 -0
  13. package/src/core/Code/component.css +1 -0
  14. package/src/core/Code/component.js +27 -0
  15. package/src/core/Code.tsx +44 -0
  16. package/src/core/ConnectStateWrapper.tsx +43 -0
  17. package/src/core/ContactFooter/.DS_Store +0 -0
  18. package/src/core/ContactFooter/ContactFooter.stories.tsx +11 -0
  19. package/src/core/ContactFooter/component.css +11 -0
  20. package/src/core/ContactFooter/component.js +2 -0
  21. package/src/core/ContactFooter.tsx +91 -0
  22. package/src/core/CookieMessage/.DS_Store +0 -0
  23. package/src/core/CookieMessage/CookieMessage.stories.tsx +12 -0
  24. package/src/core/CookieMessage/component.css +15 -0
  25. package/src/core/CookieMessage.tsx +52 -0
  26. package/src/core/CustomerLogos/.DS_Store +0 -0
  27. package/src/core/CustomerLogos/CustomerLogos.stories.tsx +43 -0
  28. package/src/core/CustomerLogos.tsx +35 -0
  29. package/src/core/DropdownMenu/.DS_Store +0 -0
  30. package/src/core/DropdownMenu/DropdownMenu.stories.tsx +48 -0
  31. package/src/core/DropdownMenu.tsx +140 -0
  32. package/src/core/Expander/Expander.stories.tsx +132 -0
  33. package/src/core/Expander.tsx +63 -0
  34. package/src/core/FeaturedLink/.DS_Store +0 -0
  35. package/src/core/FeaturedLink/FeaturedLink.stories.tsx +43 -0
  36. package/src/core/FeaturedLink.tsx +93 -0
  37. package/src/core/Flash/.DS_Store +0 -0
  38. package/src/core/Flash/Flash.stories.tsx +37 -0
  39. package/src/core/Flash/component.css +28 -0
  40. package/src/core/Flash.tsx +233 -0
  41. package/src/core/Footer/.DS_Store +0 -0
  42. package/src/core/Footer/Footer.stories.tsx +26 -0
  43. package/src/core/Footer/component.css +33 -0
  44. package/src/core/Footer.tsx +535 -0
  45. package/src/core/Icon/.DS_Store +0 -0
  46. package/src/core/Icon/Icon.stories.tsx +151 -0
  47. package/src/core/Icon.tsx +26 -0
  48. package/src/core/Loader/.DS_Store +0 -0
  49. package/src/core/Loader/Loader.stories.tsx +21 -0
  50. package/src/core/Loader.tsx +52 -0
  51. package/src/core/Logo/.DS_Store +0 -0
  52. package/src/core/Logo/Logo.stories.tsx +12 -0
  53. package/src/core/Logo.tsx +29 -0
  54. package/src/core/Meganav/.DS_Store +0 -0
  55. package/src/core/Meganav/Meganav.stories.tsx +86 -0
  56. package/src/core/Meganav/component.css +114 -0
  57. package/src/core/Meganav/component.js +150 -0
  58. package/src/core/Meganav/component.json +37 -0
  59. package/src/core/Meganav.tsx +225 -0
  60. package/src/core/MeganavBlogPostsList/.DS_Store +0 -0
  61. package/src/core/MeganavBlogPostsList/component.js +43 -0
  62. package/src/core/MeganavBlogPostsList.tsx +41 -0
  63. package/src/core/MeganavContentCompany.tsx +166 -0
  64. package/src/core/MeganavContentDevelopers.tsx +210 -0
  65. package/src/core/MeganavContentProducts.tsx +163 -0
  66. package/src/core/MeganavContentUseCases.tsx +244 -0
  67. package/src/core/MeganavControl/.DS_Store +0 -0
  68. package/src/core/MeganavControl/component.js +117 -0
  69. package/src/core/MeganavControl.tsx +39 -0
  70. package/src/core/MeganavControlMobileDropdown/.DS_Store +0 -0
  71. package/src/core/MeganavControlMobileDropdown/component.js +46 -0
  72. package/src/core/MeganavControlMobileDropdown.tsx +31 -0
  73. package/src/core/MeganavControlMobilePanelClose/.DS_Store +0 -0
  74. package/src/core/MeganavControlMobilePanelClose/component.js +36 -0
  75. package/src/core/MeganavControlMobilePanelClose.tsx +34 -0
  76. package/src/core/MeganavControlMobilePanelOpen/.DS_Store +0 -0
  77. package/src/core/MeganavControlMobilePanelOpen/component.js +59 -0
  78. package/src/core/MeganavControlMobilePanelOpen.tsx +31 -0
  79. package/src/core/MeganavItemsDesktop.tsx +68 -0
  80. package/src/core/MeganavItemsMobile.tsx +197 -0
  81. package/src/core/MeganavItemsSignedIn.tsx +130 -0
  82. package/src/core/MeganavSearch.tsx +36 -0
  83. package/src/core/MeganavSearchAutocomplete/.DS_Store +0 -0
  84. package/src/core/MeganavSearchAutocomplete/component.js +177 -0
  85. package/src/core/MeganavSearchAutocomplete.tsx +12 -0
  86. package/src/core/MeganavSearchPanel.tsx +52 -0
  87. package/src/core/MeganavSearchSuggestions/.DS_Store +0 -0
  88. package/src/core/MeganavSearchSuggestions/component.js +133 -0
  89. package/src/core/MeganavSearchSuggestions.tsx +62 -0
  90. package/src/core/Notice/.DS_Store +0 -0
  91. package/src/core/Notice/component.css +7 -0
  92. package/src/core/Notice/component.js +154 -0
  93. package/src/core/Notice.tsx +102 -0
  94. package/src/core/SignOutLink.tsx +51 -0
  95. package/src/core/Slider/.DS_Store +0 -0
  96. package/src/core/Slider/Slider.stories.tsx +98 -0
  97. package/src/core/Slider/component.css +40 -0
  98. package/src/core/Slider/component.js +105 -0
  99. package/src/core/Slider.tsx +224 -0
  100. package/src/core/Table/.DS_Store +0 -0
  101. package/src/core/Table/Table.stories.tsx +12 -0
  102. package/src/core/Table/Table.tsx +58 -0
  103. package/src/core/Table/TableCell.tsx +71 -0
  104. package/src/core/Table/TableRow.tsx +25 -0
  105. package/src/core/Table/data.tsx +133 -0
  106. package/src/core/Table.tsx +15 -0
  107. package/src/core/Tooltip/.DS_Store +0 -0
  108. package/src/core/Tooltip/Tooltip.stories.tsx +27 -0
  109. package/src/core/Tooltip.tsx +88 -0
  110. package/src/core/css.js +3 -0
  111. package/src/core/dom-query.js +5 -0
  112. package/src/core/fonts/NEXT-Book-Light-Italic.eot +0 -0
  113. package/src/core/fonts/NEXT-Book-Light-Italic.otf +0 -0
  114. package/src/core/fonts/NEXT-Book-Light-Italic.woff +0 -0
  115. package/src/core/fonts/NEXT-Book-Light-Italic.woff2 +0 -0
  116. package/src/core/fonts/NEXT-Book-Light.eot +0 -0
  117. package/src/core/fonts/NEXT-Book-Light.otf +0 -0
  118. package/src/core/fonts/NEXT-Book-Light.woff +0 -0
  119. package/src/core/fonts/NEXT-Book-Light.woff2 +0 -0
  120. package/src/core/fonts/NEXT-Book-Medium-Italic.eot +0 -0
  121. package/src/core/fonts/NEXT-Book-Medium-Italic.otf +0 -0
  122. package/src/core/fonts/NEXT-Book-Medium-Italic.woff +0 -0
  123. package/src/core/fonts/NEXT-Book-Medium-Italic.woff2 +0 -0
  124. package/src/core/fonts/NEXT-Book-Medium.eot +0 -0
  125. package/src/core/fonts/NEXT-Book-Medium.otf +0 -0
  126. package/src/core/fonts/NEXT-Book-Medium.woff +0 -0
  127. package/src/core/fonts/NEXT-Book-Medium.woff2 +0 -0
  128. package/src/core/fonts/jetBrains-mono.css +3 -0
  129. package/src/core/fonts/manrope.css +3 -0
  130. package/src/core/fonts/next.css +63 -0
  131. package/src/core/fonts/source-code-pro.css +3 -0
  132. package/src/core/hubspot-chat-toggle.js +67 -0
  133. package/src/core/icons/discord.svg +10 -0
  134. package/src/core/icons/facebook.svg +4 -0
  135. package/src/core/icons/github.svg +3 -0
  136. package/src/core/icons/glassdoor.svg +3 -0
  137. package/src/core/icons/google.svg +3 -0
  138. package/src/core/icons/icon-display-48hrs.svg +3 -0
  139. package/src/core/icons/icon-display-about-ably-col.svg +4 -0
  140. package/src/core/icons/icon-display-api-keys.svg +3 -0
  141. package/src/core/icons/icon-display-api.svg +3 -0
  142. package/src/core/icons/icon-display-asset-tracking-col.svg +18 -0
  143. package/src/core/icons/icon-display-browser.svg +10 -0
  144. package/src/core/icons/icon-display-calendar.svg +3 -0
  145. package/src/core/icons/icon-display-call-mobile.svg +3 -0
  146. package/src/core/icons/icon-display-careers-col.svg +9 -0
  147. package/src/core/icons/icon-display-case-studies-col.svg +5 -0
  148. package/src/core/icons/icon-display-chat-col.svg +4 -0
  149. package/src/core/icons/icon-display-chat-stack-col.svg +4 -0
  150. package/src/core/icons/icon-display-chat-stack.svg +4 -0
  151. package/src/core/icons/icon-display-cloud-servers.svg +3 -0
  152. package/src/core/icons/icon-display-compare-tech-col.svg +9 -0
  153. package/src/core/icons/icon-display-customers-col.svg +15 -0
  154. package/src/core/icons/icon-display-data-broadcast-col.svg +26 -0
  155. package/src/core/icons/icon-display-data-synchronization-col.svg +14 -0
  156. package/src/core/icons/icon-display-docs-col.svg +7 -0
  157. package/src/core/icons/icon-display-documentation.svg +3 -0
  158. package/src/core/icons/icon-display-events-col.svg +13 -0
  159. package/src/core/icons/icon-display-examples-col.svg +11 -0
  160. package/src/core/icons/icon-display-gdpr.svg +3 -0
  161. package/src/core/icons/icon-display-general-comms.svg +3 -0
  162. package/src/core/icons/icon-display-hipaa.svg +10 -0
  163. package/src/core/icons/icon-display-integrations-col.svg +8 -0
  164. package/src/core/icons/icon-display-it-support-access.svg +3 -0
  165. package/src/core/icons/icon-display-it-support-helpdesk.svg +3 -0
  166. package/src/core/icons/icon-display-kafka-at-the-edge-col.svg +8 -0
  167. package/src/core/icons/icon-display-laptop.svg +10 -0
  168. package/src/core/icons/icon-display-lightbulb-col.svg +10 -0
  169. package/src/core/icons/icon-display-live-chat.svg +3 -0
  170. package/src/core/icons/icon-display-map-pin.svg +3 -0
  171. package/src/core/icons/icon-display-message.svg +3 -0
  172. package/src/core/icons/icon-display-padlock-closed.svg +3 -0
  173. package/src/core/icons/icon-display-platform.svg +22 -0
  174. package/src/core/icons/icon-display-play.svg +3 -0
  175. package/src/core/icons/icon-display-privacy-shield-framework.svg +7 -0
  176. package/src/core/icons/icon-display-push-notifications-col.svg +6 -0
  177. package/src/core/icons/icon-display-quickstart-guides-col.svg +8 -0
  178. package/src/core/icons/icon-display-resources-col.svg +21 -0
  179. package/src/core/icons/icon-display-sdks-col.svg +11 -0
  180. package/src/core/icons/icon-display-servers.svg +3 -0
  181. package/src/core/icons/icon-display-shopping-cart.svg +10 -0
  182. package/src/core/icons/icon-display-sla.svg +3 -0
  183. package/src/core/icons/icon-display-soc2-type2.svg +3 -0
  184. package/src/core/icons/icon-display-tech-account-comms.svg +3 -0
  185. package/src/core/icons/icon-display-tutorials-demos-col.svg +25 -0
  186. package/src/core/icons/icon-display-virtual-events-col.svg +12 -0
  187. package/src/core/icons/icon-display-virtual-events.svg +12 -0
  188. package/src/core/icons/icon-gui-ably-badge.svg +3 -0
  189. package/src/core/icons/icon-gui-arrow-bidirectional-horizontal.svg +3 -0
  190. package/src/core/icons/icon-gui-arrow-bidirectional-vertical.svg +3 -0
  191. package/src/core/icons/icon-gui-arrow-down.svg +3 -0
  192. package/src/core/icons/icon-gui-arrow-left.svg +3 -0
  193. package/src/core/icons/icon-gui-arrow-right.svg +3 -0
  194. package/src/core/icons/icon-gui-arrow-up.svg +3 -0
  195. package/src/core/icons/icon-gui-burger-menu.svg +5 -0
  196. package/src/core/icons/icon-gui-check-circled-fill-black.svg +4 -0
  197. package/src/core/icons/icon-gui-check-circled-fill.svg +4 -0
  198. package/src/core/icons/icon-gui-check-circled.svg +3 -0
  199. package/src/core/icons/icon-gui-checklist-checked.svg +3 -0
  200. package/src/core/icons/icon-gui-clock.svg +3 -0
  201. package/src/core/icons/icon-gui-close.svg +3 -0
  202. package/src/core/icons/icon-gui-copy.svg +10 -0
  203. package/src/core/icons/icon-gui-cross-circled-fill.svg +4 -0
  204. package/src/core/icons/icon-gui-cross-circled.svg +3 -0
  205. package/src/core/icons/icon-gui-dash-circled.svg +3 -0
  206. package/src/core/icons/icon-gui-disclosure-arrow.svg +3 -0
  207. package/src/core/icons/icon-gui-document-generic.svg +3 -0
  208. package/src/core/icons/icon-gui-dropdown-arrow.svg +3 -0
  209. package/src/core/icons/icon-gui-enlarge.svg +3 -0
  210. package/src/core/icons/icon-gui-external-link.svg +3 -0
  211. package/src/core/icons/icon-gui-filter-flow-step-1.svg +5 -0
  212. package/src/core/icons/icon-gui-filter-flow-step-2.svg +5 -0
  213. package/src/core/icons/icon-gui-filter-flow-step-3.svg +5 -0
  214. package/src/core/icons/icon-gui-history.svg +3 -0
  215. package/src/core/icons/icon-gui-info.svg +3 -0
  216. package/src/core/icons/icon-gui-link-arrow.svg +3 -0
  217. package/src/core/icons/icon-gui-link.svg +4 -0
  218. package/src/core/icons/icon-gui-live-chat.svg +3 -0
  219. package/src/core/icons/icon-gui-minus.svg +3 -0
  220. package/src/core/icons/icon-gui-partial.svg +4 -0
  221. package/src/core/icons/icon-gui-plus.svg +3 -0
  222. package/src/core/icons/icon-gui-quote-marks-solid.svg +3 -0
  223. package/src/core/icons/icon-gui-refresh.svg +10 -0
  224. package/src/core/icons/icon-gui-resources.svg +3 -0
  225. package/src/core/icons/icon-gui-search.svg +3 -0
  226. package/src/core/icons/icon-gui-tick.svg +3 -0
  227. package/src/core/icons/icon-gui-warning.svg +5 -0
  228. package/src/core/icons/icon-live-updates-results-metrics-col.svg +26 -0
  229. package/src/core/icons/icon-multi-user-spaces-col.svg +13 -0
  230. package/src/core/icons/icon-social-x.svg +3 -0
  231. package/src/core/icons/icon-tech-apachekafka.svg +3 -0
  232. package/src/core/icons/linkedin.svg +3 -0
  233. package/src/core/icons/quote.svg +3 -0
  234. package/src/core/icons/stackoverflow.svg +3 -0
  235. package/src/core/icons/twitter.svg +3 -0
  236. package/src/core/icons/youtube.svg +11 -0
  237. package/src/core/icons.js +6 -0
  238. package/src/core/images/ably-logo.png +0 -0
  239. package/src/core/images/ably-logo.svg +15 -0
  240. package/src/core/images/ably-stack.svg +14 -0
  241. package/src/core/images/best-support-2023.svg +1 -0
  242. package/src/core/images/cust-logo-ao-col-pos.png +0 -0
  243. package/src/core/images/cust-logo-ao-col-pos@2x.png +0 -0
  244. package/src/core/images/cust-logo-ausopen-col-pos.png +0 -0
  245. package/src/core/images/cust-logo-ausopen-col-pos@2x.png +0 -0
  246. package/src/core/images/cust-logo-ausopen-mono-pos.svg +5 -0
  247. package/src/core/images/cust-logo-bloomberg-mono-pos.svg +11 -0
  248. package/src/core/images/cust-logo-hopin-mono-pos.svg +4 -0
  249. package/src/core/images/cust-logo-hubspot-col-pos.png +0 -0
  250. package/src/core/images/cust-logo-hubspot-col-pos@2x.png +0 -0
  251. package/src/core/images/cust-logo-hubspot-mono-pos.svg +4 -0
  252. package/src/core/images/cust-logo-lightspeed-col-pos.png +0 -0
  253. package/src/core/images/cust-logo-lightspeed-col-pos@2x.png +0 -0
  254. package/src/core/images/cust-logo-lightspeed-syst-col-pos.png +0 -0
  255. package/src/core/images/cust-logo-lightspeed-syst-col-pos@2x.png +0 -0
  256. package/src/core/images/cust-logo-mentimeter-mono-pos.svg +17 -0
  257. package/src/core/images/cust-logo-split-col-pos.png +0 -0
  258. package/src/core/images/cust-logo-split-col-pos@2x.png +0 -0
  259. package/src/core/images/cust-logo-split-mono-pos.svg +9 -0
  260. package/src/core/images/cust-logo-toyota-mono-pos.svg +18 -0
  261. package/src/core/images/cust-logo-vitac-col-pos.png +0 -0
  262. package/src/core/images/cust-logo-vitac-col-pos@2x.png +0 -0
  263. package/src/core/images/cust-logo-webflow-col-pos.svg +3 -0
  264. package/src/core/images/cust-photo-hubspot-max-freiert.jpg +0 -0
  265. package/src/core/images/cust-photo-split-pato-echague.jpg +0 -0
  266. package/src/core/images/cust-photo-vitac-joe-antonio.jpg +0 -0
  267. package/src/core/images/fastest-implementation-2023.svg +1 -0
  268. package/src/core/images/flexible-companies.png +0 -0
  269. package/src/core/images/high-performer-2022.png +0 -0
  270. package/src/core/images/high-performer-2023.svg +1 -0
  271. package/src/core/images/highest-user-adoption-2022.png +0 -0
  272. package/src/core/images/highest-user-adoption-2023.svg +1 -0
  273. package/src/core/images/icon-tech-aws.svg +4 -0
  274. package/src/core/images/rocket-list-2021.png +0 -0
  275. package/src/core/images/scale-motif-open-empathetic.svg +1 -0
  276. package/src/core/images/technical-support-01-800x533.jpg +0 -0
  277. package/src/core/images/users-love-us-2022.png +0 -0
  278. package/src/core/load-sprites.js +11 -0
  279. package/src/core/react-renderer.tsx +29 -0
  280. package/src/core/remote-blogs-posts.js +42 -0
  281. package/src/core/remote-data-store.js +34 -0
  282. package/src/core/remote-data-util.js +4 -0
  283. package/src/core/remote-session-data.js +58 -0
  284. package/src/core/scripts.js +10 -0
  285. package/src/core/styles/Dropdown.stories.tsx +49 -0
  286. package/src/core/styles/Toggle.stories.tsx +41 -0
  287. package/src/core/styles/buttons.css +124 -0
  288. package/src/core/styles/forms.css +83 -0
  289. package/src/core/styles/layout.css +21 -0
  290. package/src/core/styles/properties.css +278 -0
  291. package/src/core/styles/text.css +168 -0
  292. package/src/core/styles/toggles.css +38 -0
  293. package/src/core/styles.base.css +1 -0
  294. package/src/core/styles.components.css +44 -0
  295. package/src/core/styles.css +2 -0
  296. package/src/core/url-base.js +7 -0
  297. package/src/core/utils/syntax-highlighter-registry.js +63 -0
  298. package/src/core/utils/syntax-highlighter.css +71 -0
  299. package/src/core/utils/syntax-highlighter.js +103 -0
  300. package/src/pages/Buttons.mdx +121 -0
  301. package/src/pages/Chips.mdx +136 -0
  302. package/src/pages/Colour.mdx +23 -0
  303. package/src/pages/Forms.mdx +219 -0
  304. package/src/pages/Layout.mdx +58 -0
  305. package/src/pages/Typography.mdx +206 -0
  306. package/src/pages/utils.ts +80 -0
  307. package/src/reset/scripts.js +1 -0
  308. package/src/reset/styles/normalize.css +353 -0
  309. package/src/reset/styles/reset.css +139 -0
  310. package/src/reset/styles.css +2 -0
  311. package/core/styles/dropdowns.css +0 -41
@@ -0,0 +1,535 @@
1
+ import React from "react";
2
+
3
+ import Icon from "./Icon";
4
+ import _absUrl from "./url-base.js";
5
+
6
+ type FooterProps = {
7
+ paths: {
8
+ ablyStack: string;
9
+ highestPerformer: string;
10
+ highestUserAdoption: string;
11
+ bestSupport: string;
12
+ fastestImplementation: string;
13
+ };
14
+ urlBase: string;
15
+ };
16
+
17
+ const Footer = ({ paths, urlBase }: FooterProps) => {
18
+ const absUrl = (path) => _absUrl(path, urlBase);
19
+
20
+ return (
21
+ <footer
22
+ className="bg-light-grey font-sans antialiased leading-normal"
23
+ data-id="footer"
24
+ >
25
+ <div className="max-w-screen-xl mx-auto py-32 sm:py-40 md:py-64 ui-grid-gap ui-grid-px grid grid-cols-6">
26
+ <div className="col-span-full md:col-span-2">
27
+ <div className="flex flex-row p-menu-row-snug">
28
+ <img
29
+ className="mr-24 -mt-16"
30
+ src={paths.ablyStack}
31
+ alt="Ably homepage"
32
+ />
33
+ <h2 className="ui-text-overline2 col-span-full">
34
+ The Ably Platform
35
+ </h2>
36
+ </div>
37
+ <div className="md:col-span-4 md:w-3/4 xs:w-3/5 w-full">
38
+ <p className="ui-text-p3 font-bold py-16 p-menu-row-snug">
39
+ Easily power any realtime experience in your application via a
40
+ simple API that handles everything realtime.
41
+ </p>
42
+ </div>
43
+
44
+ <ul className="grid grid-cols-1">
45
+ <li className="p-menu-row-snug">
46
+ <a
47
+ href={absUrl("/solutions/channels")}
48
+ className="ui-footer-menu-row-link"
49
+ >
50
+ Pub/sub messaging
51
+ </a>
52
+ </li>
53
+ <li className="p-menu-row-snug">
54
+ <a
55
+ href={absUrl("/push-notifications")}
56
+ className="ui-footer-menu-row-link"
57
+ >
58
+ Push notifications
59
+ </a>
60
+ </li>
61
+ <li className="p-menu-row-snug">
62
+ <a
63
+ href={absUrl("/integrations")}
64
+ className="ui-footer-menu-row-link"
65
+ >
66
+ Third-party integrations
67
+ </a>
68
+ </li>
69
+ <li className="p-menu-row-snug">
70
+ <a
71
+ href={absUrl("/protocols")}
72
+ className="ui-footer-menu-row-link"
73
+ >
74
+ Multiple protocol messaging
75
+ </a>
76
+ </li>
77
+ </ul>
78
+ </div>
79
+
80
+ <div className="col-span-full xs:col-span-3 md:col-span-1">
81
+ <h2 className="ui-footer-col-title">Ably is for</h2>
82
+ <ul>
83
+ <li className="p-menu-row-snug">
84
+ <a
85
+ href={absUrl("/solutions/asset-tracking")}
86
+ className="ui-footer-menu-row-link"
87
+ >
88
+ Ably Asset Tracking
89
+ </a>
90
+ </li>
91
+ <li className="p-menu-row-snug">
92
+ <a
93
+ href={absUrl("/solutions/extend-kafka-to-the-edge")}
94
+ className="ui-footer-menu-row-link"
95
+ >
96
+ Extend Kafka to the edge
97
+ </a>
98
+ </li>
99
+ <li className="p-menu-row-snug">
100
+ <a
101
+ href={absUrl("/solutions/edtech")}
102
+ className="ui-footer-menu-row-link"
103
+ >
104
+ EdTech
105
+ </a>
106
+ </li>
107
+ <li className="p-menu-row-snug">
108
+ <a
109
+ href={absUrl("/solutions/automotive-logistics-and-mobility")}
110
+ className="ui-footer-menu-row-link"
111
+ >
112
+ Automotive, Logistics, &amp; Mobility
113
+ </a>
114
+ </li>
115
+ <li className="p-menu-row-snug">
116
+ <a
117
+ href={absUrl("/solutions/b2b-platforms")}
118
+ className="ui-footer-menu-row-link"
119
+ >
120
+ B2B Platforms
121
+ </a>
122
+ </li>
123
+ <li className="p-menu-row-snug">
124
+ <a
125
+ href={absUrl("/solutions/healthcare")}
126
+ className="ui-footer-menu-row-link"
127
+ >
128
+ Healthcare
129
+ </a>
130
+ </li>
131
+ <li className="p-menu-row-snug">
132
+ <a
133
+ href={absUrl("/solutions/ecommerce-and-retail")}
134
+ className="ui-footer-menu-row-link"
135
+ >
136
+ eCommerce &amp; Retail
137
+ </a>
138
+ </li>
139
+ <li className="p-menu-row-snug">
140
+ <a
141
+ href={absUrl("/solutions/sports-and-media")}
142
+ className="ui-footer-menu-row-link"
143
+ >
144
+ Sports &amp; Media
145
+ </a>
146
+ </li>
147
+ <li className="p-menu-row-snug">
148
+ <a
149
+ href={absUrl("/solutions/gaming")}
150
+ className="ui-footer-menu-row-link"
151
+ >
152
+ Gaming
153
+ </a>
154
+ </li>
155
+ <li className="p-menu-row-snug">
156
+ <a
157
+ href={absUrl("/solutions/iot-and-connected-devices")}
158
+ className="ui-footer-menu-row-link"
159
+ >
160
+ IoT &amp; Connected Devices
161
+ </a>
162
+ </li>
163
+ </ul>
164
+ </div>
165
+
166
+ <div className="col-span-full xs:col-span-3 md:col-span-1">
167
+ <h2 className="ui-footer-col-title">Developers</h2>
168
+ <ul>
169
+ <li className="p-menu-row-snug">
170
+ <a
171
+ href={absUrl("/docs/quick-start-guide")}
172
+ className="ui-footer-menu-row-link"
173
+ >
174
+ Start in 5 minutes
175
+ </a>
176
+ </li>
177
+ <li className="p-menu-row-snug">
178
+ <a href={absUrl("/docs/")} className="ui-footer-menu-row-link">
179
+ Documentation
180
+ </a>
181
+ </li>
182
+ <li className="p-menu-row-snug">
183
+ <a
184
+ href={absUrl("/tutorials")}
185
+ className="ui-footer-menu-row-link"
186
+ >
187
+ Tutorials
188
+ </a>
189
+ </li>
190
+ <li className="p-menu-row-snug">
191
+ <a
192
+ href="https://changelog.ably.com/"
193
+ className="ui-footer-menu-row-link"
194
+ >
195
+ Changelog
196
+ </a>
197
+ </li>
198
+ <li className="p-menu-row-snug">
199
+ <a href={absUrl("/support")} className="ui-footer-menu-row-link">
200
+ Support &amp; FAQs
201
+ </a>
202
+ </li>
203
+ <li className="p-menu-row-snug">
204
+ <a
205
+ href={absUrl("/docs/sdks")}
206
+ className="ui-footer-menu-row-link"
207
+ >
208
+ SDKs
209
+ </a>
210
+ </li>
211
+ <li className="p-menu-row-snug flex items-center -mt-4">
212
+ <a
213
+ className="pr-8 ui-footer-menu-row-link"
214
+ href="https://status.ably.com/"
215
+ >
216
+ System status
217
+ </a>
218
+ <iframe
219
+ className="w-20 h-20 mb-2"
220
+ src="https://status.ably.com/embed/icon"
221
+ style={{ backgroundColor: "transparent" }}
222
+ frameBorder="0"
223
+ scrolling="no"
224
+ title="System Status"
225
+ ></iframe>
226
+ </li>
227
+ </ul>
228
+ </div>
229
+
230
+ <div className="col-span-full xs:col-span-3 md:col-span-1">
231
+ <h2 className="ui-footer-col-title">WHY ABLY</h2>
232
+ <ul>
233
+ <li className="p-menu-row-snug">
234
+ <a
235
+ href={absUrl("/customers")}
236
+ className="ui-footer-menu-row-link"
237
+ >
238
+ Customers
239
+ </a>
240
+ </li>
241
+ <li className="p-menu-row-snug">
242
+ <a
243
+ href={absUrl("/case-studies")}
244
+ className="ui-footer-menu-row-link"
245
+ >
246
+ Case Studies
247
+ </a>
248
+ </li>
249
+ <li className="p-menu-row-snug">
250
+ <a
251
+ href={absUrl("/four-pillars-of-dependability")}
252
+ className="ui-footer-menu-row-link"
253
+ >
254
+ Four Pillars of Dependability
255
+ </a>
256
+ </li>
257
+ <li className="p-menu-row-snug">
258
+ <a href={absUrl("/compare")} className="ui-footer-menu-row-link">
259
+ Compare our tech
260
+ </a>
261
+ </li>
262
+ <li className="p-menu-row-snug">
263
+ <a
264
+ href={absUrl("/protocols")}
265
+ className="ui-footer-menu-row-link"
266
+ >
267
+ Multi protocol support
268
+ </a>
269
+ </li>
270
+ <li className="p-menu-row-snug">
271
+ <a
272
+ href={absUrl("/integrations")}
273
+ className="ui-footer-menu-row-link"
274
+ >
275
+ Third-party integrations
276
+ </a>
277
+ </li>
278
+ </ul>
279
+ </div>
280
+
281
+ <div className="col-span-full xs:col-span-3 md:col-span-1">
282
+ <h2 className="ui-footer-col-title">ABOUT</h2>
283
+ <ul>
284
+ <li className="p-menu-row-snug">
285
+ <a href={absUrl("/about")} className="ui-footer-menu-row-link">
286
+ About Ably
287
+ </a>
288
+ </li>
289
+ <li className="p-menu-row-snug">
290
+ <a href={absUrl("/pricing")} className="ui-footer-menu-row-link">
291
+ Pricing
292
+ </a>
293
+ </li>
294
+ <li className="p-menu-row-snug">
295
+ <a href={absUrl("/blog")} className="ui-footer-menu-row-link">
296
+ Blog
297
+ </a>
298
+ </li>
299
+ <li className="p-menu-row-snug">
300
+ <a href={absUrl("/careers")} className="ui-footer-menu-row-link">
301
+ Careers
302
+ </a>
303
+ </li>
304
+ <li className="p-menu-row-snug">
305
+ <a
306
+ href={absUrl("/open-policy")}
307
+ className="ui-footer-menu-row-link"
308
+ >
309
+ Open protocol policy
310
+ </a>
311
+ </li>
312
+ <li className="p-menu-row-snug">
313
+ <a
314
+ href={absUrl("/press-center")}
315
+ className="ui-footer-menu-row-link"
316
+ >
317
+ Press & Media
318
+ </a>
319
+ </li>
320
+ <li className="p-menu-row-snug">
321
+ <a href={absUrl("/contact")} className="ui-footer-menu-row-link">
322
+ Contact us
323
+ </a>
324
+ </li>
325
+ </ul>
326
+ </div>
327
+ </div>
328
+ <div className="max-w-screen-xl ui-grid-px mx-auto">
329
+ <hr className="border-t border-mid-grey my-0" />
330
+ </div>
331
+ {/* Twitter + Glassdoor SM & above + Glassdoor XS + Badges*/}
332
+ <div className="max-w-screen-xl mx-auto py-16 grid ui-grid-gap ui-grid-px sm:grid-cols-2">
333
+ <div className="md:flex md:items-center">
334
+ <div className="flex flex-col md:flex-row flex-auto ml-8 sm:col-span-1 md:col-span-2">
335
+ <div className="">
336
+ <div className="flex pb-24">
337
+ <a
338
+ className="h-24 pr-24 text-cool-black hover:text-icon-twitter"
339
+ href="https://twitter.com/ablyrealtime"
340
+ title="Ably on X"
341
+ >
342
+ <Icon name="icon-social-x" size="1.5rem" />
343
+ </a>
344
+ <a
345
+ className="h-24 pr-24 text-cool-black hover:text-icon-linkedin"
346
+ href="https://www.linkedin.com/company/ably-realtime"
347
+ title="Ably on LinkedIn"
348
+ >
349
+ <Icon name="linkedin" size="1.5rem" />
350
+ </a>
351
+ <a
352
+ className="h-24 pr-24 text-cool-black hover:text-icon-github"
353
+ href="https://github.com/ably/"
354
+ title="Ably on Github"
355
+ >
356
+ <Icon name="github" size="1.5rem" />
357
+ </a>
358
+ <a
359
+ className="h-24 pr-24 text-cool-black hover:text-icon-discord"
360
+ href="https://discord.gg/jwBPhEZ9g5"
361
+ title="Ably on Discord"
362
+ >
363
+ <Icon name="discord" size="1.5rem" />
364
+ </a>
365
+ </div>
366
+ </div>
367
+ {/* GLASSDOOR on SM and Above */}
368
+ <div className="xs:hidden sm:block ui-footer-glassdoor">
369
+ <div className="flex sm:pt-24 md:pt-0 sm:border-t sm:border-l-0 md:border-t-0 md:border-l sm:border-mid-grey sm:w-3/4 md:w-full md:pl-24">
370
+ <a
371
+ href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm"
372
+ className="h-24 text-cool-black hover:text-icon-glassdoor"
373
+ title="Ably reviews on glassdoor"
374
+ >
375
+ <Icon name="glassdoor" size="1.5rem" />
376
+ </a>
377
+ <div className="pl-16 text-menu3 font-sans font-medium">
378
+ <strong className="block font-medium">
379
+ We&apos;re hiring!
380
+ </strong>
381
+ <a
382
+ href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm"
383
+ className="ui-footer-link"
384
+ >
385
+ Learn more at Glassdoor
386
+ </a>
387
+ </div>
388
+ </div>
389
+ </div>
390
+ </div>
391
+ {/* GlassDoor on XS ONLY */}
392
+ <div className="xs:block sm:hidden">
393
+ <div className="border-t border-mid-grey w-full"></div>
394
+ <div className="flex py-24">
395
+ <a
396
+ className="h-24 pr-16 text-cool-black hover:text-icon-glassdoor"
397
+ href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm"
398
+ title="Ably reviews on glassdoor"
399
+ >
400
+ <Icon name="glassdoor" size="1.5rem" />
401
+ </a>
402
+ <div className="text-menu3 font-sans font-medium">
403
+ <strong className="block font-medium">
404
+ We&apos;re hiring!
405
+ </strong>
406
+ <a
407
+ href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm"
408
+ className="ui-footer-link"
409
+ >
410
+ Learn more at Glassdoor
411
+ </a>
412
+ </div>
413
+ </div>
414
+ </div>
415
+ </div>
416
+
417
+ <div className="col-span-full sm:col-span-1 inline-flex sm:ml-auto sm:items-center">
418
+ <img
419
+ className="mr-24 h-80"
420
+ src={paths.highestUserAdoption}
421
+ alt="Highest User Adoption 2023"
422
+ />
423
+ <img
424
+ className="mr-24 h-80"
425
+ src={paths.bestSupport}
426
+ alt="Best Support 2023"
427
+ />
428
+ <img
429
+ className="mr-24 h-80"
430
+ src={paths.fastestImplementation}
431
+ alt="Fastest Implementation 2023"
432
+ />
433
+ <img
434
+ className="mr-24 h-80"
435
+ src={paths.highestPerformer}
436
+ alt="High Performer 2023"
437
+ />
438
+ </div>
439
+ </div>
440
+
441
+ <div className="max-w-screen-xl ui-grid-px mx-auto">
442
+ <hr className="border-t border-mid-grey my-0" />
443
+ </div>
444
+ <div className="max-w-screen-xl mx-auto py-24 sm:py-40 md:py-32 md:grid md:grid-cols-2 ui-grid-gap ui-grid-px">
445
+ <div className="flex ml-8 col-span-full sm:col-span-1 md:pb-16 items-center ui-footer-bottom-links">
446
+ <div className="flex">
447
+ <a href={absUrl("/privacy")} className="pr-24 ui-footer-link">
448
+ Cookies
449
+ </a>
450
+ <a href={absUrl("/legals")} className="pr-24 ui-footer-link">
451
+ Legals
452
+ </a>
453
+ <a
454
+ href={absUrl("/data-protection")}
455
+ className="pr-24 ui-footer-link"
456
+ >
457
+ Data Protection
458
+ </a>
459
+ <a href={absUrl("/privacy")} className="ui-footer-link">
460
+ Privacy
461
+ </a>
462
+ </div>
463
+ </div>
464
+ <div className="xs:grid xs:grid-cols-2 sm:grid-cols-4 xs:pl-16 sm:pl-8 md:justify-items-end">
465
+ <div className="flex mr-24">
466
+ <Icon
467
+ name="icon-gui-tick"
468
+ color="text-active-orange"
469
+ size="1.5rem"
470
+ additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon"
471
+ />
472
+ <div>
473
+ <p className="ui-footer-compliance-text font-bold whitespace-nowrap">
474
+ SOC 2 Type 2
475
+ </p>
476
+ <p className="ui-footer-compliance-text font-medium mb-24">
477
+ Certified
478
+ </p>
479
+ </div>
480
+ </div>
481
+ <div className="flex mr-24 md:col-start-2">
482
+ <Icon
483
+ name="icon-gui-tick"
484
+ color="text-active-orange"
485
+ size="1.5rem"
486
+ additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon"
487
+ />
488
+ <div>
489
+ <p className="ui-footer-compliance-text font-bold whitespace-nowrap">
490
+ HIPAA
491
+ </p>
492
+ <p className="ui-footer-compliance-text font-medium mb-24">
493
+ Compliant
494
+ </p>
495
+ </div>
496
+ </div>
497
+ <div className="flex mr-24 md:col-start-3">
498
+ <Icon
499
+ name="icon-gui-tick"
500
+ color="text-active-orange"
501
+ size="1.5rem"
502
+ additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon"
503
+ />
504
+ <div>
505
+ <p className="ui-footer-compliance-text font-bold whitespace-nowrap">
506
+ EU GDPR
507
+ </p>
508
+ <p className="ui-footer-compliance-text font-medium mb-24">
509
+ Certified
510
+ </p>
511
+ </div>
512
+ </div>
513
+ <div className="flex mr-24 md:col-start-4">
514
+ <Icon
515
+ name="icon-gui-tick"
516
+ color="text-active-orange"
517
+ size="1.5rem"
518
+ additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon"
519
+ />
520
+ <div>
521
+ <p className="ui-footer-compliance-text font-bold whitespace-nowrap">
522
+ 256-bit AES
523
+ </p>
524
+ <p className="ui-footer-compliance-text font-medium mb-24">
525
+ Encryption
526
+ </p>
527
+ </div>
528
+ </div>
529
+ </div>
530
+ </div>
531
+ </footer>
532
+ );
533
+ };
534
+
535
+ export default Footer;
Binary file
@@ -0,0 +1,151 @@
1
+ import React from "react";
2
+ import Icon from "../Icon";
3
+
4
+ export default {
5
+ title: "JS Components/Icon",
6
+ component: Icon,
7
+ parameters: {
8
+ layout: "fullscreen",
9
+ },
10
+ tags: ["autodocs"],
11
+ };
12
+
13
+ const coreIcons = [
14
+ "icon-gui-ably-badge",
15
+ "icon-gui-arrow-bidirectional-horizontal",
16
+ "icon-gui-arrow-bidirectional-vertical",
17
+ "icon-gui-arrow-down",
18
+ "icon-gui-arrow-left",
19
+ "icon-gui-arrow-right",
20
+ "icon-gui-arrow-up",
21
+ "icon-gui-burger-menu",
22
+ "icon-gui-check-circled-fill",
23
+ "icon-gui-check-circled-fill-black",
24
+ "icon-gui-check-circled",
25
+ "icon-gui-checklist-checked",
26
+ "icon-gui-clock",
27
+ "icon-gui-close",
28
+ "icon-gui-cross-circled-fill",
29
+ "icon-gui-cross-circled",
30
+ "icon-gui-copy",
31
+ "icon-gui-dash-circled",
32
+ "icon-gui-disclosure-arrow",
33
+ "icon-gui-document-generic",
34
+ "icon-gui-enlarge",
35
+ "icon-gui-external-link",
36
+ "icon-gui-history",
37
+ "icon-gui-info",
38
+ "icon-gui-link-arrow",
39
+ "icon-gui-live-chat",
40
+ "icon-gui-minus",
41
+ "icon-gui-partial",
42
+ "icon-gui-plus",
43
+ "icon-gui-quote-marks-solid",
44
+ "icon-gui-refresh",
45
+ "icon-gui-search",
46
+ "icon-gui-tick",
47
+ "icon-gui-warning",
48
+ "icon-gui-link",
49
+ "icon-gui-filter-flow-step-1",
50
+ "icon-gui-filter-flow-step-2",
51
+ "icon-gui-filter-flow-step-3",
52
+ "icon-gui-resources",
53
+ ];
54
+
55
+ const displayIcons = [
56
+ "icon-display-48hrs",
57
+ "icon-display-about-ably-col",
58
+ "icon-display-api",
59
+ "icon-display-api-keys",
60
+ "icon-display-asset-tracking-col",
61
+ "icon-display-browser",
62
+ "icon-display-calendar",
63
+ "icon-display-call-mobile",
64
+ "icon-display-careers-col",
65
+ "icon-display-case-studies-col",
66
+ "icon-display-chat-stack-col",
67
+ "icon-display-cloud-servers",
68
+ "icon-display-compare-tech-col",
69
+ "icon-display-customers-col",
70
+ "icon-display-docs-col",
71
+ "icon-display-documentation",
72
+ "icon-display-examples-col",
73
+ "icon-display-gdpr",
74
+ "icon-display-general-comms",
75
+ "icon-display-hipaa",
76
+ "icon-display-it-support-access",
77
+ "icon-display-it-support-helpdesk",
78
+ "icon-display-laptop",
79
+ "icon-display-lightbulb-col",
80
+ "icon-display-live-chat",
81
+ "icon-display-map-pin",
82
+ "icon-display-message",
83
+ "icon-display-padlock-closed",
84
+ "icon-display-platform",
85
+ "icon-display-play",
86
+ "icon-display-privacy-shield-framework",
87
+ "icon-display-quickstart-guides-col",
88
+ "icon-display-resources-col",
89
+ "icon-display-sdks-col",
90
+ "icon-display-servers",
91
+ "icon-display-shopping-cart",
92
+ "icon-display-sla",
93
+ "icon-display-chat-col",
94
+ "icon-display-soc2-type2",
95
+ "icon-display-tech-account-comms",
96
+ "icon-display-tutorials-demos-col",
97
+ "icon-display-integrations-col",
98
+ "icon-display-virtual-events-col",
99
+ "icon-live-updates-results-metrics-col",
100
+ "icon-multi-user-spaces-col",
101
+ ];
102
+
103
+ const socialIcons = [
104
+ "discord",
105
+ "facebook",
106
+ "github",
107
+ "glassdoor",
108
+ "linkedin",
109
+ "twitter",
110
+ "google",
111
+ "stackoverflow",
112
+ "youtube",
113
+ ];
114
+
115
+ const otherIcons = ["quote"];
116
+
117
+ const renderIcons = (iconSet: string[]) => (
118
+ <div className="grid grid-cols-4 ui-grid-gap max-w-screen-lg mb-64">
119
+ {iconSet.map((icon: string) => (
120
+ <div className="border p-16" key={icon}>
121
+ <code className="ui-text-code mb-8 block">{icon}</code>
122
+ <div className="border inline-flex flex-0">
123
+ <div className="flex pi-checkered-bg">
124
+ <Icon
125
+ name={icon}
126
+ additionalCSS="hover:text-active-orange"
127
+ color="text-cool-black"
128
+ size="1.5rem"
129
+ />
130
+ </div>
131
+ </div>
132
+ </div>
133
+ ))}
134
+ </div>
135
+ );
136
+
137
+ export const GUIIcons = {
138
+ render: () => renderIcons(coreIcons),
139
+ };
140
+
141
+ export const DisplayIcons = {
142
+ render: () => renderIcons(displayIcons),
143
+ };
144
+
145
+ export const SocialIcons = {
146
+ render: () => renderIcons(socialIcons),
147
+ };
148
+
149
+ export const Other = {
150
+ render: () => renderIcons(otherIcons),
151
+ };