@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
@@ -0,0 +1,244 @@
1
+ import React from "react";
2
+
3
+ import Icon from "./Icon";
4
+ import { AbsUrl } from "./Meganav";
5
+
6
+ const MeganavContentUseCases = ({ absUrl }: { absUrl: AbsUrl }) => (
7
+ <div className="flex max-w-screen-xl mx-auto">
8
+ <div className="ui-meganav-content-spacer bg-extra-light-grey"></div>
9
+ <section className="grid grid-cols-12 ui-grid-gap-x w-full">
10
+ <div className="col-span-full md:col-span-4 py-24 lg:py-32 px-24 sm:px-32 md:pl-0 md:pr-24 bg-extra-light-grey">
11
+ <h3
12
+ className="ui-meganav-overline"
13
+ id="meganav-use-cases-panel-use-cases"
14
+ >
15
+ Solutions
16
+ </h3>
17
+ <ul aria-labelledby="meganav-use-cases-panel-industry-use-cases">
18
+ <li>
19
+ <a
20
+ href={absUrl("/solutions/chat")}
21
+ className="ui-meganav-media-with-image group"
22
+ >
23
+ <Icon name="icon-display-chat-stack-col" size="2.5rem" />
24
+ <div className="flex flex-col justify-center">
25
+ <p className="ui-meganav-media-heading">Live Chat</p>
26
+ <p className="ui-meganav-media-copy">
27
+ Deliver highly reliable chat experiences at scale.
28
+ </p>
29
+ </div>
30
+ </a>
31
+ </li>
32
+ <li>
33
+ <a
34
+ href={absUrl("/solutions/multiplayer-collaboration")}
35
+ className="ui-meganav-media-with-image group"
36
+ >
37
+ <Icon name="icon-multi-user-spaces-col" size="2.5rem" />
38
+ <div className="flex flex-col justify-center">
39
+ <p className="ui-meganav-media-heading">
40
+ Multiplayer Collaboration
41
+ </p>
42
+ <p className="ui-meganav-media-copy">
43
+ Bring collaborative multiplayer experiences to your users.
44
+ </p>
45
+ </div>
46
+ </a>
47
+ </li>
48
+ <li>
49
+ <a
50
+ href={absUrl("/solutions/data-broadcast")}
51
+ className="ui-meganav-media-with-image group"
52
+ >
53
+ <Icon name="icon-display-data-broadcast-col" size="2.5rem" />
54
+ <div className="flex flex-col justify-center">
55
+ <p className="ui-meganav-media-heading">Data Broadcast</p>
56
+ <p className="ui-meganav-media-copy">
57
+ Broadcast realtime event data to millions of devices around
58
+ the globe.
59
+ </p>
60
+ </div>
61
+ </a>
62
+ </li>
63
+ <li>
64
+ <a
65
+ href={absUrl("/solutions/data-synchronization")}
66
+ className="ui-meganav-media-with-image group"
67
+ >
68
+ <Icon
69
+ name="icon-display-data-synchronization-col"
70
+ size="2.5rem"
71
+ />
72
+ <div className="flex flex-col justify-center">
73
+ <p className="ui-meganav-media-heading">Data Synchronization</p>
74
+ <p className="ui-meganav-media-copy">
75
+ Keep your frontend and backend in realtime sync, at global
76
+ scale.
77
+ </p>
78
+ </div>
79
+ </a>
80
+ </li>
81
+ <li>
82
+ <a
83
+ href={absUrl("/push-notifications")}
84
+ className="ui-meganav-media-with-image group"
85
+ >
86
+ <Icon name="icon-display-push-notifications-col" size="2.5rem" />
87
+ <div className="flex flex-col justify-center">
88
+ <p className="ui-meganav-media-heading">Notifications</p>
89
+ <p className="ui-meganav-media-copy">
90
+ Deliver cross-platform push notifications with a simple
91
+ unified API.
92
+ </p>
93
+ </div>
94
+ </a>
95
+ </li>
96
+ <li>
97
+ <a
98
+ href={absUrl("/solutions/asset-tracking")}
99
+ className="ui-meganav-media-with-image group"
100
+ >
101
+ <Icon name="icon-display-asset-tracking-col" size="2.5rem" />
102
+ <div className="flex flex-col justify-center">
103
+ <p className="ui-meganav-media-heading">
104
+ Asset Tracking (Beta)
105
+ </p>
106
+ <p className="ui-meganav-media-copy">
107
+ Track assets in realtime with a solution optimised for last
108
+ mile logistics.
109
+ </p>
110
+ </div>
111
+ </a>
112
+ </li>
113
+ </ul>
114
+ </div>
115
+
116
+ <div className="col-span-full md:col-span-4 pt-24 pb-0 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white">
117
+ <h3
118
+ className="ui-meganav-overline"
119
+ id="meganav-use-cases-panel-industry"
120
+ >
121
+ Industry
122
+ </h3>
123
+ <ul aria-labelledby="meganav-use-cases-panel-industry">
124
+ <li>
125
+ <a
126
+ href={absUrl("/solutions/edtech")}
127
+ className="ui-meganav-media group"
128
+ >
129
+ <p className="ui-meganav-media-heading">EdTech</p>
130
+ <p className="ui-meganav-media-copy">
131
+ Deliver interactive learning experiences.
132
+ </p>
133
+ </a>
134
+ </li>
135
+ <li>
136
+ <a
137
+ href={absUrl("/solutions/fintech")}
138
+ className="ui-meganav-media group"
139
+ >
140
+ <p className="ui-meganav-media-heading">FinTech</p>
141
+ <p className="ui-meganav-media-copy">
142
+ Deliver personalised financial data in realtime.
143
+ </p>
144
+ </a>
145
+ </li>
146
+ <li>
147
+ <a
148
+ href={absUrl("/solutions/automotive-logistics-and-mobility")}
149
+ className="ui-meganav-media group"
150
+ >
151
+ <p className="ui-meganav-media-heading">
152
+ Automotive, Logistics, & Mobility
153
+ </p>
154
+ <p className="ui-meganav-media-copy">
155
+ Power diagnostics, order tracking and more.
156
+ </p>
157
+ </a>
158
+ </li>
159
+ <li>
160
+ <a
161
+ href={absUrl("/solutions/b2b-platforms")}
162
+ className="ui-meganav-media group"
163
+ >
164
+ <p className="ui-meganav-media-heading">B2B Platforms</p>
165
+ <p className="ui-meganav-media-copy">
166
+ Empower your customers with realtime solutions.
167
+ </p>
168
+ </a>
169
+ </li>
170
+ <li>
171
+ <a
172
+ href={absUrl("/solutions/healthcare")}
173
+ className="ui-meganav-media group"
174
+ >
175
+ <p className="ui-meganav-media-heading">Healthcare (HIPAA)</p>
176
+ <p className="ui-meganav-media-copy">
177
+ Provide trustworthy, HIPAA-compliant realtime apps.
178
+ </p>
179
+ </a>
180
+ </li>
181
+ </ul>
182
+ </div>
183
+
184
+ <div className="col-span-full md:col-span-4 pt-0 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white">
185
+ <ul
186
+ aria-labelledby="meganav-use-cases-panel-solutions"
187
+ className="mt-0 md:mt-40"
188
+ >
189
+ <li>
190
+ <a
191
+ href={absUrl("/solutions/ecommerce-and-retail")}
192
+ className="ui-meganav-media group"
193
+ >
194
+ <p className="ui-meganav-media-heading">eCommerce & Retail</p>
195
+ <p className="ui-meganav-media-copy">
196
+ Enrich customer experiences with realtime updates.
197
+ </p>
198
+ </a>
199
+ </li>
200
+ <li>
201
+ <a
202
+ href={absUrl("/solutions/sports-and-media")}
203
+ className="ui-meganav-media group"
204
+ >
205
+ <p className="ui-meganav-media-heading">
206
+ Sports, Media & Audience Engagement
207
+ </p>
208
+ <p className="ui-meganav-media-copy">
209
+ Deliver engaging global realtime experiences.
210
+ </p>
211
+ </a>
212
+ </li>
213
+ <li>
214
+ <a
215
+ href={absUrl("/solutions/gaming")}
216
+ className="ui-meganav-media group"
217
+ >
218
+ <p className="ui-meganav-media-heading">Gaming</p>
219
+ <p className="ui-meganav-media-copy">
220
+ Power ultra fast and reliable gaming experiences.
221
+ </p>
222
+ </a>
223
+ </li>
224
+ <li>
225
+ <a
226
+ href={absUrl("/solutions/iot-and-connected-devices")}
227
+ className="ui-meganav-media group"
228
+ >
229
+ <p className="ui-meganav-media-heading">
230
+ IoT & Connected Devices
231
+ </p>
232
+ <p className="ui-meganav-media-copy">
233
+ Monitor and control global IoT deployments in realtime.
234
+ </p>
235
+ </a>
236
+ </li>
237
+ </ul>
238
+ </div>
239
+ </section>
240
+ <div className="ui-meganav-content-spacer"></div>
241
+ </div>
242
+ );
243
+
244
+ export default MeganavContentUseCases;
@@ -1,9 +1,23 @@
1
- import React from "react";
2
- import T from "prop-types";
1
+ import React, { ReactNode } from "react";
3
2
 
4
- import Icon from "../Icon/component.jsx";
3
+ import Icon from "./Icon";
4
+ import { MeganavTheme } from "./Meganav";
5
5
 
6
- const MeganavControl = ({ ariaControls, ariaLabel, children, theme, additionalCSS }) => (
6
+ type MeganavControlProps = {
7
+ ariaControls: string;
8
+ ariaLabel: string;
9
+ children: ReactNode;
10
+ theme: MeganavTheme;
11
+ additionalCSS?: string;
12
+ };
13
+
14
+ const MeganavControl = ({
15
+ ariaControls,
16
+ ariaLabel,
17
+ children,
18
+ theme,
19
+ additionalCSS,
20
+ }: MeganavControlProps) => (
7
21
  <button
8
22
  type="button"
9
23
  data-id="meganav-control"
@@ -22,12 +36,4 @@ const MeganavControl = ({ ariaControls, ariaLabel, children, theme, additionalCS
22
36
  </button>
23
37
  );
24
38
 
25
- MeganavControl.propTypes = {
26
- ariaControls: T.string,
27
- ariaLabel: T.string,
28
- children: T.node,
29
- theme: T.object,
30
- additionalCSS: T.string,
31
- };
32
-
33
39
  export default MeganavControl;
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
- import T from "prop-types";
3
2
 
4
- import Icon from "../Icon/component.jsx";
3
+ import Icon from "./Icon";
4
+ import { MeganavTheme } from "./Meganav";
5
5
 
6
- const MeganavControlMobileDropdown = ({ theme }) => (
6
+ const MeganavControlMobileDropdown = ({ theme }: { theme: MeganavTheme }) => (
7
7
  <button
8
8
  type="button"
9
9
  className="block ml-24 mr-0 px-0 py-16 hover:text-gui-hover focus:text-gui-focus focus:outline-none"
@@ -28,8 +28,4 @@ const MeganavControlMobileDropdown = ({ theme }) => (
28
28
  </button>
29
29
  );
30
30
 
31
- MeganavControlMobileDropdown.propTypes = {
32
- theme: T.object,
33
- };
34
-
35
31
  export default MeganavControlMobileDropdown;
@@ -1,9 +1,15 @@
1
1
  import React from "react";
2
- import T from "prop-types";
3
2
 
4
- import Icon from "../Icon/component.jsx";
3
+ import Icon from "./Icon";
4
+ type MeganavControlMobilePanelCloseProps = {
5
+ ariaControls: string;
6
+ displayHr?: boolean;
7
+ };
5
8
 
6
- const MeganavControlMobilePanelClose = ({ ariaControls, displayHr = true }) => (
9
+ const MeganavControlMobilePanelClose = ({
10
+ ariaControls,
11
+ displayHr = true,
12
+ }: MeganavControlMobilePanelCloseProps) => (
7
13
  <div className="mx-24 md:mx-32">
8
14
  <button
9
15
  type="button"
@@ -13,16 +19,16 @@ const MeganavControlMobilePanelClose = ({ ariaControls, displayHr = true }) => (
13
19
  aria-controls={ariaControls}
14
20
  aria-label="Hide panel"
15
21
  >
16
- <Icon name="icon-gui-disclosure-arrow" color="text-cool-black" size="1.5rem" additionalCSS="relative -top-1 transform rotate-180" />
22
+ <Icon
23
+ name="icon-gui-disclosure-arrow"
24
+ color="text-cool-black"
25
+ size="1.5rem"
26
+ additionalCSS="relative -top-1 transform rotate-180"
27
+ />
17
28
  Back
18
29
  </button>
19
30
  {displayHr ? <hr className="ui-meganav-hr" /> : null}
20
31
  </div>
21
32
  );
22
33
 
23
- MeganavControlMobilePanelClose.propTypes = {
24
- ariaControls: T.string,
25
- displayHr: T.bool,
26
- };
27
-
28
34
  export default MeganavControlMobilePanelClose;
@@ -0,0 +1,31 @@
1
+ import React, { ReactNode } from "react";
2
+
3
+ import Icon from "./Icon";
4
+ type MeganavControlMobilePanelOpenProps = {
5
+ ariaControls: string;
6
+ children: ReactNode;
7
+ };
8
+
9
+ const MeganavControlMobilePanelOpen = ({
10
+ ariaControls,
11
+ children,
12
+ }: MeganavControlMobilePanelOpenProps) => (
13
+ <button
14
+ type="button"
15
+ className="ui-meganav-mobile-link"
16
+ data-id="meganav-control-mobile-panel-open"
17
+ aria-expanded="false"
18
+ aria-controls={ariaControls}
19
+ aria-label={`Show ${children}`}
20
+ >
21
+ {children}
22
+ <Icon
23
+ name="icon-gui-disclosure-arrow"
24
+ color="text-cool-black"
25
+ size="1.5rem"
26
+ additionalCSS="relative -top-1 ml-auto float-right"
27
+ />
28
+ </button>
29
+ );
30
+
31
+ export default MeganavControlMobilePanelOpen;
@@ -0,0 +1,68 @@
1
+ import React from "react";
2
+
3
+ import MeganavData from "./Meganav/component.json";
4
+ import MeganavControl from "./MeganavControl";
5
+ import { AbsUrl, MeganavPanels, MeganavTheme } from "./Meganav";
6
+
7
+ type MeganavDesktopItems = {
8
+ panels: MeganavPanels;
9
+ paths?: {
10
+ logo: string;
11
+ iconSprites: string;
12
+ ablyStack: string;
13
+ blogThumb1: string;
14
+ blogThumb2: string;
15
+ blogThumb3: string;
16
+ };
17
+ theme: MeganavTheme;
18
+ absUrl: AbsUrl;
19
+ };
20
+
21
+ const MeganavDesktopItems = ({
22
+ panels,
23
+ paths,
24
+ theme,
25
+ absUrl,
26
+ }: MeganavDesktopItems) => (
27
+ <ul className="hidden md:flex" data-id="meganav-items-desktop">
28
+ {MeganavData.panels.map((panel) => {
29
+ const PanelComponent = panels[panel.component];
30
+ const bgCSS = ["products-panel", "use-cases-panel"].includes(panel.id)
31
+ ? "ui-meganav-panel-split-bg"
32
+ : "";
33
+
34
+ return (
35
+ <li className="ui-meganav-item" key={panel.id}>
36
+ <MeganavControl
37
+ theme={theme}
38
+ ariaControls={panel.id}
39
+ ariaLabel={panel.label}
40
+ >
41
+ <span className="hidden lg:inline">{panel.label}</span>
42
+ <span className="lg:hidden">{panel.shortLabel}</span>
43
+ </MeganavControl>
44
+
45
+ <div
46
+ className={`ui-meganav-panel invisible ${bgCSS}`}
47
+ id={panel.id}
48
+ data-id="meganav-panel"
49
+ >
50
+ <PanelComponent paths={paths} absUrl={absUrl} />
51
+ </div>
52
+ </li>
53
+ );
54
+ })}
55
+
56
+ <li className="ui-meganav-item">
57
+ <a
58
+ href={absUrl("/pricing")}
59
+ data-id="meganav-link"
60
+ className={`ui-meganav-link h-64 items-center flex ${theme.textColor}`}
61
+ >
62
+ Pricing
63
+ </a>
64
+ </li>
65
+ </ul>
66
+ );
67
+
68
+ export default React.memo(MeganavDesktopItems);
@@ -0,0 +1,197 @@
1
+ import React from "react";
2
+
3
+ import SignOutLink from "./SignOutLink";
4
+ import MeganavSearchSuggestions from "./MeganavSearchSuggestions";
5
+ import Icon from "./Icon";
6
+ import MeganavData from "./Meganav/component.json";
7
+ import MeganavControlMobileDropdown from "./MeganavControlMobileDropdown";
8
+ import MeganavControlMobilePanelClose from "./MeganavControlMobilePanelClose";
9
+ import MeganavControlMobilePanelOpen from "./MeganavControlMobilePanelOpen";
10
+ import MeganavSearchAutocomplete from "./MeganavSearchAutocomplete";
11
+ import {
12
+ AbsUrl,
13
+ MeganavPanels,
14
+ MeganavSessionState,
15
+ MeganavTheme,
16
+ } from "./Meganav";
17
+
18
+ type MeganavItemsMobileProps = {
19
+ panels: MeganavPanels;
20
+ paths?: {
21
+ iconSprites: string;
22
+ };
23
+ sessionState?: MeganavSessionState;
24
+ theme: MeganavTheme;
25
+ loginLink: string;
26
+ absUrl: AbsUrl;
27
+ };
28
+
29
+ const MeganavItemsMobile = ({
30
+ panels,
31
+ paths,
32
+ sessionState,
33
+ theme,
34
+ loginLink,
35
+ absUrl,
36
+ }: MeganavItemsMobileProps) => {
37
+ const classNames = `ui-meganav-link ${theme.textColor}`;
38
+
39
+ return (
40
+ <ul className="flex md:hidden" data-id="meganav-items-mobile">
41
+ <li>
42
+ {sessionState?.signedIn && sessionState?.logOut ? (
43
+ <SignOutLink absUrl={absUrl} {...sessionState.logOut}>
44
+ {({ text, href, onClick }) => (
45
+ <a
46
+ onClick={onClick}
47
+ href={absUrl(href)}
48
+ className={classNames}
49
+ data-id="meganav-link"
50
+ >
51
+ {text}
52
+ </a>
53
+ )}
54
+ </SignOutLink>
55
+ ) : (
56
+ <a
57
+ href={absUrl(loginLink)}
58
+ className={classNames}
59
+ data-id="meganav-link"
60
+ >
61
+ Login
62
+ </a>
63
+ )}
64
+ </li>
65
+
66
+ <li className="ui-meganav-item">
67
+ <MeganavControlMobileDropdown theme={theme} />
68
+
69
+ <div
70
+ className="ui-meganav-mobile-dropdown invisible"
71
+ id="meganav-mobile-dropdown"
72
+ data-id="meganav-mobile-dropdown"
73
+ >
74
+ <div className="pt-24 pb-16 ui-grid-px bg-white">
75
+ <form className="mb-16" action={absUrl("/search")} method="get">
76
+ <div className="relative w-full">
77
+ <Icon
78
+ name="icon-gui-search"
79
+ color="text-cool-black"
80
+ size="1.5rem"
81
+ additionalCSS="absolute top-12 left-16 hover:text-gui-hover"
82
+ />
83
+ <button
84
+ type="button"
85
+ className="absolute top-12 right-16 p-0 focus:outline-gui-focus m-0 md:hidden invisible"
86
+ data-id="meganav-search-input-clear"
87
+ >
88
+ <Icon
89
+ name="icon-gui-cross-circled-fill"
90
+ color="text-dark-grey"
91
+ size="1.5rem"
92
+ additionalCSS=""
93
+ />
94
+ </button>
95
+ <input
96
+ type="search"
97
+ name="q"
98
+ className="ui-input px-48 h-48"
99
+ style={{ maxWidth: "none" }}
100
+ placeholder="Search"
101
+ autoComplete="off"
102
+ data-id="meganav-mobile-search-input"
103
+ />
104
+
105
+ <MeganavSearchAutocomplete />
106
+ </div>
107
+ </form>
108
+
109
+ <div
110
+ className="max-h-0 overflow-hidden transition-all"
111
+ data-id="meganav-mobile-search-suggestions"
112
+ >
113
+ <MeganavSearchSuggestions
114
+ absUrl={absUrl}
115
+ displaySupportLink={false}
116
+ />
117
+ </div>
118
+
119
+ <ul className="mb-16" data-id="meganav-mobile-panel-controls">
120
+ {MeganavData.panels.map((panel) => {
121
+ const PanelComponent = panels[panel.component];
122
+ const displayHr = [
123
+ "company-panel",
124
+ "developers-panel",
125
+ ].includes(panel.id);
126
+
127
+ return (
128
+ <li
129
+ className="ui-meganav-mobile-item"
130
+ key={`${panel.id}-mobile`}
131
+ >
132
+ <MeganavControlMobilePanelOpen
133
+ ariaControls={`${panel.id}-mobile`}
134
+ >
135
+ {panel.label}
136
+ </MeganavControlMobilePanelOpen>
137
+
138
+ <div
139
+ className="ui-meganav-panel-mobile hidden"
140
+ id={`${panel.id}-mobile`}
141
+ data-scroll-lock-scrollable
142
+ >
143
+ <MeganavControlMobilePanelClose
144
+ ariaControls={`${panel.id}-mobile`}
145
+ displayHr={displayHr}
146
+ />
147
+ <PanelComponent paths={paths} absUrl={absUrl} />
148
+ </div>
149
+ </li>
150
+ );
151
+ })}
152
+ <li>
153
+ <a href={absUrl("/pricing")} className="ui-meganav-mobile-link">
154
+ Pricing
155
+ </a>
156
+ </li>
157
+ </ul>
158
+
159
+ <hr className="ui-meganav-hr mb-20" />
160
+
161
+ <div className="flex justify-between items-center mb-16">
162
+ <a
163
+ href={absUrl("/contact")}
164
+ className="text-menu2 font-medium block ml-0 mr-8 lg:mx-12 p-0 hover:text-gui-hover focus:text-gui-focus focus:outline-none"
165
+ >
166
+ Contact us
167
+ </a>
168
+ {sessionState?.signedIn && sessionState?.account ? (
169
+ <a
170
+ href={absUrl(sessionState.account.links.dashboard.href)}
171
+ className="ui-btn-secondary"
172
+ >
173
+ Dashboard
174
+ </a>
175
+ ) : (
176
+ <a href={absUrl("/sign-up")} className="ui-btn">
177
+ Sign up free
178
+ </a>
179
+ )}
180
+ </div>
181
+ </div>
182
+ </div>
183
+ </li>
184
+ </ul>
185
+ );
186
+ };
187
+
188
+ export default React.memo(MeganavItemsMobile, (oldState, newState) => {
189
+ const { paths: pathsOld, theme: themeOld } = oldState;
190
+ const { paths: pathsNew, theme: themeNew } = newState;
191
+
192
+ return (
193
+ pathsOld === pathsNew &&
194
+ themeOld === themeNew &&
195
+ Object.keys(newState.sessionState || {}).length === 0
196
+ );
197
+ });