@ably/ui 13.3.0 → 14.0.0-dev.1939f45

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 (501) hide show
  1. package/README.md +26 -155
  2. package/core/.DS_Store +0 -0
  3. package/core/Accordion/.DS_Store +0 -0
  4. package/core/Accordion.js +1 -0
  5. package/core/Code/.DS_Store +0 -0
  6. package/core/Code/component.css +1 -72
  7. package/core/Code/component.js +1 -1
  8. package/core/Code.js +1 -0
  9. package/core/ConnectStateWrapper.js +1 -0
  10. package/core/ContactFooter/.DS_Store +0 -0
  11. package/core/ContactFooter/component.css +0 -1
  12. package/core/ContactFooter/component.js +1 -1
  13. package/core/ContactFooter.js +1 -0
  14. package/core/CookieMessage/.DS_Store +0 -0
  15. package/core/CookieMessage/component.css +0 -1
  16. package/core/CookieMessage.js +1 -0
  17. package/core/CustomerLogos/.DS_Store +0 -0
  18. package/core/CustomerLogos.js +1 -0
  19. package/core/DropdownMenu/.DS_Store +0 -0
  20. package/core/DropdownMenu.js +1 -0
  21. package/core/Expander.js +1 -0
  22. package/core/FeaturedLink/.DS_Store +0 -0
  23. package/core/FeaturedLink.js +1 -0
  24. package/core/Flash/.DS_Store +0 -0
  25. package/core/Flash/component.css +0 -1
  26. package/core/Flash.js +1 -0
  27. package/core/Footer/.DS_Store +0 -0
  28. package/core/Footer/component.css +0 -1
  29. package/core/Footer.js +1 -0
  30. package/core/Icon/.DS_Store +0 -0
  31. package/core/Icon.js +1 -0
  32. package/core/Loader/.DS_Store +0 -0
  33. package/core/Loader.js +13 -0
  34. package/core/Logo/.DS_Store +0 -0
  35. package/core/Logo.js +1 -0
  36. package/core/Meganav/.DS_Store +0 -0
  37. package/core/Meganav/component.css +2 -3
  38. package/core/Meganav/component.js +1 -1
  39. package/core/Meganav.js +1 -0
  40. package/core/MeganavBlogPostsList/.DS_Store +0 -0
  41. package/core/MeganavBlogPostsList/component.js +1 -2
  42. package/core/MeganavBlogPostsList.js +1 -0
  43. package/core/MeganavContentCompany.js +1 -0
  44. package/core/MeganavContentDevelopers.js +1 -0
  45. package/core/MeganavContentProducts.js +1 -0
  46. package/core/MeganavContentUseCases.js +1 -0
  47. package/core/MeganavControl/.DS_Store +0 -0
  48. package/core/MeganavControl/component.js +1 -1
  49. package/core/MeganavControl.js +1 -0
  50. package/core/MeganavControlMobileDropdown/.DS_Store +0 -0
  51. package/core/MeganavControlMobileDropdown/component.js +1 -1
  52. package/core/MeganavControlMobileDropdown.js +1 -0
  53. package/core/MeganavControlMobilePanelClose/.DS_Store +0 -0
  54. package/core/MeganavControlMobilePanelClose/component.js +1 -1
  55. package/core/MeganavControlMobilePanelClose.js +1 -0
  56. package/core/MeganavControlMobilePanelOpen/.DS_Store +0 -0
  57. package/core/MeganavControlMobilePanelOpen/component.js +1 -1
  58. package/core/MeganavControlMobilePanelOpen.js +1 -0
  59. package/core/MeganavItemsDesktop.js +1 -0
  60. package/core/MeganavItemsMobile.js +1 -0
  61. package/core/MeganavItemsSignedIn.js +1 -0
  62. package/core/MeganavSearch.js +1 -0
  63. package/core/MeganavSearchAutocomplete/.DS_Store +0 -0
  64. package/core/MeganavSearchAutocomplete/component.js +1 -1
  65. package/core/MeganavSearchAutocomplete.js +1 -0
  66. package/core/MeganavSearchPanel.js +1 -0
  67. package/core/MeganavSearchSuggestions/.DS_Store +0 -0
  68. package/core/MeganavSearchSuggestions/component.js +1 -1
  69. package/core/MeganavSearchSuggestions.js +1 -0
  70. package/core/Notice/.DS_Store +0 -0
  71. package/core/Notice/component.css +0 -1
  72. package/core/Notice/component.js +1 -1
  73. package/core/Notice.js +1 -0
  74. package/core/SignOutLink.js +1 -0
  75. package/core/Slider/.DS_Store +0 -0
  76. package/core/Slider/component.css +32 -1
  77. package/core/Slider/component.js +1 -1
  78. package/core/Slider.js +1 -0
  79. package/core/Table/.DS_Store +0 -0
  80. package/core/Table/Table.js +1 -0
  81. package/core/Table/TableCell.js +7 -0
  82. package/core/Table/TableRow.js +1 -0
  83. package/core/Table/data.js +1 -0
  84. package/core/Table.js +1 -0
  85. package/core/Tooltip/.DS_Store +0 -0
  86. package/core/Tooltip.js +1 -0
  87. package/core/css.js +1 -0
  88. package/core/dom-query.js +1 -0
  89. package/core/hubspot-chat-toggle.js +1 -0
  90. package/core/icons/discord.svg +10 -0
  91. package/core/icons/facebook.svg +4 -0
  92. package/core/icons/github.svg +3 -0
  93. package/core/icons/glassdoor.svg +3 -0
  94. package/core/icons/google.svg +3 -0
  95. package/core/icons/icon-display-48hrs.svg +3 -0
  96. package/core/icons/icon-display-about-ably-col.svg +4 -0
  97. package/core/icons/icon-display-api-keys.svg +3 -0
  98. package/core/icons/icon-display-api.svg +3 -0
  99. package/core/icons/icon-display-asset-tracking-col.svg +18 -0
  100. package/core/icons/icon-display-browser.svg +10 -0
  101. package/core/icons/icon-display-calendar.svg +3 -0
  102. package/core/icons/icon-display-call-mobile.svg +3 -0
  103. package/core/icons/icon-display-careers-col.svg +9 -0
  104. package/core/icons/icon-display-case-studies-col.svg +5 -0
  105. package/core/icons/icon-display-chat-col.svg +4 -0
  106. package/core/icons/icon-display-chat-stack-col.svg +4 -0
  107. package/core/icons/icon-display-chat-stack.svg +4 -0
  108. package/core/icons/icon-display-cloud-servers.svg +3 -0
  109. package/core/icons/icon-display-compare-tech-col.svg +9 -0
  110. package/core/icons/icon-display-customers-col.svg +15 -0
  111. package/core/icons/icon-display-data-broadcast-col.svg +26 -0
  112. package/core/icons/icon-display-data-synchronization-col.svg +14 -0
  113. package/core/icons/icon-display-docs-col.svg +7 -0
  114. package/core/icons/icon-display-documentation.svg +3 -0
  115. package/core/icons/icon-display-events-col.svg +13 -0
  116. package/core/icons/icon-display-examples-col.svg +11 -0
  117. package/core/icons/icon-display-gdpr.svg +3 -0
  118. package/core/icons/icon-display-general-comms.svg +3 -0
  119. package/core/icons/icon-display-hipaa.svg +10 -0
  120. package/core/icons/icon-display-integrations-col.svg +8 -0
  121. package/core/icons/icon-display-it-support-access.svg +3 -0
  122. package/core/icons/icon-display-it-support-helpdesk.svg +3 -0
  123. package/core/icons/icon-display-kafka-at-the-edge-col.svg +8 -0
  124. package/core/icons/icon-display-laptop.svg +10 -0
  125. package/core/icons/icon-display-lightbulb-col.svg +10 -0
  126. package/core/icons/icon-display-live-chat.svg +3 -0
  127. package/core/icons/icon-display-map-pin.svg +3 -0
  128. package/core/icons/icon-display-message.svg +3 -0
  129. package/core/icons/icon-display-padlock-closed.svg +3 -0
  130. package/core/icons/icon-display-platform.svg +22 -0
  131. package/core/icons/icon-display-play.svg +3 -0
  132. package/core/icons/icon-display-privacy-shield-framework.svg +7 -0
  133. package/core/icons/icon-display-push-notifications-col.svg +6 -0
  134. package/core/icons/icon-display-quickstart-guides-col.svg +8 -0
  135. package/core/icons/icon-display-resources-col.svg +21 -0
  136. package/core/icons/icon-display-sdks-col.svg +11 -0
  137. package/core/icons/icon-display-servers.svg +3 -0
  138. package/core/icons/icon-display-shopping-cart.svg +10 -0
  139. package/core/icons/icon-display-sla.svg +3 -0
  140. package/core/icons/icon-display-soc2-type2.svg +3 -0
  141. package/core/icons/icon-display-tech-account-comms.svg +3 -0
  142. package/core/icons/icon-display-tutorials-demos-col.svg +25 -0
  143. package/core/icons/icon-display-virtual-events-col.svg +12 -0
  144. package/core/icons/icon-display-virtual-events.svg +12 -0
  145. package/core/icons/icon-gui-ably-badge.svg +3 -0
  146. package/core/icons/icon-gui-arrow-bidirectional-horizontal.svg +3 -0
  147. package/core/icons/icon-gui-arrow-bidirectional-vertical.svg +3 -0
  148. package/core/icons/icon-gui-arrow-down.svg +3 -0
  149. package/core/icons/icon-gui-arrow-left.svg +3 -0
  150. package/core/icons/icon-gui-arrow-right.svg +3 -0
  151. package/core/icons/icon-gui-arrow-up.svg +3 -0
  152. package/core/icons/icon-gui-burger-menu.svg +5 -0
  153. package/core/icons/icon-gui-check-circled-fill-black.svg +4 -0
  154. package/core/icons/icon-gui-check-circled-fill.svg +4 -0
  155. package/core/icons/icon-gui-check-circled.svg +3 -0
  156. package/core/icons/icon-gui-checklist-checked.svg +3 -0
  157. package/core/icons/icon-gui-clock.svg +3 -0
  158. package/core/icons/icon-gui-close.svg +3 -0
  159. package/core/icons/icon-gui-copy.svg +10 -0
  160. package/core/icons/icon-gui-cross-circled-fill.svg +4 -0
  161. package/core/icons/icon-gui-cross-circled.svg +3 -0
  162. package/core/icons/icon-gui-dash-circled.svg +3 -0
  163. package/core/icons/icon-gui-disclosure-arrow.svg +3 -0
  164. package/core/icons/icon-gui-document-generic.svg +3 -0
  165. package/core/icons/icon-gui-enlarge.svg +3 -0
  166. package/core/icons/icon-gui-external-link.svg +3 -0
  167. package/core/icons/icon-gui-filter-flow-step-1.svg +5 -0
  168. package/core/icons/icon-gui-filter-flow-step-2.svg +5 -0
  169. package/core/icons/icon-gui-filter-flow-step-3.svg +5 -0
  170. package/core/icons/icon-gui-history.svg +3 -0
  171. package/core/icons/icon-gui-info.svg +3 -0
  172. package/core/icons/icon-gui-link-arrow.svg +3 -0
  173. package/core/icons/icon-gui-link.svg +4 -0
  174. package/core/icons/icon-gui-live-chat.svg +3 -0
  175. package/core/icons/icon-gui-minus.svg +3 -0
  176. package/core/icons/icon-gui-partial.svg +4 -0
  177. package/core/icons/icon-gui-plus.svg +3 -0
  178. package/core/icons/icon-gui-quote-marks-solid.svg +3 -0
  179. package/core/icons/icon-gui-refresh.svg +10 -0
  180. package/core/icons/icon-gui-resources.svg +3 -0
  181. package/core/icons/icon-gui-search.svg +3 -0
  182. package/core/icons/icon-gui-tick.svg +3 -0
  183. package/core/icons/icon-gui-warning.svg +5 -0
  184. package/core/icons/icon-live-updates-results-metrics-col.svg +26 -0
  185. package/core/icons/icon-multi-user-spaces-col.svg +13 -0
  186. package/core/icons/icon-social-x.svg +3 -0
  187. package/core/icons/icon-tech-apachekafka.svg +3 -0
  188. package/core/icons/linkedin.svg +3 -0
  189. package/core/icons/quote.svg +3 -0
  190. package/core/icons/stackoverflow.svg +3 -0
  191. package/core/icons/twitter.svg +3 -0
  192. package/core/icons/youtube.svg +11 -0
  193. package/core/icons.js +1 -0
  194. package/core/load-sprites.js +1 -0
  195. package/core/react-renderer.js +1 -0
  196. package/core/remote-blogs-posts.js +1 -0
  197. package/core/remote-data-store.js +1 -0
  198. package/core/remote-data-util.js +1 -0
  199. package/core/remote-session-data.js +1 -0
  200. package/core/scripts.js +1 -2
  201. package/core/sprites.svg +1 -525
  202. package/core/styles/buttons.css +124 -0
  203. package/core/styles/forms.css +64 -0
  204. package/core/styles/layout.css +21 -0
  205. package/core/styles/properties.css +278 -0
  206. package/core/styles/text.css +168 -0
  207. package/core/styles.base.css +1 -0
  208. package/core/styles.components.css +35 -0
  209. package/core/styles.css +2 -699
  210. package/core/url-base.js +1 -0
  211. package/core/utils/syntax-highlighter-registry.js +1 -0
  212. package/core/utils/syntax-highlighter.css +74 -0
  213. package/core/utils/syntax-highlighter.js +1 -0
  214. package/package.json +39 -35
  215. package/reset/scripts.js +1 -1
  216. package/reset/styles/normalize.css +353 -0
  217. package/reset/styles/reset.css +129 -0
  218. package/reset/styles.css +2 -477
  219. package/src/.DS_Store +0 -0
  220. package/src/core/.DS_Store +0 -0
  221. package/src/core/Accordion/.DS_Store +0 -0
  222. package/src/core/Accordion/Accordion.stories.tsx +39 -0
  223. package/src/core/Accordion.tsx +147 -0
  224. package/src/core/Code/.DS_Store +0 -0
  225. package/src/core/Code/Code.stories.tsx +71 -0
  226. package/src/core/Code.tsx +45 -0
  227. package/src/core/{ConnectStateWrapper/component.jsx → ConnectStateWrapper.tsx} +8 -4
  228. package/src/core/ContactFooter/.DS_Store +0 -0
  229. package/src/core/ContactFooter/ContactFooter.stories.tsx +11 -0
  230. package/src/core/{ContactFooter/component.jsx → ContactFooter.tsx} +44 -19
  231. package/src/core/CookieMessage/.DS_Store +0 -0
  232. package/src/core/CookieMessage/CookieMessage.stories.tsx +12 -0
  233. package/src/core/{CookieMessage/component.jsx → CookieMessage.tsx} +15 -11
  234. package/src/core/CustomerLogos/.DS_Store +0 -0
  235. package/src/core/CustomerLogos/CustomerLogos.stories.tsx +43 -0
  236. package/src/core/CustomerLogos.tsx +35 -0
  237. package/src/core/DropdownMenu/.DS_Store +0 -0
  238. package/src/core/DropdownMenu/DropdownMenu.stories.tsx +48 -0
  239. package/src/core/{DropdownMenu/component.jsx → DropdownMenu.tsx} +64 -36
  240. package/src/core/Expander/Expander.stories.tsx +132 -0
  241. package/src/core/Expander.tsx +54 -0
  242. package/src/core/FeaturedLink/.DS_Store +0 -0
  243. package/src/core/FeaturedLink/FeaturedLink.stories.tsx +43 -0
  244. package/src/core/{FeaturedLink/component.jsx → FeaturedLink.tsx} +26 -18
  245. package/src/core/Flash/.DS_Store +0 -0
  246. package/src/core/Flash/Flash.stories.tsx +37 -0
  247. package/src/core/{Flash/component.jsx → Flash.tsx} +77 -39
  248. package/src/core/Footer/.DS_Store +0 -0
  249. package/src/core/Footer/Footer.stories.tsx +26 -0
  250. package/src/core/{Footer/component.jsx → Footer.tsx} +236 -70
  251. package/src/core/Icon/.DS_Store +0 -0
  252. package/src/core/Icon/Icon.stories.tsx +151 -0
  253. package/src/core/Icon.tsx +26 -0
  254. package/src/core/Loader/.DS_Store +0 -0
  255. package/src/core/Loader/Loader.stories.tsx +21 -0
  256. package/src/core/{Loader/component.jsx → Loader.tsx} +11 -8
  257. package/src/core/Logo/.DS_Store +0 -0
  258. package/src/core/Logo/Logo.stories.tsx +12 -0
  259. package/src/core/Logo.tsx +29 -0
  260. package/src/core/Meganav/.DS_Store +0 -0
  261. package/src/core/Meganav/Meganav.stories.tsx +86 -0
  262. package/src/core/Meganav/component.css +2 -2
  263. package/src/core/Meganav/component.js +6 -9
  264. package/src/core/Meganav.tsx +225 -0
  265. package/src/core/MeganavBlogPostsList/.DS_Store +0 -0
  266. package/src/core/{MeganavBlogPostsList/component.jsx → MeganavBlogPostsList.tsx} +15 -14
  267. package/src/core/{MeganavContentCompany/component.jsx → MeganavContentCompany.tsx} +82 -33
  268. package/src/core/{MeganavContentDevelopers/component.jsx → MeganavContentDevelopers.tsx} +98 -34
  269. package/src/core/MeganavContentProducts.tsx +165 -0
  270. package/src/core/MeganavContentUseCases.tsx +244 -0
  271. package/src/core/MeganavControl/.DS_Store +0 -0
  272. package/src/core/{MeganavControl/component.jsx → MeganavControl.tsx} +18 -12
  273. package/src/core/MeganavControlMobileDropdown/.DS_Store +0 -0
  274. package/src/core/{MeganavControlMobileDropdown/component.jsx → MeganavControlMobileDropdown.tsx} +3 -7
  275. package/src/core/MeganavControlMobilePanelClose/.DS_Store +0 -0
  276. package/src/core/{MeganavControlMobilePanelClose/component.jsx → MeganavControlMobilePanelClose.tsx} +15 -9
  277. package/src/core/MeganavControlMobilePanelOpen/.DS_Store +0 -0
  278. package/src/core/MeganavControlMobilePanelOpen.tsx +31 -0
  279. package/src/core/MeganavItemsDesktop.tsx +68 -0
  280. package/src/core/MeganavItemsMobile.tsx +197 -0
  281. package/src/core/{MeganavItemsSignedIn/component.jsx → MeganavItemsSignedIn.tsx} +55 -23
  282. package/src/core/MeganavSearch.tsx +36 -0
  283. package/src/core/MeganavSearchAutocomplete/.DS_Store +0 -0
  284. package/src/core/MeganavSearchAutocomplete.tsx +12 -0
  285. package/src/core/MeganavSearchPanel.tsx +52 -0
  286. package/src/core/MeganavSearchSuggestions/.DS_Store +0 -0
  287. package/src/core/MeganavSearchSuggestions.tsx +62 -0
  288. package/src/core/Notice/.DS_Store +0 -0
  289. package/src/core/Notice/component.js +1 -2
  290. package/src/core/Notice.tsx +102 -0
  291. package/src/core/SignOutLink.tsx +51 -0
  292. package/src/core/Slider/.DS_Store +0 -0
  293. package/src/core/Slider/Slider.stories.tsx +98 -0
  294. package/src/core/Slider/component.css +32 -0
  295. package/src/core/Slider/component.js +0 -2
  296. package/src/core/Slider.tsx +192 -0
  297. package/src/core/Table/.DS_Store +0 -0
  298. package/src/core/Table/Table.stories.tsx +12 -0
  299. package/src/core/Table/Table.tsx +59 -0
  300. package/src/core/Table/TableCell.tsx +109 -0
  301. package/src/core/Table/TableRow.tsx +25 -0
  302. package/src/core/Table/data.tsx +113 -0
  303. package/src/core/Table.tsx +26 -0
  304. package/src/core/Tooltip/.DS_Store +0 -0
  305. package/src/core/Tooltip/Tooltip.stories.tsx +27 -0
  306. package/src/core/Tooltip.tsx +88 -0
  307. package/src/core/icons/icon-gui-partial.svg +4 -0
  308. package/src/core/icons.js +6 -0
  309. package/src/core/{react-renderer.js → react-renderer.tsx} +9 -7
  310. package/src/core/scripts.js +0 -2
  311. package/src/core/styles/properties.css +0 -7
  312. package/src/core/utils/syntax-highlighter.css +3 -0
  313. package/src/pages/Buttons.mdx +121 -0
  314. package/src/pages/Chips.mdx +136 -0
  315. package/src/pages/Colour.mdx +23 -0
  316. package/src/pages/Forms.mdx +173 -0
  317. package/src/pages/Layout.mdx +58 -0
  318. package/src/pages/Typography.mdx +206 -0
  319. package/src/pages/utils.ts +70 -0
  320. package/tailwind.config.js +1 -7
  321. package/tailwind.extend.js +1 -1
  322. package/core/.gitignore +0 -1
  323. package/core/Code.jsx +0 -684
  324. package/core/CompanyAutocomplete/component.css +0 -46
  325. package/core/CompanyAutocomplete/component.js +0 -2
  326. package/core/CompanyAutocomplete/component.js.LICENSE.txt +0 -1
  327. package/core/ConnectStateWrapper/component.js +0 -1
  328. package/core/ConnectStateWrapper.jsx +0 -222
  329. package/core/ContactFooter.jsx +0 -342
  330. package/core/CookieMessage/component.js +0 -1
  331. package/core/CookieMessage.jsx +0 -204
  332. package/core/CustomerLogos/component.js +0 -1
  333. package/core/CustomerLogos.jsx +0 -144
  334. package/core/DropdownMenu/component.js +0 -1
  335. package/core/DropdownMenu.jsx +0 -313
  336. package/core/FeatureFooter/component.css +0 -13
  337. package/core/FeatureFooter/component.js +0 -1
  338. package/core/FeaturedLink/component.js +0 -1
  339. package/core/FeaturedLink.jsx +0 -241
  340. package/core/Flash/component.js +0 -1
  341. package/core/Flash.jsx +0 -622
  342. package/core/Footer/component.js +0 -1
  343. package/core/Footer.jsx +0 -587
  344. package/core/Icon/component.js +0 -1
  345. package/core/Icon.jsx +0 -152
  346. package/core/Loader/component.js +0 -1
  347. package/core/Loader.jsx +0 -154
  348. package/core/Logo/component.js +0 -1
  349. package/core/Logo.jsx +0 -147
  350. package/core/Meganav.jsx +0 -4151
  351. package/core/MeganavBlogPostsList/component.js.LICENSE.txt +0 -1
  352. package/core/MeganavBlogPostsList.jsx +0 -296
  353. package/core/MeganavContentCompany/component.js +0 -1
  354. package/core/MeganavContentCompany.jsx +0 -1058
  355. package/core/MeganavContentDevelopers/component.js +0 -1
  356. package/core/MeganavContentDevelopers.jsx +0 -334
  357. package/core/MeganavContentProducts/component.js +0 -1
  358. package/core/MeganavContentProducts.jsx +0 -373
  359. package/core/MeganavContentUseCases/component.js +0 -1
  360. package/core/MeganavContentUseCases.jsx +0 -341
  361. package/core/MeganavControl.jsx +0 -199
  362. package/core/MeganavControlMobileDropdown.jsx +0 -197
  363. package/core/MeganavControlMobilePanelClose.jsx +0 -198
  364. package/core/MeganavControlMobilePanelOpen.jsx +0 -193
  365. package/core/MeganavItemsDesktop/component.js +0 -1
  366. package/core/MeganavItemsDesktop.jsx +0 -279
  367. package/core/MeganavItemsMobile/component.js +0 -1
  368. package/core/MeganavItemsMobile.jsx +0 -689
  369. package/core/MeganavItemsSignedIn/component.js +0 -1
  370. package/core/MeganavItemsSignedIn.jsx +0 -643
  371. package/core/MeganavSearch/component.js +0 -1
  372. package/core/MeganavSearch.jsx +0 -434
  373. package/core/MeganavSearchAutocomplete.jsx +0 -117
  374. package/core/MeganavSearchPanel/component.js +0 -1
  375. package/core/MeganavSearchPanel.jsx +0 -386
  376. package/core/MeganavSearchSuggestions.jsx +0 -299
  377. package/core/Notice.jsx +0 -914
  378. package/core/Showcase/component.css +0 -31
  379. package/core/Showcase/component.js +0 -1
  380. package/core/Showcase.jsx +0 -17
  381. package/core/SignOutLink/component.js +0 -1
  382. package/core/SignOutLink.jsx +0 -157
  383. package/core/Slider.jsx +0 -400
  384. package/core/Uptime/component.css +0 -128
  385. package/core/Uptime/component.js +0 -1
  386. package/core/Uptime.jsx +0 -895
  387. package/core/scripts.js.LICENSE.txt +0 -1
  388. package/preview/log/.keep +0 -0
  389. package/preview/tmp/.keep +0 -0
  390. package/preview/tmp/pids/.keep +0 -0
  391. package/reset/.gitignore +0 -1
  392. package/src/core/Code/component.html.erb +0 -3
  393. package/src/core/Code/component.jsx +0 -31
  394. package/src/core/Code/component.rb +0 -12
  395. package/src/core/CompanyAutocomplete/component.css +0 -45
  396. package/src/core/CompanyAutocomplete/component.js +0 -204
  397. package/src/core/ConnectStateWrapper/component.js +0 -0
  398. package/src/core/ContactFooter/component.html.erb +0 -32
  399. package/src/core/ContactFooter/component.rb +0 -13
  400. package/src/core/CookieMessage/component.js +0 -1
  401. package/src/core/CustomerLogos/component.html.erb +0 -9
  402. package/src/core/CustomerLogos/component.js +0 -0
  403. package/src/core/CustomerLogos/component.jsx +0 -28
  404. package/src/core/CustomerLogos/component.rb +0 -14
  405. package/src/core/DropdownMenu/component.js +0 -0
  406. package/src/core/FeatureFooter/component.css +0 -12
  407. package/src/core/FeatureFooter/component.html.erb +0 -54
  408. package/src/core/FeatureFooter/component.js +0 -7
  409. package/src/core/FeatureFooter/component.rb +0 -30
  410. package/src/core/FeaturedLink/component.html.erb +0 -15
  411. package/src/core/FeaturedLink/component.js +0 -0
  412. package/src/core/FeaturedLink/component.rb +0 -21
  413. package/src/core/Flash/component.js +0 -1
  414. package/src/core/Footer/component.html.erb +0 -256
  415. package/src/core/Footer/component.js +0 -1
  416. package/src/core/Footer/component.rb +0 -14
  417. package/src/core/Icon/component.html.erb +0 -3
  418. package/src/core/Icon/component.js +0 -0
  419. package/src/core/Icon/component.jsx +0 -19
  420. package/src/core/Icon/component.rb +0 -25
  421. package/src/core/Loader/component.html.erb +0 -18
  422. package/src/core/Loader/component.js +0 -0
  423. package/src/core/Loader/component.rb +0 -19
  424. package/src/core/Logo/component.html.erb +0 -3
  425. package/src/core/Logo/component.js +0 -0
  426. package/src/core/Logo/component.jsx +0 -20
  427. package/src/core/Logo/component.rb +0 -31
  428. package/src/core/Meganav/component.html.erb +0 -31
  429. package/src/core/Meganav/component.jsx +0 -123
  430. package/src/core/Meganav/component.rb +0 -60
  431. package/src/core/MeganavBlogPostsList/component.html.erb +0 -5
  432. package/src/core/MeganavBlogPostsList/component.rb +0 -13
  433. package/src/core/MeganavContentCompany/component.html.erb +0 -90
  434. package/src/core/MeganavContentCompany/component.js +0 -0
  435. package/src/core/MeganavContentCompany/component.rb +0 -14
  436. package/src/core/MeganavContentDevelopers/component.html.erb +0 -129
  437. package/src/core/MeganavContentDevelopers/component.js +0 -0
  438. package/src/core/MeganavContentDevelopers/component.rb +0 -13
  439. package/src/core/MeganavContentProducts/component.html.erb +0 -83
  440. package/src/core/MeganavContentProducts/component.js +0 -0
  441. package/src/core/MeganavContentProducts/component.jsx +0 -105
  442. package/src/core/MeganavContentProducts/component.rb +0 -14
  443. package/src/core/MeganavContentUseCases/component.html.erb +0 -135
  444. package/src/core/MeganavContentUseCases/component.js +0 -1
  445. package/src/core/MeganavContentUseCases/component.jsx +0 -147
  446. package/src/core/MeganavContentUseCases/component.rb +0 -13
  447. package/src/core/MeganavControl/component.html.erb +0 -6
  448. package/src/core/MeganavControl/component.rb +0 -20
  449. package/src/core/MeganavControlMobileDropdown/component.html.erb +0 -7
  450. package/src/core/MeganavControlMobileDropdown/component.rb +0 -11
  451. package/src/core/MeganavControlMobilePanelClose/component.html.erb +0 -12
  452. package/src/core/MeganavControlMobilePanelClose/component.rb +0 -12
  453. package/src/core/MeganavControlMobilePanelOpen/component.html.erb +0 -7
  454. package/src/core/MeganavControlMobilePanelOpen/component.jsx +0 -25
  455. package/src/core/MeganavControlMobilePanelOpen/component.rb +0 -9
  456. package/src/core/MeganavItemsDesktop/component.html.erb +0 -17
  457. package/src/core/MeganavItemsDesktop/component.js +0 -0
  458. package/src/core/MeganavItemsDesktop/component.jsx +0 -49
  459. package/src/core/MeganavItemsDesktop/component.rb +0 -23
  460. package/src/core/MeganavItemsMobile/component.html.erb +0 -75
  461. package/src/core/MeganavItemsMobile/component.js +0 -0
  462. package/src/core/MeganavItemsMobile/component.jsx +0 -137
  463. package/src/core/MeganavItemsMobile/component.rb +0 -21
  464. package/src/core/MeganavItemsSignedIn/component.html.erb +0 -53
  465. package/src/core/MeganavItemsSignedIn/component.js +0 -0
  466. package/src/core/MeganavItemsSignedIn/component.rb +0 -33
  467. package/src/core/MeganavSearch/component.html.erb +0 -15
  468. package/src/core/MeganavSearch/component.js +0 -0
  469. package/src/core/MeganavSearch/component.jsx +0 -33
  470. package/src/core/MeganavSearch/component.rb +0 -13
  471. package/src/core/MeganavSearchAutocomplete/component.html.erb +0 -6
  472. package/src/core/MeganavSearchAutocomplete/component.jsx +0 -14
  473. package/src/core/MeganavSearchAutocomplete/component.rb +0 -6
  474. package/src/core/MeganavSearchPanel/component.html.erb +0 -22
  475. package/src/core/MeganavSearchPanel/component.js +0 -0
  476. package/src/core/MeganavSearchPanel/component.jsx +0 -39
  477. package/src/core/MeganavSearchPanel/component.rb +0 -13
  478. package/src/core/MeganavSearchSuggestions/component.html.erb +0 -22
  479. package/src/core/MeganavSearchSuggestions/component.jsx +0 -49
  480. package/src/core/MeganavSearchSuggestions/component.rb +0 -18
  481. package/src/core/Notice/component.html.erb +0 -16
  482. package/src/core/Notice/component.jsx +0 -71
  483. package/src/core/Notice/component.rb +0 -29
  484. package/src/core/Showcase/component.css +0 -30
  485. package/src/core/Showcase/component.html.erb +0 -76
  486. package/src/core/Showcase/component.js +0 -180
  487. package/src/core/Showcase/component.jsx +0 -0
  488. package/src/core/Showcase/component.rb +0 -190
  489. package/src/core/SignOutLink/component.html.erb +0 -1
  490. package/src/core/SignOutLink/component.js +0 -0
  491. package/src/core/SignOutLink/component.jsx +0 -32
  492. package/src/core/SignOutLink/component.rb +0 -17
  493. package/src/core/Slider/component.html.erb +0 -28
  494. package/src/core/Slider/component.jsx +0 -86
  495. package/src/core/Slider/component.rb +0 -38
  496. package/src/core/Uptime/component.css +0 -127
  497. package/src/core/Uptime/component.html.erb +0 -0
  498. package/src/core/Uptime/component.js +0 -1
  499. package/src/core/Uptime/component.jsx +0 -183
  500. package/src/core/Uptime/component.rb +0 -7
  501. package/src/core/core.rb +0 -81
@@ -1,256 +0,0 @@
1
- <footer class="bg-light-grey font-sans antialiased leading-normal" data-id="footer">
2
- <div class="max-w-screen-xl mx-auto py-32 sm:py-40 md:py-64 ui-grid-gap ui-grid-px grid grid-cols-6">
3
- <div class="col-span-full md:col-span-2">
4
- <div class="flex flex-row p-menu-row-snug">
5
- <%= image_tag(ably_stack_path, alt: "Ably homepage", class: "mr-24 -mt-16") %>
6
- <h2 class="ui-text-overline2 col-span-full font-mono uppercase tracking-widen-0.16">The Ably Platform</h2>
7
- </div>
8
- <div class="md:col-span-4 md:w-3/4 xs:w-3/5 w-full">
9
- <p class="ui-text-p3 font-bold py-16 p-menu-row-snug">
10
- Easily power any realtime experience in your application via a simple API that handles everything realtime.
11
- </p>
12
- </div>
13
- <ul class="grid grid-cols-1">
14
- <li class="p-menu-row-snug">
15
- <%= link_to 'Pub/sub messaging', abs_url("/solutions/channels"), class: "ui-footer-menu-row-link" %>
16
- </li>
17
- <li class="p-menu-row-snug">
18
- <%= link_to 'Push notifications', abs_url("/push-notifications"), class: "ui-footer-menu-row-link" %>
19
- </li>
20
- <li class="p-menu-row-snug">
21
- <%= link_to 'Third-party integrations', abs_url("/integrations"), class: "ui-footer-menu-row-link" %>
22
- </li>
23
- <li class="p-menu-row-snug">
24
- <%= link_to 'Multiple protocol messaging', abs_url("/protocols"), class: "ui-footer-menu-row-link" %>
25
- </li>
26
- </ul>
27
- </div>
28
- <div class="col-span-full xs:col-span-3 md:col-span-1">
29
- <h2 class="ui-footer-col-title">Ably is for</h2>
30
- <ul>
31
- <li class="p-menu-row-snug">
32
- <%= link_to 'Ably Asset Tracking', abs_url("/solutions/asset-tracking"), class: "ui-footer-menu-row-link" %>
33
- </li>
34
- <li class="p-menu-row-snug">
35
- <%= link_to 'Extend Kafka to the edge', abs_url("/solutions/extend-kafka-to-the-edge"), class: "ui-footer-menu-row-link" %>
36
- </li>
37
- <li class="p-menu-row-snug">
38
- <%= link_to 'EdTech', abs_url("/solutions/edtech"), class: "ui-footer-menu-row-link" %>
39
- </li>
40
- <li class="p-menu-row-snug">
41
- <%= link_to 'Automotive, Logistics, & Mobility', abs_url("/solutions/automotive-logistics-and-mobility"), class: "ui-footer-menu-row-link" %>
42
- </li>
43
- <li class="p-menu-row-snug">
44
- <%= link_to 'B2B Platforms', abs_url("/solutions/b2b-platforms"), class: "ui-footer-menu-row-link" %>
45
- </li>
46
- <li class="p-menu-row-snug">
47
- <%= link_to 'Healthcare', abs_url("/solutions/healthcare"), class: "ui-footer-menu-row-link" %>
48
- </li>
49
- <li class="p-menu-row-snug">
50
- <%= link_to 'eCommerce & Retail', abs_url("/solutions/ecommerce-and-retail"), class: "ui-footer-menu-row-link" %>
51
- </li>
52
- <li class="p-menu-row-snug">
53
- <%= link_to 'Sports & Media', abs_url("/solutions/sports-and-media"), class: "ui-footer-menu-row-link" %>
54
- </li>
55
- <li class="p-menu-row-snug">
56
- <%= link_to 'Gaming', abs_url("/solutions/gaming"), class: "ui-footer-menu-row-link" %>
57
- </li>
58
- <li class="p-menu-row-snug">
59
- <%= link_to 'IoT & Connected Devices', abs_url("/solutions/iot-and-connected-devices"), class: "ui-footer-menu-row-link" %>
60
- </li>
61
- </ul>
62
- </div>
63
- <div class="col-span-full xs:col-span-3 md:col-span-1">
64
- <h2 class="ui-footer-col-title">Developers</h2>
65
- <ul>
66
- <li class="p-menu-row-snug">
67
- <%= link_to 'Start in 5 minutes', abs_url("/docs/quick-start-guide"), class: "ui-footer-menu-row-link" %>
68
- </li>
69
- <li class="p-menu-row-snug">
70
- <%= link_to 'Documentation', abs_url("/docs"), class: "ui-footer-menu-row-link" %>
71
- </li>
72
- <li class="p-menu-row-snug">
73
- <%= link_to 'Tutorials', abs_url("/tutorials"), class: "ui-footer-menu-row-link" %>
74
- </li>
75
- <li class="p-menu-row-snug">
76
- <a href="https://changelog.ably.com/" class="ui-footer-menu-row-link">Changelog</a>
77
- </li>
78
- <li class="p-menu-row-snug">
79
- <%= link_to 'Support & FAQs', abs_url("/support"), class: "ui-footer-menu-row-link" %>
80
- </li>
81
- <li class="p-menu-row-snug">
82
- <%= link_to 'SDKs', abs_url("/docs/sdks"), class: "ui-footer-menu-row-link" %>
83
- </li>
84
- <li class="p-menu-row-snug flex items-center -mt-4">
85
- <a class="pr-8 ui-footer-menu-row-link" href="https://status.ably.com/">System status</a>
86
- <iframe class="w-20 h-20 mb-2" src="https://status.ably.com/embed/icon" allowtransparency="true" frameborder="0" scrolling="no"></iframe>
87
- </li>
88
- </ul>
89
- </div>
90
- <div class="col-span-full xs:col-span-3 md:col-span-1">
91
- <h2 class="ui-footer-col-title">WHY ABLY</h2>
92
- <ul>
93
- <li class="p-menu-row-snug">
94
- <%= link_to 'Customers', abs_url("/customers"), class: "ui-footer-menu-row-link" %>
95
- </li>
96
- <li class="p-menu-row-snug">
97
- <%= link_to 'Case Studies', abs_url("/case-studies"), class: "ui-footer-menu-row-link" %>
98
- </li>
99
- <li class="p-menu-row-snug">
100
- <%= link_to 'Four Pillars of Dependability', abs_url("/four-pillars-of-dependability"), class: "ui-footer-menu-row-link" %>
101
- </li>
102
- <li class="p-menu-row-snug">
103
- <%= link_to 'Compare our tech', abs_url("/compare"), class: "ui-footer-menu-row-link" %>
104
- </li>
105
- <li class="p-menu-row-snug">
106
- <%= link_to 'Multi protocol support', abs_url("/protocols"), class: "ui-footer-menu-row-link" %>
107
- </li>
108
- <li class="p-menu-row-snug">
109
- <%= link_to 'Third-party integrations', abs_url("/integrations"), class: "ui-footer-menu-row-link" %>
110
- </li>
111
- </ul>
112
- </div>
113
- <div class="col-span-full xs:col-span-3 md:col-span-1">
114
- <h2 class="ui-footer-col-title">ABOUT</h2>
115
- <ul>
116
- <li class="p-menu-row-snug">
117
- <%= link_to 'About Ably', abs_url("/about"), class: "ui-footer-menu-row-link" %>
118
- </li>
119
- <li class="p-menu-row-snug">
120
- <%= link_to 'Pricing', abs_url("/pricing"), class: "ui-footer-menu-row-link" %>
121
- </li>
122
- <li class="p-menu-row-snug">
123
- <%= link_to 'Blog', abs_url("/blog"), class: "ui-footer-menu-row-link" %>
124
- </li>
125
- <li class="p-menu-row-snug">
126
- <%= link_to 'Careers', abs_url("/careers"), class: "ui-footer-menu-row-link" %>
127
- </li>
128
- <li class="p-menu-row-snug">
129
- <%= link_to 'Open protocol policy', abs_url("/open-policy"), class: "ui-footer-menu-row-link" %>
130
- </li>
131
- <li class="p-menu-row-snug">
132
- <%= link_to 'Press & Media', abs_url("/press-center"), class: "ui-footer-menu-row-link" %>
133
- </li>
134
- <li class="p-menu-row-snug">
135
- <%= link_to 'Contact us', abs_url("/contact"), class: "ui-footer-menu-row-link" %>
136
- </li>
137
- </ul>
138
- </div>
139
- </div>
140
- <div class="max-w-screen-xl ui-grid-px mx-auto">
141
- <hr class="border-t border-mid-grey my-0"/>
142
- </div>
143
- <%# Twitter + Glassdoor SM * above + Glassdoor XS + Badges %>
144
- <div class="max-w-screen-xl mx-auto py-16 grid ui-grid-gap ui-grid-px sm:grid-cols-2">
145
- <div class="md:flex md:items-center">
146
- <div class="flex flex-col md:flex-row flex-auto ml-8 sm:col-span-1 md:col-span-2">
147
- <div class="">
148
- <div class="flex pb-24">
149
- <a class="h-24 pr-24 text-cool-black hover:text-icon-twitter" href="https://twitter.com/ablyrealtime" title="Ably on X">
150
- <%= render(AblyUi::Core::Icon.new(name: "icon-social-x", size: "1.5rem")) %>
151
- </a>
152
- <a
153
- class="h-24 pr-24 text-cool-black hover:text-icon-linkedin"
154
- href="https://www.linkedin.com/company/ably-realtime"
155
- title="Ably on LinkedIn"
156
- >
157
- <%= render(AblyUi::Core::Icon.new(name: "linkedin", size: "1.5rem")) %>
158
- </a>
159
- <a class="h-24 pr-24 text-cool-black hover:text-icon-github" href="https://github.com/ably/" title="Ably on Github">
160
- <%= render(AblyUi::Core::Icon.new(name: "github", size: "1.5rem")) %>
161
- </a>
162
- <a class="h-24 pr-24 text-cool-black hover:text-icon-discord" href="https://discord.gg/jwBPhEZ9g5" title="Ably on Discord">
163
- <%= render(AblyUi::Core::Icon.new(name: "discord", size: "1.5rem")) %>
164
- </a>
165
- </div>
166
- </div>
167
- <%# GLASSDOOR on SM and Above %>
168
- <div class="xs:hidden sm:block ui-footer-glassdoor">
169
- <div class="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">
170
- <a
171
- href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm"
172
- class="h-24 text-cool-black hover:text-icon-glassdoor"
173
- title="Ably reviews on glassdoor"
174
- >
175
- <%= render(AblyUi::Core::Icon.new(name: "glassdoor", size: "1.5rem")) %>
176
- </a>
177
- <div class="pl-16 text-menu3 font-sans font-medium">
178
- <strong class="block font-medium">We&apos;re hiring!</strong>
179
- <a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" class="ui-footer-link">
180
- Learn more at Glassdoor
181
- </a>
182
- </div>
183
- </div>
184
- </div>
185
- </div>
186
- <%# GlassDoor on XS ONLY %>
187
- <div class="xs:block sm:hidden">
188
- <div class="border-t border-mid-grey w-full"></div>
189
- <div class="flex py-24">
190
- <a
191
- class="h-24 pr-16 text-cool-black hover:text-icon-glassdoor"
192
- href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm"
193
- title="Ably reviews on glassdoor"
194
- >
195
- <%= render(AblyUi::Core::Icon.new(name: "glassdoor", size: "1.5rem")) %>
196
- </a>
197
- <div class="text-menu3 font-sans font-medium">
198
- <strong class="block font-medium">We&apos;re hiring!</strong>
199
- <a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" class="ui-footer-link">
200
- Learn more at Glassdoor
201
- </a>
202
- </div>
203
- </div>
204
- </div>
205
- </div>
206
- <div class="col-span-full sm:col-span-1 inline-flex sm:ml-auto sm:items-center">
207
- <%= image_tag(highest_user_adoption, alt: "Highest User Adoption 2023", class: "mr-24 h-80") %>
208
- <%= image_tag(best_support, alt: "Best Support 2023", class: "mr-24 h-80") %>
209
- <%= image_tag(fastest_implementation, alt: "Fastest Implementation 2023", class: "mr-24 h-80") %>
210
- <%= image_tag(highest_performer, alt: "High Performer 2023", class: "mr-24 h-80") %>
211
- </div>
212
- </div>
213
- <div class="max-w-screen-xl ui-grid-px mx-auto">
214
- <hr class="border-t border-mid-grey my-0"/>
215
- </div>
216
- <div class="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">
217
- <div class="flex ml-8 col-span-full sm:col-span-1 md:pb-16 items-center ui-footer-bottom-links">
218
- <div class="flex">
219
- <%= link_to 'Cookies', abs_url("/privacy"), class: "pr-24 ui-footer-link" %>
220
- <%= link_to 'Legals', abs_url("/legals"), class: "pr-24 ui-footer-link" %>
221
- <%= link_to 'Data Protection', abs_url("/data-protection"), class: "pr-24 ui-footer-link" %>
222
- <%= link_to 'Privacy', abs_url("/privacy"), class: "ui-footer-link" %>
223
- </div>
224
- </div>
225
- <div class="xs:grid xs:grid-cols-2 sm:grid-cols-4 xs:pl-16 sm:pl-8 md:justify-items-end">
226
- <div class="flex mr-24">
227
- <%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", color: "text-active-orange", size: "1.5rem", additional_css:"bg-white rounded-full mr-12 ui-footer-tick-icon")) %>
228
- <div>
229
- <p class="ui-footer-compliance-text font-bold whitespace-nowrap">SOC 2 Type 2</p>
230
- <p class="ui-footer-compliance-text font-medium mb-24">Certified</p>
231
- </div>
232
- </div>
233
- <div class="flex mr-24 md:col-start-2">
234
- <%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", color: "text-active-orange", size: "1.5rem", additional_css:"bg-white rounded-full mr-12 ui-footer-tick-icon")) %>
235
- <div>
236
- <p class="ui-footer-compliance-text font-bold whitespace-nowrap">HIPAA</p>
237
- <p class="ui-footer-compliance-text font-medium mb-24">Compliant</p>
238
- </div>
239
- </div>
240
- <div class="flex mr-24 md:col-start-3">
241
- <%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", color: "text-active-orange", size: "1.5rem", additional_css:"bg-white rounded-full mr-12 ui-footer-tick-icon")) %>
242
- <div>
243
- <p class="ui-footer-compliance-text font-bold whitespace-nowrap">EU GDPR</p>
244
- <p class="ui-footer-compliance-text font-medium mb-24">Certified</p>
245
- </div>
246
- </div>
247
- <div class="flex mr-24 md:col-start-4">
248
- <%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", color: "text-active-orange", size: "1.5rem", additional_css:"bg-white rounded-full mr-12 ui-footer-tick-icon")) %>
249
- <div>
250
- <p class="ui-footer-compliance-text font-bold whitespace-nowrap">256-bit AES</p>
251
- <p class="ui-footer-compliance-text font-medium mb-24">Encryption</p>
252
- </div>
253
- </div>
254
- </div>
255
- </div>
256
- </footer>
@@ -1 +0,0 @@
1
- import "./component.css";
@@ -1,14 +0,0 @@
1
- module AblyUi
2
- module Core
3
- class Footer < ViewComponent::Base
4
- include AblyUi::Core::SharedAssets
5
- include AblyUi::Core::Util
6
-
7
- attr_reader :url_base
8
-
9
- def initialize(url_base: AblyUi::Core::Util::DEFAULT_URL_BASE)
10
- @url_base = url_base
11
- end
12
- end
13
- end
14
- end
@@ -1,3 +0,0 @@
1
- <%= tag.svg class: "#{color} #{additional_css}", style: "width: #{size}; height: #{size}", **additional_attributes do %>
2
- <%= tag.use "xlink:href": "#sprite-#{name}" %>
3
- <% end %>
File without changes
@@ -1,19 +0,0 @@
1
- import React from "react";
2
- import T from "prop-types";
3
-
4
- const Icon = ({ name, size = "0.75rem", color = "", additionalCSS = "", ...additionalAttributes }) => {
5
- return (
6
- <svg className={`${color} ${additionalCSS}`} style={{ width: size, height: size }} {...additionalAttributes}>
7
- <use xlinkHref={`#sprite-${name}`} />
8
- </svg>
9
- );
10
- };
11
-
12
- Icon.propTypes = {
13
- name: T.string.isRequired,
14
- size: T.string,
15
- color: T.string,
16
- additionalCSS: T.string,
17
- };
18
-
19
- export default Icon;
@@ -1,25 +0,0 @@
1
- module AblyUi
2
- module Core
3
- class Icon < ViewComponent::Base
4
- attr_reader :name
5
- attr_reader :size
6
- attr_reader :color
7
- attr_reader :additional_css
8
- attr_reader :additional_attributes
9
-
10
- def initialize(
11
- name:,
12
- size: '0.75rem',
13
- color: '',
14
- additional_css: '',
15
- **additional_attributes
16
- )
17
- @name = name
18
- @size = size
19
- @color = color
20
- @additional_css = additional_css
21
- @additional_attributes = additional_attributes
22
- end
23
- end
24
- end
25
- end
@@ -1,18 +0,0 @@
1
- <%= tag.svg class: "#{ring_color} #{additional_css}", style: "width: #{size}; height: #{size}", width: "24", height: "24", view_box: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" do %>
2
- <style>
3
- @keyframes chunk-animation {
4
- to {
5
- transform: rotate(360deg);
6
- }
7
- }
8
-
9
- .chunk {
10
- transform: rotate(0deg);
11
- transform-origin: center;
12
- animation: chunk-animation 0.6s cubic-bezier(.44,.15,.66,.98) forwards infinite;
13
- }
14
- </style>
15
-
16
- <path fill="currentColor" d="m12 1.99976c-1.9778 0-3.91121.58649-5.5557 1.6853s-2.92621 2.6606-3.68309 4.48786c-.75688 1.82728-.95491 3.83788-.56906 5.77778.38585 1.9398 1.33826 3.7216 2.73679 5.1201 1.39852 1.3985 3.18035 2.351 5.12016 2.7368 1.9398.3859 3.9505.1878 5.7777-.569 1.8273-.7569 3.3891-2.0387 4.4879-3.6831 1.0988-1.6445 1.6853-3.5779 1.6853-5.5557 0-1.3133-.2587-2.61362-.7612-3.82688-.5025-1.21325-1.2391-2.31565-2.1677-3.24423-.9286-.92859-2.031-1.66518-3.2443-2.16773-1.2132-.50255-2.5136-.7612-3.8268-.7612zm0 18.00004c-1.5822 0-3.12896-.4692-4.44456-1.3483-1.31559-.879-2.34097-2.1285-2.94647-3.5903s-.76393-3.0703-.45525-4.6222c.30868-1.55181 1.07061-2.97728 2.18943-4.0961s2.54428-1.88074 4.09615-2.18943c1.5518-.30868 3.1604-.15025 4.6222.45525s2.7112 1.63088 3.5903 2.94647c.879 1.3156 1.3482 2.86231 1.3482 4.44461 0 2.1217-.8428 4.1565-2.3431 5.6568s-3.5352 2.3432-5.6569 2.3432z" opacity=".5"/>
17
- <path className="chunk" d="m20 11.9998h2c0-1.3133-.2587-2.61362-.7612-3.82688-.5026-1.21325-1.2391-2.31565-2.1677-3.24423-.9286-.92859-2.031-1.66518-3.2443-2.16773-1.2132-.50255-2.5136-.7612-3.8268-.7612v2c2.1217 0 4.1566.84285 5.6569 2.34314 1.5002 1.50029 2.3431 3.53512 2.3431 5.6569z" fill="#ff5416"/>
18
- <% end %>
File without changes
@@ -1,19 +0,0 @@
1
- module AblyUi
2
- module Core
3
- class Loader < ViewComponent::Base
4
- attr_reader :size
5
- attr_reader :ring_color
6
- attr_reader :additional_css
7
-
8
- def initialize(
9
- size: '1.5rem',
10
- ring_color: 'text-dark-grey',
11
- additional_css: ''
12
- )
13
- @size = size
14
- @ring_color = ring_color
15
- @additional_css = additional_css
16
- end
17
- end
18
- end
19
- end
@@ -1,3 +0,0 @@
1
- <%= link_to logo_href, class: 'block', style: "height: 2.125rem", data: { id: data_id }, **additional_link_attrs do %>
2
- <%= tag.img src: logo_url, width: "108px", alt: "Ably logo", **additional_img_attrs %>
3
- <% end %>
File without changes
@@ -1,20 +0,0 @@
1
- import React from "react";
2
- import T from "prop-types";
3
-
4
- const Logo = ({ dataId, logoUrl, href = "/", additionalImgAttrs, additionalLinkAttrs }) => {
5
- return (
6
- <a href={href} data-id={dataId} className="block" style={{ height: "2.125rem" }} {...additionalLinkAttrs}>
7
- <img src={logoUrl} width="108px" alt="Ably logo" {...additionalImgAttrs} />
8
- </a>
9
- );
10
- };
11
-
12
- Logo.propTypes = {
13
- dataId: T.string,
14
- href: T.string,
15
- logoUrl: T.string,
16
- additionalImgAttrs: T.object,
17
- additionalLinkAttrs: T.object,
18
- };
19
-
20
- export default React.memo(Logo);
@@ -1,31 +0,0 @@
1
- module AblyUi
2
- module Core
3
- class Logo < ViewComponent::Base
4
- include AblyUi::Core::MeganavConfig
5
-
6
- attr_reader :href,
7
- :logo_url,
8
- :data_id,
9
- :additional_img_attrs,
10
- :additional_link_attrs
11
-
12
- def initialize(
13
- href:,
14
- logo_url:,
15
- data_id: '',
16
- additional_img_attrs: {},
17
- additional_link_attrs: {}
18
- )
19
- @data_id = data_id
20
- @href = href
21
- @logo_url = logo_url
22
- @additional_img_attrs = additional_img_attrs
23
- @additional_link_attrs = additional_link_attrs
24
- end
25
-
26
- def logo_href
27
- href.blank? ? '/' : href
28
- end
29
- end
30
- end
31
- end
@@ -1,31 +0,0 @@
1
- <%= tag.nav(class: ["ui-meganav-wrapper", theme(:background_color), theme(:bar_shadow)], data: { id: "meganav" }, aria: { label: "Main" }) do %>
2
- <%= notice %>
3
-
4
- <div class="ui-meganav ui-grid-px">
5
- <div className="mr-24">
6
- <%= render(AblyUi::Core::Logo.new(data_id: "meganav-logo", href: logo_link, logo_url: ably_logo)) %>
7
- </div>
8
- <%= render(AblyUi::Core::MeganavItemsDesktop.new(theme_name: @theme_name, url_base: url_base)) %>
9
-
10
- <% if @session_data[:signedIn] %>
11
- <%= render(AblyUi::Core::MeganavItemsSignedIn.new(session_data: @session_data, theme_name: @theme_name, url_base: url_base)) %>
12
- <% else %>
13
- <ul class="hidden md:flex items-center">
14
- <li class="ui-meganav-item">
15
- <%= link_to "Contact us", abs_url("/contact"), data: { id: "meganav-link" }, class: ["ui-meganav-link", theme(:text_color)] %>
16
- </li>
17
- <li class="ui-meganav-item">
18
- <%= link_to "Login", abs_url(login_link), data: { id: "meganav-link" }, class: ["ui-meganav-link", "mr-0", theme(:text_color)] %>
19
- </li>
20
- <li class="ui-meganav-item">
21
- <%= render(AblyUi::Core::MeganavSearch.new(url_base: url_base)) %>
22
- </li>
23
- <li class="ui-meganav-item">
24
- <%= link_to "Sign up free", abs_url("/sign-up"), data: { id: "meganav-sign-up-btn" }, class: ["ui-btn", "p-btn-small", theme(:button_background_color), theme(:button_text_color)] %>
25
- </li>
26
- </ul>
27
- <% end %>
28
-
29
- <%= render(AblyUi::Core::MeganavItemsMobile.new(session_data: @session_data, theme_name: @theme_name, login_link: login_link, url_base: url_base)) %>
30
- </div>
31
- <% end %>
@@ -1,123 +0,0 @@
1
- import React, { useEffect, useState } from "react";
2
- import T from "prop-types";
3
-
4
- import { connectState } from "../remote-data-store";
5
- import { selectSessionData } from "../remote-session-data";
6
-
7
- import Logo from "../Logo/component.jsx";
8
-
9
- import MeganavScripts from "./component.js";
10
- import MeganavItemsDesktop from "../MeganavItemsDesktop/component.jsx";
11
- import MeganavItemsSignedIn from "../MeganavItemsSignedIn/component.jsx";
12
- import MeganavItemsMobile from "../MeganavItemsMobile/component.jsx";
13
- import Notice from "../Notice/component.jsx";
14
- import MeganavData from "./component.json";
15
- import _absUrl from "../url-base";
16
-
17
- import MeganavContentProducts from "../MeganavContentProducts/component.jsx";
18
- import MeganavContentUseCases from "../MeganavContentUseCases/component.jsx";
19
- import MeganavContentCompany from "../MeganavContentCompany/component.jsx";
20
- import MeganavContentDevelopers from "../MeganavContentDevelopers/component.jsx";
21
- import MeganavSearch from "../MeganavSearch/component.jsx";
22
-
23
- const SignIn = ({ sessionState, theme, loginLink, absUrl }) => {
24
- return sessionState.signedIn ? (
25
- <MeganavItemsSignedIn absUrl={absUrl} sessionState={sessionState} theme={theme} />
26
- ) : (
27
- <ul className="hidden md:flex items-center">
28
- <li className="ui-meganav-item">
29
- <a href={absUrl("/contact")} className={`ui-meganav-link ${theme.textColor}`} data-id="meganav-link">
30
- Contact us
31
- </a>
32
- </li>
33
- <li className="ui-meganav-item">
34
- <a href={absUrl(loginLink)} className={`ui-meganav-link mr-0 ${theme.textColor}`} data-id="meganav-link">
35
- Login
36
- </a>
37
- </li>
38
- <li className="ui-meganav-item">
39
- <MeganavSearch absUrl={absUrl} />
40
- </li>
41
- <li className="ui-meganav-item">
42
- <a href={absUrl("/sign-up")} data-id="meganav-sign-up-btn" className={`ui-btn p-btn-small ${theme.buttonBackgroundColor} ${theme.buttonTextColor}`}>
43
- Sign up free
44
- </a>
45
- </li>
46
- </ul>
47
- );
48
- };
49
-
50
- SignIn.propTypes = {
51
- sessionState: T.object,
52
- paths: T.object,
53
- theme: T.object,
54
- loginLink: T.string,
55
- absUrl: T.func,
56
- };
57
-
58
- const SignInPlaceholder = () => <div />;
59
-
60
- const panels = {
61
- MeganavContentProducts: MeganavContentProducts,
62
- MeganavContentUseCases: MeganavContentUseCases,
63
- MeganavContentCompany: MeganavContentCompany,
64
- MeganavContentDevelopers: MeganavContentDevelopers,
65
- };
66
-
67
- export default function Meganav({ paths, themeName = "white", notice, loginLink = "/login", urlBase, addSearchApiKey }) {
68
- const [sessionState, setSessionState] = useState(null);
69
-
70
- useEffect(() => {
71
- // Note if state is never updated, sessionState stays null and never removes the placeholder.
72
- // This makes SSR consistent (ie. we always show the placeholder)
73
- connectState(selectSessionData, setSessionState);
74
- }, []);
75
-
76
- useEffect(() => {
77
- const teardown = MeganavScripts({ themeName, addSearchApiKey });
78
- return () => teardown();
79
- }, [sessionState]);
80
-
81
- const theme = MeganavData.themes[themeName];
82
- const absUrl = (path) => _absUrl(path, urlBase);
83
-
84
- return (
85
- <nav className={`ui-meganav-wrapper ${theme.backgroundColor} ${theme.barShadow}`} data-id="meganav" aria-label="Main">
86
- {notice && <Notice {...notice.props} config={notice.config} />}
87
- <div className="ui-meganav ui-grid-px">
88
- <div className="mr-24">
89
- <Logo dataId="meganav-logo" href={urlBase} logoUrl={paths.logo} />
90
- </div>
91
-
92
- <MeganavItemsDesktop panels={panels} paths={paths} theme={theme} absUrl={absUrl} />
93
-
94
- {/* Because we load the session state through fetch, we display a placeholder until fetch returns */}
95
- {sessionState ? <SignIn sessionState={sessionState} theme={theme} loginLink={loginLink} absUrl={absUrl} /> : <SignInPlaceholder />}
96
-
97
- <MeganavItemsMobile panels={panels} sessionState={sessionState || {}} paths={paths} theme={theme} loginLink={loginLink} absUrl={absUrl} />
98
- </div>
99
- </nav>
100
- );
101
- }
102
-
103
- Meganav.propTypes = {
104
- paths: T.object,
105
- themeName: T.oneOf(["white", "black", "transparentToWhite"]),
106
- notice: T.shape({
107
- props: T.shape({
108
- title: T.string,
109
- bodyText: T.string,
110
- buttonLink: T.string,
111
- buttonLabel: T.string,
112
- closeBtn: T.bool,
113
- }),
114
- config: T.shape({
115
- cookieId: T.string,
116
- noticeId: T.string,
117
- collapse: T.bool,
118
- }),
119
- }),
120
- loginLink: T.string,
121
- urlBase: T.string,
122
- addSearchApiKey: T.string,
123
- };
@@ -1,60 +0,0 @@
1
- require 'json'
2
- require_relative '../notice/notice.rb'
3
-
4
- module AblyUi
5
- module Core
6
- class Meganav < ViewComponent::Base
7
- include MeganavConfig
8
- include Util
9
- include SharedAssets
10
- attr_reader :options, :login_link, :logo_link, :url_base
11
-
12
- renders_one :notice, AblyUi::Core::Notice
13
-
14
- def initialize(
15
- session_data: {},
16
- theme_name: :white,
17
- login_link: '/login',
18
- logo_link: '',
19
- url_base: AblyUi::Core::Util::DEFAULT_URL_BASE
20
- )
21
- @session_data = session_data
22
- @theme_name = theme_name
23
- @options = options
24
- @login_link = login_link
25
- @url_base = url_base
26
- @logo_link = logo_link || url_base
27
- theme_setup(theme_name)
28
- end
29
-
30
- def panels
31
- [
32
- {
33
- label: 'Products',
34
- short_label: 'Products',
35
- id: 'products-panel',
36
- class: 'AblyUi::Core::MeganavContentProducts'
37
- },
38
- {
39
- label: 'Solutions',
40
- short_label: 'Solutions',
41
- id: 'use-cases-panel',
42
- class: 'AblyUi::Core::MeganavContentUseCases'
43
- },
44
- {
45
- label: 'Company',
46
- short_label: 'Company',
47
- id: 'company-panel',
48
- class: 'AblyUi::Core::MeganavContentCompany'
49
- },
50
- {
51
- label: 'Developers',
52
- short_label: 'Developers',
53
- id: 'developers-panel',
54
- class: 'AblyUi::Core::MeganavContentDevelopers'
55
- }
56
- ]
57
- end
58
- end
59
- end
60
- end
@@ -1,5 +0,0 @@
1
- <div class="hidden 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" data-id="meganav-company-panel-blog-section">
2
- <h3 class="ui-meganav-overline" id="meganav-company-panel-recent-blog-posts">Blog</h3>
3
- <ul class="mb-8" aria-labelledby="meganav-company-panel-recent-blog-posts" data-id="meganav-company-panel-recent-blog-posts"></ul>
4
- <%= render(AblyUi::Core::FeaturedLink.new(url: abs_url("/blog"), text_size: 'text-p3')) do %>More from our Blog<% end %>
5
- </div>