@ably/ui 13.3.0 → 14.0.0-dev.3f64b93

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 (510) 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 +7 -10
  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 +10 -13
  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 +19 -22
  26. package/core/Flash.js +1 -0
  27. package/core/Footer/.DS_Store +0 -0
  28. package/core/Footer/component.css +22 -25
  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 +103 -106
  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 +4 -7
  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 +34 -5
  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 +122 -0
  203. package/core/styles/forms.css +62 -0
  204. package/core/styles/layout.css +19 -0
  205. package/core/styles/properties.css +276 -0
  206. package/core/styles/text.css +166 -0
  207. package/core/styles.base.css +1 -0
  208. package/core/styles.components.css +33 -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 +67 -0
  213. package/core/utils/syntax-highlighter.js +1 -0
  214. package/package.json +38 -34
  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.css +7 -9
  231. package/src/core/ContactFooter.tsx +92 -0
  232. package/src/core/CookieMessage/.DS_Store +0 -0
  233. package/src/core/CookieMessage/CookieMessage.stories.tsx +12 -0
  234. package/src/core/CookieMessage/component.css +10 -12
  235. package/src/core/{CookieMessage/component.jsx → CookieMessage.tsx} +16 -11
  236. package/src/core/CustomerLogos/.DS_Store +0 -0
  237. package/src/core/CustomerLogos/CustomerLogos.stories.tsx +43 -0
  238. package/src/core/CustomerLogos.tsx +35 -0
  239. package/src/core/DropdownMenu/.DS_Store +0 -0
  240. package/src/core/DropdownMenu/DropdownMenu.stories.tsx +48 -0
  241. package/src/core/{DropdownMenu/component.jsx → DropdownMenu.tsx} +64 -36
  242. package/src/core/Expander/Expander.stories.tsx +132 -0
  243. package/src/core/Expander.tsx +54 -0
  244. package/src/core/FeaturedLink/.DS_Store +0 -0
  245. package/src/core/FeaturedLink/FeaturedLink.stories.tsx +43 -0
  246. package/src/core/{FeaturedLink/component.jsx → FeaturedLink.tsx} +26 -18
  247. package/src/core/Flash/.DS_Store +0 -0
  248. package/src/core/Flash/Flash.stories.tsx +37 -0
  249. package/src/core/Flash/component.css +19 -21
  250. package/src/core/{Flash/component.jsx → Flash.tsx} +78 -39
  251. package/src/core/Footer/.DS_Store +0 -0
  252. package/src/core/Footer/Footer.stories.tsx +26 -0
  253. package/src/core/Footer/component.css +22 -24
  254. package/src/core/{Footer/component.jsx → Footer.tsx} +237 -70
  255. package/src/core/Icon/.DS_Store +0 -0
  256. package/src/core/Icon/Icon.stories.tsx +151 -0
  257. package/src/core/Icon.tsx +26 -0
  258. package/src/core/Loader/.DS_Store +0 -0
  259. package/src/core/Loader/Loader.stories.tsx +21 -0
  260. package/src/core/{Loader/component.jsx → Loader.tsx} +11 -8
  261. package/src/core/Logo/.DS_Store +0 -0
  262. package/src/core/Logo/Logo.stories.tsx +12 -0
  263. package/src/core/Logo.tsx +29 -0
  264. package/src/core/Meganav/.DS_Store +0 -0
  265. package/src/core/Meganav/Meganav.stories.tsx +86 -0
  266. package/src/core/Meganav/component.css +103 -105
  267. package/src/core/Meganav/component.js +6 -7
  268. package/src/core/Meganav.tsx +226 -0
  269. package/src/core/MeganavBlogPostsList/.DS_Store +0 -0
  270. package/src/core/{MeganavBlogPostsList/component.jsx → MeganavBlogPostsList.tsx} +15 -14
  271. package/src/core/{MeganavContentCompany/component.jsx → MeganavContentCompany.tsx} +82 -33
  272. package/src/core/{MeganavContentDevelopers/component.jsx → MeganavContentDevelopers.tsx} +98 -34
  273. package/src/core/MeganavContentProducts.tsx +165 -0
  274. package/src/core/MeganavContentUseCases.tsx +244 -0
  275. package/src/core/MeganavControl/.DS_Store +0 -0
  276. package/src/core/{MeganavControl/component.jsx → MeganavControl.tsx} +18 -12
  277. package/src/core/MeganavControlMobileDropdown/.DS_Store +0 -0
  278. package/src/core/{MeganavControlMobileDropdown/component.jsx → MeganavControlMobileDropdown.tsx} +3 -7
  279. package/src/core/MeganavControlMobilePanelClose/.DS_Store +0 -0
  280. package/src/core/{MeganavControlMobilePanelClose/component.jsx → MeganavControlMobilePanelClose.tsx} +15 -9
  281. package/src/core/MeganavControlMobilePanelOpen/.DS_Store +0 -0
  282. package/src/core/MeganavControlMobilePanelOpen.tsx +31 -0
  283. package/src/core/MeganavItemsDesktop.tsx +68 -0
  284. package/src/core/MeganavItemsMobile.tsx +197 -0
  285. package/src/core/{MeganavItemsSignedIn/component.jsx → MeganavItemsSignedIn.tsx} +55 -23
  286. package/src/core/MeganavSearch.tsx +36 -0
  287. package/src/core/MeganavSearchAutocomplete/.DS_Store +0 -0
  288. package/src/core/MeganavSearchAutocomplete.tsx +12 -0
  289. package/src/core/MeganavSearchPanel.tsx +52 -0
  290. package/src/core/MeganavSearchSuggestions/.DS_Store +0 -0
  291. package/src/core/MeganavSearchSuggestions.tsx +62 -0
  292. package/src/core/Notice/.DS_Store +0 -0
  293. package/src/core/Notice/component.css +4 -6
  294. package/src/core/Notice/component.js +1 -1
  295. package/src/core/Notice.tsx +103 -0
  296. package/src/core/SignOutLink.tsx +51 -0
  297. package/src/core/Slider/.DS_Store +0 -0
  298. package/src/core/Slider/Slider.stories.tsx +98 -0
  299. package/src/core/Slider/component.css +35 -5
  300. package/src/core/Slider.tsx +193 -0
  301. package/src/core/Table/.DS_Store +0 -0
  302. package/src/core/Table/Table.stories.tsx +12 -0
  303. package/src/core/Table/Table.tsx +59 -0
  304. package/src/core/Table/TableCell.tsx +109 -0
  305. package/src/core/Table/TableRow.tsx +25 -0
  306. package/src/core/Table/data.tsx +113 -0
  307. package/src/core/Table.tsx +26 -0
  308. package/src/core/Tooltip/.DS_Store +0 -0
  309. package/src/core/Tooltip/Tooltip.stories.tsx +27 -0
  310. package/src/core/Tooltip.tsx +88 -0
  311. package/src/core/icons/icon-gui-partial.svg +4 -0
  312. package/src/core/icons.js +6 -0
  313. package/src/core/{react-renderer.js → react-renderer.tsx} +9 -7
  314. package/src/core/styles/buttons.css +121 -123
  315. package/src/core/styles/forms.css +49 -51
  316. package/src/core/styles/layout.css +14 -16
  317. package/src/core/styles/properties.css +250 -259
  318. package/src/core/styles/text.css +165 -167
  319. package/src/core/styles.components.css +22 -24
  320. package/src/core/utils/syntax-highlighter.css +55 -59
  321. package/src/pages/Buttons.mdx +121 -0
  322. package/src/pages/Chips.mdx +136 -0
  323. package/src/pages/Colour.mdx +23 -0
  324. package/src/pages/Forms.mdx +173 -0
  325. package/src/pages/Layout.mdx +58 -0
  326. package/src/pages/Typography.mdx +206 -0
  327. package/src/pages/utils.ts +70 -0
  328. package/tailwind.config.js +1 -7
  329. package/tailwind.extend.js +1 -1
  330. package/core/.gitignore +0 -1
  331. package/core/Code.jsx +0 -684
  332. package/core/CompanyAutocomplete/component.css +0 -46
  333. package/core/CompanyAutocomplete/component.js +0 -2
  334. package/core/CompanyAutocomplete/component.js.LICENSE.txt +0 -1
  335. package/core/ConnectStateWrapper/component.js +0 -1
  336. package/core/ConnectStateWrapper.jsx +0 -222
  337. package/core/ContactFooter.jsx +0 -342
  338. package/core/CookieMessage/component.js +0 -1
  339. package/core/CookieMessage.jsx +0 -204
  340. package/core/CustomerLogos/component.js +0 -1
  341. package/core/CustomerLogos.jsx +0 -144
  342. package/core/DropdownMenu/component.js +0 -1
  343. package/core/DropdownMenu.jsx +0 -313
  344. package/core/FeatureFooter/component.css +0 -13
  345. package/core/FeatureFooter/component.js +0 -1
  346. package/core/FeaturedLink/component.js +0 -1
  347. package/core/FeaturedLink.jsx +0 -241
  348. package/core/Flash/component.js +0 -1
  349. package/core/Flash.jsx +0 -622
  350. package/core/Footer/component.js +0 -1
  351. package/core/Footer.jsx +0 -587
  352. package/core/Icon/component.js +0 -1
  353. package/core/Icon.jsx +0 -152
  354. package/core/Loader/component.js +0 -1
  355. package/core/Loader.jsx +0 -154
  356. package/core/Logo/component.js +0 -1
  357. package/core/Logo.jsx +0 -147
  358. package/core/Meganav.jsx +0 -4151
  359. package/core/MeganavBlogPostsList/component.js.LICENSE.txt +0 -1
  360. package/core/MeganavBlogPostsList.jsx +0 -296
  361. package/core/MeganavContentCompany/component.js +0 -1
  362. package/core/MeganavContentCompany.jsx +0 -1058
  363. package/core/MeganavContentDevelopers/component.js +0 -1
  364. package/core/MeganavContentDevelopers.jsx +0 -334
  365. package/core/MeganavContentProducts/component.js +0 -1
  366. package/core/MeganavContentProducts.jsx +0 -373
  367. package/core/MeganavContentUseCases/component.js +0 -1
  368. package/core/MeganavContentUseCases.jsx +0 -341
  369. package/core/MeganavControl.jsx +0 -199
  370. package/core/MeganavControlMobileDropdown.jsx +0 -197
  371. package/core/MeganavControlMobilePanelClose.jsx +0 -198
  372. package/core/MeganavControlMobilePanelOpen.jsx +0 -193
  373. package/core/MeganavItemsDesktop/component.js +0 -1
  374. package/core/MeganavItemsDesktop.jsx +0 -279
  375. package/core/MeganavItemsMobile/component.js +0 -1
  376. package/core/MeganavItemsMobile.jsx +0 -689
  377. package/core/MeganavItemsSignedIn/component.js +0 -1
  378. package/core/MeganavItemsSignedIn.jsx +0 -643
  379. package/core/MeganavSearch/component.js +0 -1
  380. package/core/MeganavSearch.jsx +0 -434
  381. package/core/MeganavSearchAutocomplete.jsx +0 -117
  382. package/core/MeganavSearchPanel/component.js +0 -1
  383. package/core/MeganavSearchPanel.jsx +0 -386
  384. package/core/MeganavSearchSuggestions.jsx +0 -299
  385. package/core/Notice.jsx +0 -914
  386. package/core/Showcase/component.css +0 -31
  387. package/core/Showcase/component.js +0 -1
  388. package/core/Showcase.jsx +0 -17
  389. package/core/SignOutLink/component.js +0 -1
  390. package/core/SignOutLink.jsx +0 -157
  391. package/core/Slider.jsx +0 -400
  392. package/core/Uptime/component.css +0 -128
  393. package/core/Uptime/component.js +0 -1
  394. package/core/Uptime.jsx +0 -895
  395. package/core/scripts.js.LICENSE.txt +0 -1
  396. package/preview/log/.keep +0 -0
  397. package/preview/tmp/.keep +0 -0
  398. package/preview/tmp/pids/.keep +0 -0
  399. package/reset/.gitignore +0 -1
  400. package/src/core/Code/component.html.erb +0 -3
  401. package/src/core/Code/component.jsx +0 -31
  402. package/src/core/Code/component.rb +0 -12
  403. package/src/core/CompanyAutocomplete/component.css +0 -45
  404. package/src/core/CompanyAutocomplete/component.js +0 -204
  405. package/src/core/ConnectStateWrapper/component.js +0 -0
  406. package/src/core/ContactFooter/component.html.erb +0 -32
  407. package/src/core/ContactFooter/component.jsx +0 -66
  408. package/src/core/ContactFooter/component.rb +0 -13
  409. package/src/core/CookieMessage/component.js +0 -1
  410. package/src/core/CustomerLogos/component.html.erb +0 -9
  411. package/src/core/CustomerLogos/component.js +0 -0
  412. package/src/core/CustomerLogos/component.jsx +0 -28
  413. package/src/core/CustomerLogos/component.rb +0 -14
  414. package/src/core/DropdownMenu/component.js +0 -0
  415. package/src/core/FeatureFooter/component.css +0 -12
  416. package/src/core/FeatureFooter/component.html.erb +0 -54
  417. package/src/core/FeatureFooter/component.js +0 -7
  418. package/src/core/FeatureFooter/component.rb +0 -30
  419. package/src/core/FeaturedLink/component.html.erb +0 -15
  420. package/src/core/FeaturedLink/component.js +0 -0
  421. package/src/core/FeaturedLink/component.rb +0 -21
  422. package/src/core/Flash/component.js +0 -1
  423. package/src/core/Footer/component.html.erb +0 -256
  424. package/src/core/Footer/component.js +0 -1
  425. package/src/core/Footer/component.rb +0 -14
  426. package/src/core/Icon/component.html.erb +0 -3
  427. package/src/core/Icon/component.js +0 -0
  428. package/src/core/Icon/component.jsx +0 -19
  429. package/src/core/Icon/component.rb +0 -25
  430. package/src/core/Loader/component.html.erb +0 -18
  431. package/src/core/Loader/component.js +0 -0
  432. package/src/core/Loader/component.rb +0 -19
  433. package/src/core/Logo/component.html.erb +0 -3
  434. package/src/core/Logo/component.js +0 -0
  435. package/src/core/Logo/component.jsx +0 -20
  436. package/src/core/Logo/component.rb +0 -31
  437. package/src/core/Meganav/component.html.erb +0 -31
  438. package/src/core/Meganav/component.jsx +0 -123
  439. package/src/core/Meganav/component.rb +0 -60
  440. package/src/core/MeganavBlogPostsList/component.html.erb +0 -5
  441. package/src/core/MeganavBlogPostsList/component.rb +0 -13
  442. package/src/core/MeganavContentCompany/component.html.erb +0 -90
  443. package/src/core/MeganavContentCompany/component.js +0 -0
  444. package/src/core/MeganavContentCompany/component.rb +0 -14
  445. package/src/core/MeganavContentDevelopers/component.html.erb +0 -129
  446. package/src/core/MeganavContentDevelopers/component.js +0 -0
  447. package/src/core/MeganavContentDevelopers/component.rb +0 -13
  448. package/src/core/MeganavContentProducts/component.html.erb +0 -83
  449. package/src/core/MeganavContentProducts/component.js +0 -0
  450. package/src/core/MeganavContentProducts/component.jsx +0 -105
  451. package/src/core/MeganavContentProducts/component.rb +0 -14
  452. package/src/core/MeganavContentUseCases/component.html.erb +0 -135
  453. package/src/core/MeganavContentUseCases/component.js +0 -1
  454. package/src/core/MeganavContentUseCases/component.jsx +0 -147
  455. package/src/core/MeganavContentUseCases/component.rb +0 -13
  456. package/src/core/MeganavControl/component.html.erb +0 -6
  457. package/src/core/MeganavControl/component.rb +0 -20
  458. package/src/core/MeganavControlMobileDropdown/component.html.erb +0 -7
  459. package/src/core/MeganavControlMobileDropdown/component.rb +0 -11
  460. package/src/core/MeganavControlMobilePanelClose/component.html.erb +0 -12
  461. package/src/core/MeganavControlMobilePanelClose/component.rb +0 -12
  462. package/src/core/MeganavControlMobilePanelOpen/component.html.erb +0 -7
  463. package/src/core/MeganavControlMobilePanelOpen/component.jsx +0 -25
  464. package/src/core/MeganavControlMobilePanelOpen/component.rb +0 -9
  465. package/src/core/MeganavItemsDesktop/component.html.erb +0 -17
  466. package/src/core/MeganavItemsDesktop/component.js +0 -0
  467. package/src/core/MeganavItemsDesktop/component.jsx +0 -49
  468. package/src/core/MeganavItemsDesktop/component.rb +0 -23
  469. package/src/core/MeganavItemsMobile/component.html.erb +0 -75
  470. package/src/core/MeganavItemsMobile/component.js +0 -0
  471. package/src/core/MeganavItemsMobile/component.jsx +0 -137
  472. package/src/core/MeganavItemsMobile/component.rb +0 -21
  473. package/src/core/MeganavItemsSignedIn/component.html.erb +0 -53
  474. package/src/core/MeganavItemsSignedIn/component.js +0 -0
  475. package/src/core/MeganavItemsSignedIn/component.rb +0 -33
  476. package/src/core/MeganavSearch/component.html.erb +0 -15
  477. package/src/core/MeganavSearch/component.js +0 -0
  478. package/src/core/MeganavSearch/component.jsx +0 -33
  479. package/src/core/MeganavSearch/component.rb +0 -13
  480. package/src/core/MeganavSearchAutocomplete/component.html.erb +0 -6
  481. package/src/core/MeganavSearchAutocomplete/component.jsx +0 -14
  482. package/src/core/MeganavSearchAutocomplete/component.rb +0 -6
  483. package/src/core/MeganavSearchPanel/component.html.erb +0 -22
  484. package/src/core/MeganavSearchPanel/component.js +0 -0
  485. package/src/core/MeganavSearchPanel/component.jsx +0 -39
  486. package/src/core/MeganavSearchPanel/component.rb +0 -13
  487. package/src/core/MeganavSearchSuggestions/component.html.erb +0 -22
  488. package/src/core/MeganavSearchSuggestions/component.jsx +0 -49
  489. package/src/core/MeganavSearchSuggestions/component.rb +0 -18
  490. package/src/core/Notice/component.html.erb +0 -16
  491. package/src/core/Notice/component.jsx +0 -71
  492. package/src/core/Notice/component.rb +0 -29
  493. package/src/core/Showcase/component.css +0 -30
  494. package/src/core/Showcase/component.html.erb +0 -76
  495. package/src/core/Showcase/component.js +0 -180
  496. package/src/core/Showcase/component.jsx +0 -0
  497. package/src/core/Showcase/component.rb +0 -190
  498. package/src/core/SignOutLink/component.html.erb +0 -1
  499. package/src/core/SignOutLink/component.js +0 -0
  500. package/src/core/SignOutLink/component.jsx +0 -32
  501. package/src/core/SignOutLink/component.rb +0 -17
  502. package/src/core/Slider/component.html.erb +0 -28
  503. package/src/core/Slider/component.jsx +0 -86
  504. package/src/core/Slider/component.rb +0 -38
  505. package/src/core/Uptime/component.css +0 -127
  506. package/src/core/Uptime/component.html.erb +0 -0
  507. package/src/core/Uptime/component.js +0 -1
  508. package/src/core/Uptime/component.jsx +0 -183
  509. package/src/core/Uptime/component.rb +0 -7
  510. package/src/core/core.rb +0 -81
@@ -1,34 +1,31 @@
1
- @layer components {
2
- .ui-footer-col-title {
3
- @apply font-mono text-overline2 p-menu-row-title font-medium uppercase tracking-widen-0.16;
4
- }
1
+ .ui-footer-col-title {
2
+ @apply font-mono text-overline2 p-menu-row-title font-medium uppercase tracking-widen-0.16;
3
+ }
5
4
 
6
- .ui-footer-menu-row-link {
7
- @apply text-menu3 text-cool-black font-sans font-medium hover:text-gui-hover block;
8
- }
5
+ .ui-footer-menu-row-link {
6
+ @apply text-menu3 text-cool-black font-sans font-medium hover:text-gui-hover block;
7
+ }
9
8
 
10
- .ui-footer-link {
11
- @apply text-gui-default hover:text-gui-hover text-menu3 font-sans font-medium;
12
- }
9
+ .ui-footer-link {
10
+ @apply text-gui-default hover:text-gui-hover text-menu3 font-sans font-medium;
11
+ }
13
12
 
14
- .ui-footer-compliance-text {
15
- font-size: 12px;
16
- }
13
+ .ui-footer-compliance-text {
14
+ font-size: 12px;
15
+ }
17
16
 
18
- .ui-footer-tick-icon {
19
- min-width: 1.5rem;
20
- }
17
+ .ui-footer-tick-icon {
18
+ min-width: 1.5rem;
19
+ }
21
20
 
22
- @media (max-width: 1040px) {
23
- .ui-footer-bottom-links {
24
- @apply pb-40;
25
- }
21
+ @media (max-width: 1040px) {
22
+ .ui-footer-bottom-links {
23
+ @apply pb-40;
26
24
  }
25
+ }
27
26
 
28
- @media screen {
29
- .ui-footer-glassdoor {
30
- display: none;
31
- }
27
+ @media screen {
28
+ .ui-footer-glassdoor {
29
+ display: none;
32
30
  }
33
31
  }
34
-
package/core/Footer.js ADDED
@@ -0,0 +1 @@
1
+ import React from"react";import Icon from"./Icon";import _absUrl from"./url-base.js";import"./Footer/component.css";const Footer=({paths,urlBase})=>{const absUrl=path=>_absUrl(path,urlBase);return React.createElement("footer",{className:"bg-light-grey font-sans antialiased leading-normal","data-id":"footer"},React.createElement("div",{className:"max-w-screen-xl mx-auto py-32 sm:py-40 md:py-64 ui-grid-gap ui-grid-px grid grid-cols-6"},React.createElement("div",{className:"col-span-full md:col-span-2"},React.createElement("div",{className:"flex flex-row p-menu-row-snug"},React.createElement("img",{className:"mr-24 -mt-16",src:paths.ablyStack,alt:"Ably homepage"}),React.createElement("h2",{className:"ui-text-overline2 col-span-full"},"The Ably Platform")),React.createElement("div",{className:"md:col-span-4 md:w-3/4 xs:w-3/5 w-full"},React.createElement("p",{className:"ui-text-p3 font-bold py-16 p-menu-row-snug"},"Easily power any realtime experience in your application via a simple API that handles everything realtime.")),React.createElement("ul",{className:"grid grid-cols-1"},React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/solutions/channels"),className:"ui-footer-menu-row-link"},"Pub/sub messaging")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/push-notifications"),className:"ui-footer-menu-row-link"},"Push notifications")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/integrations"),className:"ui-footer-menu-row-link"},"Third-party integrations")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/protocols"),className:"ui-footer-menu-row-link"},"Multiple protocol messaging")))),React.createElement("div",{className:"col-span-full xs:col-span-3 md:col-span-1"},React.createElement("h2",{className:"ui-footer-col-title"},"Ably is for"),React.createElement("ul",null,React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/solutions/asset-tracking"),className:"ui-footer-menu-row-link"},"Ably Asset Tracking")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/solutions/extend-kafka-to-the-edge"),className:"ui-footer-menu-row-link"},"Extend Kafka to the edge")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/solutions/edtech"),className:"ui-footer-menu-row-link"},"EdTech")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/solutions/automotive-logistics-and-mobility"),className:"ui-footer-menu-row-link"},"Automotive, Logistics, & Mobility")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/solutions/b2b-platforms"),className:"ui-footer-menu-row-link"},"B2B Platforms")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/solutions/healthcare"),className:"ui-footer-menu-row-link"},"Healthcare")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/solutions/ecommerce-and-retail"),className:"ui-footer-menu-row-link"},"eCommerce & Retail")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/solutions/sports-and-media"),className:"ui-footer-menu-row-link"},"Sports & Media")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/solutions/gaming"),className:"ui-footer-menu-row-link"},"Gaming")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/solutions/iot-and-connected-devices"),className:"ui-footer-menu-row-link"},"IoT & Connected Devices")))),React.createElement("div",{className:"col-span-full xs:col-span-3 md:col-span-1"},React.createElement("h2",{className:"ui-footer-col-title"},"Developers"),React.createElement("ul",null,React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/docs/quick-start-guide"),className:"ui-footer-menu-row-link"},"Start in 5 minutes")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/docs/"),className:"ui-footer-menu-row-link"},"Documentation")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/tutorials"),className:"ui-footer-menu-row-link"},"Tutorials")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:"https://changelog.ably.com/",className:"ui-footer-menu-row-link"},"Changelog")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/support"),className:"ui-footer-menu-row-link"},"Support & FAQs")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/docs/sdks"),className:"ui-footer-menu-row-link"},"SDKs")),React.createElement("li",{className:"p-menu-row-snug flex items-center -mt-4"},React.createElement("a",{className:"pr-8 ui-footer-menu-row-link",href:"https://status.ably.com/"},"System status"),React.createElement("iframe",{className:"w-20 h-20 mb-2",src:"https://status.ably.com/embed/icon",style:{backgroundColor:"transparent"},frameBorder:"0",scrolling:"no",title:"System Status"})))),React.createElement("div",{className:"col-span-full xs:col-span-3 md:col-span-1"},React.createElement("h2",{className:"ui-footer-col-title"},"WHY ABLY"),React.createElement("ul",null,React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/customers"),className:"ui-footer-menu-row-link"},"Customers")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/case-studies"),className:"ui-footer-menu-row-link"},"Case Studies")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/four-pillars-of-dependability"),className:"ui-footer-menu-row-link"},"Four Pillars of Dependability")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/compare"),className:"ui-footer-menu-row-link"},"Compare our tech")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/protocols"),className:"ui-footer-menu-row-link"},"Multi protocol support")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/integrations"),className:"ui-footer-menu-row-link"},"Third-party integrations")))),React.createElement("div",{className:"col-span-full xs:col-span-3 md:col-span-1"},React.createElement("h2",{className:"ui-footer-col-title"},"ABOUT"),React.createElement("ul",null,React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/about"),className:"ui-footer-menu-row-link"},"About Ably")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/pricing"),className:"ui-footer-menu-row-link"},"Pricing")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/blog"),className:"ui-footer-menu-row-link"},"Blog")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/careers"),className:"ui-footer-menu-row-link"},"Careers")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/open-policy"),className:"ui-footer-menu-row-link"},"Open protocol policy")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/press-center"),className:"ui-footer-menu-row-link"},"Press & Media")),React.createElement("li",{className:"p-menu-row-snug"},React.createElement("a",{href:absUrl("/contact"),className:"ui-footer-menu-row-link"},"Contact us"))))),React.createElement("div",{className:"max-w-screen-xl ui-grid-px mx-auto"},React.createElement("hr",{className:"border-t border-mid-grey my-0"})),React.createElement("div",{className:"max-w-screen-xl mx-auto py-16 grid ui-grid-gap ui-grid-px sm:grid-cols-2"},React.createElement("div",{className:"md:flex md:items-center"},React.createElement("div",{className:"flex flex-col md:flex-row flex-auto ml-8 sm:col-span-1 md:col-span-2"},React.createElement("div",{className:""},React.createElement("div",{className:"flex pb-24"},React.createElement("a",{className:"h-24 pr-24 text-cool-black hover:text-icon-twitter",href:"https://twitter.com/ablyrealtime",title:"Ably on X"},React.createElement(Icon,{name:"icon-social-x",size:"1.5rem"})),React.createElement("a",{className:"h-24 pr-24 text-cool-black hover:text-icon-linkedin",href:"https://www.linkedin.com/company/ably-realtime",title:"Ably on LinkedIn"},React.createElement(Icon,{name:"linkedin",size:"1.5rem"})),React.createElement("a",{className:"h-24 pr-24 text-cool-black hover:text-icon-github",href:"https://github.com/ably/",title:"Ably on Github"},React.createElement(Icon,{name:"github",size:"1.5rem"})),React.createElement("a",{className:"h-24 pr-24 text-cool-black hover:text-icon-discord",href:"https://discord.gg/jwBPhEZ9g5",title:"Ably on Discord"},React.createElement(Icon,{name:"discord",size:"1.5rem"})))),React.createElement("div",{className:"xs:hidden sm:block ui-footer-glassdoor"},React.createElement("div",{className:"flex sm:pt-24 md:pt-0 sm:border-t sm:border-l-0 md:border-t-0 md:border-l sm:border-mid-grey sm:w-3/4 md:w-full md:pl-24"},React.createElement("a",{href:"https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",className:"h-24 text-cool-black hover:text-icon-glassdoor",title:"Ably reviews on glassdoor"},React.createElement(Icon,{name:"glassdoor",size:"1.5rem"})),React.createElement("div",{className:"pl-16 text-menu3 font-sans font-medium"},React.createElement("strong",{className:"block font-medium"},"We're hiring!"),React.createElement("a",{href:"https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",className:"ui-footer-link"},"Learn more at Glassdoor"))))),React.createElement("div",{className:"xs:block sm:hidden"},React.createElement("div",{className:"border-t border-mid-grey w-full"}),React.createElement("div",{className:"flex py-24"},React.createElement("a",{className:"h-24 pr-16 text-cool-black hover:text-icon-glassdoor",href:"https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",title:"Ably reviews on glassdoor"},React.createElement(Icon,{name:"glassdoor",size:"1.5rem"})),React.createElement("div",{className:"text-menu3 font-sans font-medium"},React.createElement("strong",{className:"block font-medium"},"We're hiring!"),React.createElement("a",{href:"https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",className:"ui-footer-link"},"Learn more at Glassdoor"))))),React.createElement("div",{className:"col-span-full sm:col-span-1 inline-flex sm:ml-auto sm:items-center"},React.createElement("img",{className:"mr-24 h-80",src:paths.highestUserAdoption,alt:"Highest User Adoption 2023"}),React.createElement("img",{className:"mr-24 h-80",src:paths.bestSupport,alt:"Best Support 2023"}),React.createElement("img",{className:"mr-24 h-80",src:paths.fastestImplementation,alt:"Fastest Implementation 2023"}),React.createElement("img",{className:"mr-24 h-80",src:paths.highestPerformer,alt:"High Performer 2023"}))),React.createElement("div",{className:"max-w-screen-xl ui-grid-px mx-auto"},React.createElement("hr",{className:"border-t border-mid-grey my-0"})),React.createElement("div",{className:"max-w-screen-xl mx-auto py-24 sm:py-40 md:py-32 md:grid md:grid-cols-2 ui-grid-gap ui-grid-px"},React.createElement("div",{className:"flex ml-8 col-span-full sm:col-span-1 md:pb-16 items-center ui-footer-bottom-links"},React.createElement("div",{className:"flex"},React.createElement("a",{href:absUrl("/privacy"),className:"pr-24 ui-footer-link"},"Cookies"),React.createElement("a",{href:absUrl("/legals"),className:"pr-24 ui-footer-link"},"Legals"),React.createElement("a",{href:absUrl("/data-protection"),className:"pr-24 ui-footer-link"},"Data Protection"),React.createElement("a",{href:absUrl("/privacy"),className:"ui-footer-link"},"Privacy"))),React.createElement("div",{className:"xs:grid xs:grid-cols-2 sm:grid-cols-4 xs:pl-16 sm:pl-8 md:justify-items-end"},React.createElement("div",{className:"flex mr-24"},React.createElement(Icon,{name:"icon-gui-tick",color:"text-active-orange",size:"1.5rem",additionalCSS:"bg-white rounded-full mr-12 ui-footer-tick-icon"}),React.createElement("div",null,React.createElement("p",{className:"ui-footer-compliance-text font-bold whitespace-nowrap"},"SOC 2 Type 2"),React.createElement("p",{className:"ui-footer-compliance-text font-medium mb-24"},"Certified"))),React.createElement("div",{className:"flex mr-24 md:col-start-2"},React.createElement(Icon,{name:"icon-gui-tick",color:"text-active-orange",size:"1.5rem",additionalCSS:"bg-white rounded-full mr-12 ui-footer-tick-icon"}),React.createElement("div",null,React.createElement("p",{className:"ui-footer-compliance-text font-bold whitespace-nowrap"},"HIPAA"),React.createElement("p",{className:"ui-footer-compliance-text font-medium mb-24"},"Compliant"))),React.createElement("div",{className:"flex mr-24 md:col-start-3"},React.createElement(Icon,{name:"icon-gui-tick",color:"text-active-orange",size:"1.5rem",additionalCSS:"bg-white rounded-full mr-12 ui-footer-tick-icon"}),React.createElement("div",null,React.createElement("p",{className:"ui-footer-compliance-text font-bold whitespace-nowrap"},"EU GDPR"),React.createElement("p",{className:"ui-footer-compliance-text font-medium mb-24"},"Certified"))),React.createElement("div",{className:"flex mr-24 md:col-start-4"},React.createElement(Icon,{name:"icon-gui-tick",color:"text-active-orange",size:"1.5rem",additionalCSS:"bg-white rounded-full mr-12 ui-footer-tick-icon"}),React.createElement("div",null,React.createElement("p",{className:"ui-footer-compliance-text font-bold whitespace-nowrap"},"256-bit AES"),React.createElement("p",{className:"ui-footer-compliance-text font-medium mb-24"},"Encryption"))))))};export default Footer;
Binary file
package/core/Icon.js ADDED
@@ -0,0 +1 @@
1
+ import React from"react";const Icon=({name,size="0.75rem",color="",additionalCSS="",...additionalAttributes})=>React.createElement("svg",{className:`${color} ${additionalCSS}`,style:{width:size,height:size},...additionalAttributes},React.createElement("use",{xlinkHref:`#sprite-${name}`}));export default Icon;
Binary file
package/core/Loader.js ADDED
@@ -0,0 +1,13 @@
1
+ import React from"react";const Loader=({ringColor="text-dark-grey",size="1.5rem",additionalCSS=""})=>React.createElement("svg",{className:`${ringColor} ${additionalCSS}`,style:{width:size,height:size},height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},React.createElement("style",{dangerouslySetInnerHTML:{__html:`
2
+ @keyframes chunk-animation {
3
+ to {
4
+ transform: rotate(360deg);
5
+ }
6
+ }
7
+
8
+ .chunk {
9
+ transform: rotate(0deg);
10
+ transform-origin: center;
11
+ animation: chunk-animation 0.6s cubic-bezier(.44,.15,.66,.98) forwards infinite;
12
+ }
13
+ `}}),React.createElement("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"}),React.createElement("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"}));export default Loader;
Binary file
package/core/Logo.js ADDED
@@ -0,0 +1 @@
1
+ import React from"react";const Logo=({dataId,logoUrl,href="/",additionalImgAttrs,additionalLinkAttrs})=>React.createElement("a",{href:href,"data-id":dataId,className:"block",style:{height:"2.125rem"},...additionalLinkAttrs},React.createElement("img",{src:logoUrl,width:"108px",alt:"Ably logo",...additionalImgAttrs}));export default React.memo(Logo);
Binary file
@@ -1,115 +1,112 @@
1
- @layer components {
2
- .ui-meganav-wrapper {
3
- /* Define values for new stacking context defined by position: fixed */
4
- --stacking-context-meganav-dropdown: 10;
5
- --stacking-context-meganav-mobile-panel: 20;
6
-
7
- z-index: var(--stacking-context-page-meganav);
8
-
9
- @apply fixed top-0 w-full;
10
- @apply antialiased font-sans transition-colors;
11
- }
12
-
13
- .ui-meganav {
14
- height: var(--ui-meganav-height);
15
-
16
- @apply flex justify-between items-center max-w-screen-xl mx-auto;
17
- }
18
-
19
- .ui-meganav-panel,
20
- .ui-meganav-mobile-dropdown,
21
- .ui-meganav-panel-account {
22
- z-index: var(--stacking-context-meganav-dropdown);
23
-
24
- @apply absolute left-0 right-0;
25
- @apply border-mid-grey border-t shadow-container;
26
- }
27
-
28
- .ui-meganav-panel {
29
- @apply bg-white;
30
- }
31
-
32
- .ui-meganav-panel-mobile {
33
- z-index: var(--stacking-context-meganav-mobile-panel);
34
-
35
- /* Prevents momentum-based scrolling https://devdocs.io/css/-webkit-overflow-scrolling */
36
- -webkit-overflow-scrolling: auto;
37
-
38
- @apply bg-white pt-16 border-0;
39
- @apply border-mid-grey border-t shadow-container;
40
- @apply fixed top-64 left-0 right-0 overflow-y-auto;
41
- }
42
-
43
- .ui-meganav-panel-account {
44
- left: auto;
45
- min-width: 20rem;
46
- @apply bg-white rounded-t-none;
47
- }
48
-
49
- .ui-meganav-panel-split-bg {
50
- background: linear-gradient(to right, #fafafb 33%, white 33%, white 100%);
51
- }
52
-
53
- .ui-meganav-link {
54
- @apply text-menu2 font-bold block font-sans;
55
- @apply mr-12 lg:mr-24 px-0 py-20;
56
- @apply hover:text-gui-hover focus:text-gui-focus focus:outline-none;
57
- @apply transition-colors;
58
- }
59
-
60
- .ui-meganav-item {
61
- flex: 1 0 auto;
62
- }
63
-
64
- .ui-meganav-mobile-link {
65
- @apply p-menu-row relative -left-8 w-extend-8;
66
- @apply text-menu2 font-bold font-mono font-medium block text-cool-black text-left;
67
- @apply flex items-center;
68
- @apply focus:text-gui-focus focus:outline-none;
69
- }
70
-
71
- .ui-meganav-account-link {
72
- @apply block px-8 py-8 hover:bg-light-grey hover:text-gui-hover rounded relative -left-8 text-menu3 w-extend-8 font-bold font-mono;
73
- }
74
-
75
- .ui-meganav-content {
76
- @apply max-w-screen-xl py-24 lg:py-32 mx-auto;
77
- @apply grid grid-cols-1;
78
- @apply px-24 md:px-32 lg:px-32 xl:px-64;
79
- }
80
-
81
- /* This is implemented not as padding so we can change the color of just this space, while keeping the grid
82
- as close to the designs as possible */
83
- .ui-meganav-content-spacer {
84
- @apply hidden md:block md:w-32 lg:w-32 xl:w-64 self-stretch flex-shrink-0 flex-grow-0;
85
- }
1
+ .ui-meganav-wrapper {
2
+ /* Define values for new stacking context defined by position: fixed */
3
+ --stacking-context-meganav-dropdown: 10;
4
+ --stacking-context-meganav-mobile-panel: 20;
5
+
6
+ z-index: var(--stacking-context-page-meganav);
7
+
8
+ @apply fixed top-0 w-full;
9
+ @apply antialiased font-sans transition-colors;
10
+ }
11
+
12
+ .ui-meganav {
13
+ height: var(--ui-meganav-height);
86
14
 
87
- .ui-meganav-media {
88
- @apply block px-8 py-8 hover:bg-light-grey rounded relative -left-8 w-extend-8;
89
- }
15
+ @apply flex justify-between items-center max-w-screen-xl mx-auto;
16
+ }
90
17
 
91
- .ui-meganav-media-with-image {
92
- grid-template-columns: max-content 1fr;
93
- grid-template-rows: min-content 1fr;
18
+ .ui-meganav-panel,
19
+ .ui-meganav-mobile-dropdown,
20
+ .ui-meganav-panel-account {
21
+ z-index: var(--stacking-context-meganav-dropdown);
94
22
 
95
- @apply block px-8 py-8 hover:bg-light-grey rounded relative -left-8 w-extend-8;
96
- @apply grid gap-x-16;
97
- }
23
+ @apply absolute left-0 right-0;
24
+ @apply border-mid-grey border-t shadow-container;
25
+ }
98
26
 
99
- .ui-meganav-media-heading {
100
- @apply text-menu3 text-cool-black font-bold font-sans group-hover:text-gui-hover group-focus:text-gui-focus leading-normal;
101
- }
27
+ .ui-meganav-panel {
28
+ @apply bg-white;
29
+ }
102
30
 
103
- .ui-meganav-media-copy {
104
- @apply text-p3 font-sans font-medium text-dark-grey leading-normal;
105
- }
31
+ .ui-meganav-panel-mobile {
32
+ z-index: var(--stacking-context-meganav-mobile-panel);
106
33
 
107
- .ui-meganav-overline {
108
- @apply text-overline2 text-cool-black uppercase font-medium font-mono tracking-widen-0.16 p-overline;
109
- }
34
+ /* Prevents momentum-based scrolling https://devdocs.io/css/-webkit-overflow-scrolling */
35
+ -webkit-overflow-scrolling: auto;
36
+
37
+ @apply bg-white pt-16 border-0;
38
+ @apply border-mid-grey border-t shadow-container;
39
+ @apply fixed top-64 left-0 right-0 overflow-y-auto;
40
+ }
110
41
 
111
- .ui-meganav-hr {
112
- @apply my-0 text-mid-grey;
113
- }
42
+ .ui-meganav-panel-account {
43
+ left: auto;
44
+ min-width: 20rem;
45
+ @apply bg-white rounded-t-none;
114
46
  }
115
47
 
48
+ .ui-meganav-panel-split-bg {
49
+ background: linear-gradient(to right, #fafafb 33%, white 33%, white 100%);
50
+ }
51
+
52
+ .ui-meganav-link {
53
+ @apply text-menu2 font-bold font-sans;
54
+ @apply mr-12 lg:mr-24 px-0 py-20;
55
+ @apply hover:text-gui-hover focus:text-gui-focus focus:outline-none;
56
+ @apply transition-colors;
57
+ }
58
+
59
+ .ui-meganav-item {
60
+ flex: 1 0 auto;
61
+ }
62
+
63
+ .ui-meganav-mobile-link {
64
+ @apply p-menu-row relative -left-8 w-extend-8;
65
+ @apply text-menu2 font-mono font-medium block text-cool-black text-left;
66
+ @apply flex items-center;
67
+ @apply focus:text-gui-focus focus:outline-none;
68
+ }
69
+
70
+ .ui-meganav-account-link {
71
+ @apply block px-8 py-8 hover:bg-light-grey hover:text-gui-hover rounded relative -left-8 text-menu3 w-extend-8 font-bold font-mono;
72
+ }
73
+
74
+ .ui-meganav-content {
75
+ @apply max-w-screen-xl py-24 lg:py-32 mx-auto;
76
+ @apply grid grid-cols-1;
77
+ @apply px-24 md:px-32 lg:px-32 xl:px-64;
78
+ }
79
+
80
+ /* This is implemented not as padding so we can change the color of just this space, while keeping the grid
81
+ as close to the designs as possible */
82
+ .ui-meganav-content-spacer {
83
+ @apply hidden md:block md:w-32 lg:w-32 xl:w-64 self-stretch flex-shrink-0 flex-grow-0;
84
+ }
85
+
86
+ .ui-meganav-media {
87
+ @apply block px-8 py-8 hover:bg-light-grey rounded relative -left-8 w-extend-8;
88
+ }
89
+
90
+ .ui-meganav-media-with-image {
91
+ grid-template-columns: max-content 1fr;
92
+ grid-template-rows: min-content 1fr;
93
+
94
+ @apply block px-8 py-8 hover:bg-light-grey rounded relative -left-8 w-extend-8;
95
+ @apply grid gap-x-16;
96
+ }
97
+
98
+ .ui-meganav-media-heading {
99
+ @apply text-menu3 text-cool-black font-bold font-sans group-hover:text-gui-hover group-focus:text-gui-focus leading-normal;
100
+ }
101
+
102
+ .ui-meganav-media-copy {
103
+ @apply text-p3 font-sans font-medium text-dark-grey leading-normal;
104
+ }
105
+
106
+ .ui-meganav-overline {
107
+ @apply text-overline2 text-cool-black uppercase font-medium font-mono tracking-widen-0.16 p-overline;
108
+ }
109
+
110
+ .ui-meganav-hr {
111
+ @apply my-0 text-mid-grey;
112
+ }
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("addsearch-js-client"),require("lodash.throttle"),require("scroll-lock")):"function"==typeof define&&define.amd?define([,,],t):"object"==typeof exports?exports.AblyUi=t(require("addsearch-js-client"),require("lodash.throttle"),require("scroll-lock")):(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.Meganav=t(e[void 0],e[void 0],e[void 0]))}(this,((e,t,n)=>(()=>{"use strict";var r={2498:(e,t,n)=>{n.d(t,{default:()=>o});var r=n(9581);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}const o=function(){var e=Array.from((0,r.n)("meganav-control")),t=Array.from((0,r.n)("meganav-panel")),n=getComputedStyle(document.documentElement).getPropertyValue("--bp-md"),o=function(e){return"search"===e.dataset.control},i=function(t,r,o){if(window.matchMedia("(hover: hover) and (pointer: fine) and (min-width: ".concat(n,")")).matches&&!e.some((function(e){return e===document.activeElement}))&&!function(){var e=document.querySelector('[data-id="meganav-panel"]#panel-search');if(e)return!e.classList.contains("invisible")}()){var i,c=["invisible","visible"];(i=r.classList).replace.apply(i,function(e){if(Array.isArray(e))return a(e)}(l=o?c:c.reverse())||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(l)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(l)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),t.setAttribute("aria-expanded",o),t.dataset.hover=o}var l};return e.map((function(n){var a,c,l=n.parentNode,u=document.querySelector("#".concat(n.getAttribute("aria-controls"))),s=function(n,a){return function(){e.forEach((function(e){return e!==n&&e.setAttribute("aria-expanded",!1)})),t.forEach((function(e){return e!==a&&e.classList.replace("visible","invisible")}));var i=n.getAttribute("aria-expanded"),c="true"===n.dataset.hover;if("true"!==i||c?(n.setAttribute("aria-expanded",!0),a.classList.replace("invisible","visible")):(n.setAttribute("aria-expanded",!1),a.classList.replace("visible","invisible")),c&&(n.dataset.hover=!1),o(n)){var l=(0,r.A)("meganav-search-input",a);if(!l)return;l.focus()}else n.focus()}}(n,u);return n.addEventListener("click",s),o(n)||(a=function(e,t){return function(){return i(e,t,!0)}}(n,u),c=function(e,t){return function(){return i(e,t,!1)}}(n,u),l.addEventListener("mouseenter",a),l.addEventListener("mouseleave",c)),[{teardown:function(){a&&c&&(l.removeEventListener("mouseenter",a),l.removeEventListener("mouseleave",c)),n.removeEventListener("click",s)},clear:function(){n.setAttribute("aria-expanded",!1),u.classList.replace("visible","invisible")}}]})).flat()}},1792:(e,t,n)=>{n.d(t,{default:()=>i});var r=n(9042),a=n.n(r),o=n(9581);const i=function(e){var t=e.clearPanels,n=(0,o.A)("meganav-control-mobile-dropdown"),r=(0,o.A)("meganav-mobile-dropdown"),i=(0,o.A)("meganav-control-mobile-dropdown-menu"),c=(0,o.A)("meganav-control-mobile-dropdown-close"),l=function(){"false"===n.getAttribute("aria-expanded")?(r.classList.replace("invisible","visible"),n.setAttribute("aria-expanded",!0),a().disablePageScroll()):(r.classList.replace("visible","invisible"),n.setAttribute("aria-expanded",!1),a().enablePageScroll(),t()),i.classList.toggle("hidden"),c.classList.toggle("hidden")};return n.addEventListener("click",l),{teardown:function(){n.removeEventListener("click",l),a().enablePageScroll()},clear:function(){r.classList.replace("visible","invisible"),n.setAttribute("aria-expanded",!1),i.classList.remove("hidden"),c.classList.add("hidden"),a().enablePageScroll()}}}},7359:(e,t,n)=>{n.d(t,{default:()=>a});var r=n(9581);const a=function(){var e=Array.from((0,r.n)("meganav-control-mobile-panel-close")),t=Array.from((0,r.n)("meganav-control-mobile-panel-open"));return e.map((function(e){var n=t.find((function(t){return t.getAttribute("aria-controls")===e.getAttribute("aria-controls")})),r=document.querySelector("#".concat(e.getAttribute("aria-controls"))),a=function(e,t,n){return function(){e.setAttribute("aria-expanded",!1),t.setAttribute("aria-expanded",!1),n.classList.replace("block","hidden"),n.style.height=null}}(e,n,r);return e.addEventListener("click",a),{teardown:function(){return e.removeEventListener("click",a)},clear:function(){return e.setAttribute("aria-expanded",!1)}}}))}},9552:(e,t,n)=>{n.d(t,{default:()=>a});var r=n(9581);const a=function(){var e,t=Array.from((0,r.n)("meganav-control-mobile-panel-close")),n=Array.from((0,r.n)("meganav-control-mobile-panel-open")),a=(0,r.A)("meganav-mobile-dropdown"),o=(e=getComputedStyle(document.documentElement).getPropertyValue("--ui-meganav-height"),parseFloat(e)*parseFloat(getComputedStyle(document.documentElement).fontSize));return n.map((function(e){var n=t.find((function(t){return t.getAttribute("aria-controls")===e.getAttribute("aria-controls")})),r=document.querySelector("#".concat(e.getAttribute("aria-controls"))),i=function(e,t,n){return function(){e.setAttribute("aria-expanded",!0),t.setAttribute("aria-expanded",!0),n.classList.replace("hidden","block"),n.style.height="".concat(window.innerHeight-o>n.offsetHeight?n.offsetHeight:window.innerHeight-o,"px")}}(e,n,r);return e.addEventListener("click",i),{teardown:function(){return e.removeEventListener("click",i)},clear:function(){r.classList.replace("block","hidden"),a.classList.remove("ui-meganav-mobile-dropdown-expand"),e.setAttribute("aria-expanded",!1),r.style.height=null}}}))}},6364:(e,t,n)=>{n.d(t,{default:()=>c});var r=n(9581),a=n(3916),o=n.n(a),i=function(e){var t=e.input,n=e.container,r=e.listContainer,a=e.clear,o=e.client;o.setAnalyticsTag("Meganav autocomplete"),o.setThrottleTime(400);var i,c=function(){n.classList.add("hidden"),r.innerHTML=""},l=function(e){return window.location="/search?q=".concat(e)},u=function(e){var t=r.querySelector('[data-suggestion-index="'.concat(e+1,'"]'));t&&t.focus()},s=function(e){var i=e.target.value;"ArrowDown"!==e.key?i?o.suggestions(i,function(e){return function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(function(e){(e||"").length>0&&a?a.classList.remove("invisible"):a&&a.classList.add("invisible")}(e),Array.isArray(o.suggestions))if(0!==o.suggestions.length){var i=o.suggestions.map((function(n,a){var o=document.createElement("li"),i=document.createElement("button");return i.type="button",i.classList.add("ui-text-menu2","font-medium","p-8","w-full","text-left","rounded","hover:text-gui-hover","focus:outline-gui-focus","hover:bg-light-grey"),i.innerHTML=function(e,t){return e.replace(t.toLowerCase(),'<span class="font-light">'.concat(t,"</span>"))}(n.value,e),i.dataset.suggestionIndex=a,i.addEventListener("click",(function(){l(n.value)})),i.addEventListener("keydown",(function(e){var o=e.key;"ArrowDown"===o?u(a):"ArrowUp"===o&&a-1<0?t.focus():"ArrowUp"===o&&a-1>=0?function(e){var t=e-1,n=r.querySelector('[data-suggestion-index="'.concat(t,'"]'));n&&n.focus()}(a):"Enter"!==o&&"Space"!==o||l(n.value)})),o.appendChild(i),o}));r.innerHTML="",i.forEach((function(e){return r.appendChild(e)})),n.classList.remove("hidden")}else c();else c()}}(i)):c():u(0)};return a&&(i=function(){t.value="",a.classList.add("invisible"),c()},a.addEventListener("click",i)),t.addEventListener("keyup",s),{teardown:function(){t.removeEventListener("keyup",s),a&&a.removeEventListener("click",i)},clear:function(){t.value="",c()}}};const c=function(e){if(!e)return console.log("No AddSearch API key provided, skipping search suggestions."),[];var t=new(o())(e);return[(0,r.A)("meganav-search-input"),(0,r.A)("meganav-mobile-search-input")].filter((function(e){return e})).map((function(e){var n=e.parentNode,a=(0,r.A)("meganav-search-autocomplete-container",n),o=(0,r.A)("meganav-search-autocomplete-list",n),c=(0,r.A)("meganav-search-input-clear",n);return i({input:e,container:a,listContainer:o,client:t,clear:c})}))}},3169:(e,t,n)=>{n.d(t,{default:()=>d});var r=n(9581),a=function(e){return new DOMMatrix(window.getComputedStyle(e).transform).e},o=function(e,t){return e.style.transform="translateX(".concat(t,"px)")},i=function(e,t){return e>=t},c=function(e,t,n,r){return Math.abs(e-n+r)>t},l=function(e,t){var n;return(null===(n=e.changedTouches[0])||void 0===n?void 0:n.clientX)-t},u=function(e){return Math.abs(e)<5},s=function(e){return e.map((function(e){return e.getBoundingClientRect().width})).reduce((function(e,t){return e+t}),0)};const d=function(){var e,t=(0,r.A)("meganav-mobile-search-input"),n=(0,r.A)("meganav-mobile-search-suggestions"),d=n.querySelector("ul"),f=Array.from(d.querySelectorAll("li")),v=function(e,t){var n=a(d),r=Math.round(n+e);i(r,t)&&(r=0),o(d,r)},m=function(e,t){var n=d.getBoundingClientRect().width,r=a(d),i=s(f),l=Math.round(r+e);c(l,i,n,t)&&(l=-(i-n+t)),o(d,l)},p=function(t){var n;e=null===(n=t.touches[0])||void 0===n?void 0:n.clientX},g=function(t){var n=l(t,e);u(n)||(n>0?function(e,t){var n=a(d),r=Math.round(n+e);i(r,24)||o(d,r)}(n):function(e,t){var n=d.getBoundingClientRect().width,r=a(d),i=Math.round(r+e),l=s(f);c(i,l,n,96)||o(d,i)}(n))},b=function(t){var n=l(t,e);u(n)||(n>0?v(n,24):m(n,48))},h=function(){n.classList.add("max-h-96")},y=function(e){e.relatedTarget!==n.querySelectorAll("a")[0]&&n.classList.remove("max-h-96")};return t.addEventListener("focus",h),t.addEventListener("blur",y),n.addEventListener("touchstart",p),n.addEventListener("touchmove",g),n.addEventListener("touchend",b),n.addEventListener("wheel",(function(e){var t=4*e.deltaY;u(t)||(t>0?v(t,24):m(t,48))})),{teardown:function(){t.removeEventListener("focus",h),t.removeEventListener("blur",y),n.removeEventListener("touchstart",p),n.removeEventListener("touchmove",g),n.removeEventListener("touchend",b)},clear:function(){n.classList.remove("max-h-96"),d.style.transform="translateX(0px)"}}}},9581:(e,t,n)=>{n.d(t,{A:()=>r,n:()=>a});var r=function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:document).querySelector("[data-id=".concat(e,"]"))},a=function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:document).querySelectorAll("[data-id=".concat(e,"]"))}},3916:t=>{t.exports=e},7326:e=>{e.exports=t},9042:e=>{e.exports=n}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return r[e](n,n.exports,o),n.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};return(()=>{o.d(i,{default:()=>g});var e=o(7326),t=o.n(e),n=o(9581),r=o(2498),a=o(1792),c=o(9552),l=o(7359),u=o(6364),s=o(3169);function d(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var v=function(e){return window.onblur=function(){return e()},{teardown:function(){return window.onblur=null}}},m=function(e){var t=(0,n.A)("meganav"),r=function(n){t.contains(n.target)||e()};return document.addEventListener("click",r),{teardown:function(){return document.removeEventListener("click",r)}}},p=function(e){if("transparentToWhite"!==e)return{teardown:function(){}};var r=(0,n.A)("meganav"),a=(0,n.n)("meganav-link"),o=(0,n.A)("meganav-control-mobile-dropdown-menu"),i=(0,n.A)("meganav-control-mobile-dropdown-close"),c=(0,n.n)("meganav-control"),l=(0,n.A)("meganav-sign-up-btn"),u=[].concat(d(Array.from(c)),d(Array.from(a)),[(0,n.A)("meganav-logo")]),s=function(e){var t,n,r,a,c=["ui-icon-white","ui-icon-cool-black"],l=[].concat(c).reverse();e?(null==o||(t=o.classList).replace.apply(t,c),null==i||(n=i.classList).replace.apply(n,c)):(null==o||(r=o.classList).replace.apply(r,d(l)),null==i||(a=i.classList).replace.apply(a,d(l)))},f=function(e){e?(null==l||l.classList.replace("bg-white","bg-cool-black"),null==l||l.classList.replace("text-cool-black","text-white")):(null==l||l.classList.replace("bg-cool-black","bg-white"),null==l||l.classList.replace("text-white","text-cool-black"))},v=t()((function(){window.scrollY>5?(r.classList.replace("bg-transparent","bg-white"),f(!0),s(!0),u.forEach((function(e){return e.classList.replace("text-white","text-cool-black")}))):(r.classList.replace("bg-white","bg-transparent"),f(!1),s(!1),u.forEach((function(e){return e.classList.replace("text-cool-black","text-white")})))}),150);return document.addEventListener("scroll",v),{teardown:function(){return document.removeEventListener("scroll",v)}}};function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{themeName:null},t=e.themeName,n=e.addSearchApiKey,o=(0,r.default)(),i=(0,c.default)(),f=(0,l.default)(),g=(0,u.default)(n),b=(0,s.default)(),h=(0,a.default)({clearPanels:function(){return[].concat(d(i),d(f)).forEach((function(e){return e.clear()}))}}),y=function(){return[h,b].concat(d(i),d(f),d(o),d(g)).forEach((function(e){return e.clear()}))},A=[p(t),m(y),v(y),h,b].concat(d(o),d(i),d(f),d(g)).map((function(e){return e.teardown}));return function(){return A.forEach((function(e){return e()}))}}})(),i.default})()));
1
+ import throttle from"lodash.throttle";import"./component.css";import{queryId,queryIdAll}from"../dom-query";import MeganavControl from"../MeganavControl/component.js";import MeganavControlMobileDropdown from"../MeganavControlMobileDropdown/component.js";import MobilePanelOpenClick from"../MeganavControlMobilePanelOpen/component.js";import MobilePanelCloseClick from"../MeganavControlMobilePanelClose/component.js";import MeganavSearchAutocomplete from"../MeganavSearchAutocomplete/component.js";import MeganavSearchSuggestions from"../MeganavSearchSuggestions/component.js";const windowOnBlur=closeAll=>{window.onblur=()=>closeAll();return{teardown:()=>window.onblur=null}};const documentClick=closeAll=>{const meganav=queryId("meganav");const clickHandler=e=>{if(meganav.contains(e.target))return;closeAll()};document.addEventListener("click",clickHandler);return{teardown:()=>document.removeEventListener("click",clickHandler)}};const documentScroll=themeName=>{if(themeName!=="transparentToWhite")return{teardown:()=>{}};const meganav=queryId("meganav");const navItems=queryIdAll("meganav-link");const controlMobileDropdownMenu=queryId("meganav-control-mobile-dropdown-menu");const controlMobileDropdownClose=queryId("meganav-control-mobile-dropdown-close");const controls=queryIdAll("meganav-control");const signUpBtn=queryId("meganav-sign-up-btn");const invertTextCollection=[...Array.from(controls),...Array.from(navItems),queryId("meganav-logo")];const invertMobleDropdownColor=invert=>{const whiteToBlack=["ui-icon-white","ui-icon-cool-black"];const blackToWhite=[...whiteToBlack].reverse();if(invert){controlMobileDropdownMenu===null||controlMobileDropdownMenu===void 0?void 0:controlMobileDropdownMenu.classList.replace(...whiteToBlack);controlMobileDropdownClose===null||controlMobileDropdownClose===void 0?void 0:controlMobileDropdownClose.classList.replace(...whiteToBlack)}else{controlMobileDropdownMenu===null||controlMobileDropdownMenu===void 0?void 0:controlMobileDropdownMenu.classList.replace(...blackToWhite);controlMobileDropdownClose===null||controlMobileDropdownClose===void 0?void 0:controlMobileDropdownClose.classList.replace(...blackToWhite)}};const inverSignupBtnColors=invert=>{if(invert){signUpBtn===null||signUpBtn===void 0?void 0:signUpBtn.classList.replace("bg-white","bg-cool-black");signUpBtn===null||signUpBtn===void 0?void 0:signUpBtn.classList.replace("text-cool-black","text-white")}else{signUpBtn===null||signUpBtn===void 0?void 0:signUpBtn.classList.replace("bg-cool-black","bg-white");signUpBtn===null||signUpBtn===void 0?void 0:signUpBtn.classList.replace("text-white","text-cool-black")}};const scrollHandler=throttle(()=>{if(window.scrollY>5){meganav.classList.replace("bg-transparent","bg-white");inverSignupBtnColors(true);invertMobleDropdownColor(true);invertTextCollection.forEach(n=>n.classList.replace("text-white","text-cool-black"))}else{meganav.classList.replace("bg-white","bg-transparent");inverSignupBtnColors(false);invertMobleDropdownColor(false);invertTextCollection.forEach(n=>n.classList.replace("text-cool-black","text-white"))}},150);document.addEventListener("scroll",scrollHandler);return{teardown:()=>document.removeEventListener("scroll",scrollHandler)}};export default function Meganav({themeName,addSearchApiKey}={themeName:null}){const controls=MeganavControl();const panelOpenControls=MobilePanelOpenClick();const panelCloseControls=MobilePanelCloseClick();const search=MeganavSearchAutocomplete(addSearchApiKey);const searchSuggestions=MeganavSearchSuggestions();const mobileDropdownControl=MeganavControlMobileDropdown({clearPanels:()=>[...panelOpenControls,...panelCloseControls].forEach(i=>i.clear())});const closeAll=()=>[mobileDropdownControl,searchSuggestions,...panelOpenControls,...panelCloseControls,...controls,...search].forEach(i=>i.clear());const teardowns=[documentScroll(themeName),documentClick(closeAll),windowOnBlur(closeAll),mobileDropdownControl,searchSuggestions,...controls,...panelOpenControls,...panelCloseControls,...search].map(i=>i.teardown);return()=>teardowns.forEach(teardown=>teardown())}
@@ -0,0 +1 @@
1
+ import React,{useEffect,useState}from"react";import{connectState}from"./remote-data-store.js";import{selectSessionData}from"./remote-session-data.js";import Logo from"./Logo";import"./Meganav/component.css";import MeganavData from"./Meganav/component.json";import MeganavScripts from"./Meganav/component.js";import MeganavItemsDesktop from"./MeganavItemsDesktop";import MeganavItemsSignedIn from"./MeganavItemsSignedIn";import MeganavItemsMobile from"./MeganavItemsMobile";import Notice from"./Notice";import _absUrl from"./url-base.js";import MeganavContentProducts from"./MeganavContentProducts";import MeganavContentUseCases from"./MeganavContentUseCases";import MeganavContentCompany from"./MeganavContentCompany";import MeganavContentDevelopers from"./MeganavContentDevelopers";import MeganavSearch from"./MeganavSearch";const SignIn=({sessionState,theme,loginLink,absUrl})=>{return sessionState.signedIn?React.createElement(MeganavItemsSignedIn,{absUrl:absUrl,sessionState:sessionState,theme:theme}):React.createElement("ul",{className:"hidden md:flex items-center"},React.createElement("li",{className:"ui-meganav-item"},React.createElement("a",{href:absUrl("/contact"),className:`ui-meganav-link ${theme.textColor}`,"data-id":"meganav-link"},"Contact us")),React.createElement("li",{className:"ui-meganav-item"},React.createElement("a",{href:absUrl(loginLink),className:`ui-meganav-link mr-0 ${theme.textColor}`,"data-id":"meganav-link"},"Login")),React.createElement("li",{className:"ui-meganav-item"},React.createElement(MeganavSearch,{absUrl:absUrl})),React.createElement("li",{className:"ui-meganav-item"},React.createElement("a",{href:absUrl("/sign-up"),"data-id":"meganav-sign-up-btn",className:`ui-btn p-btn-small ${theme.buttonBackgroundColor} ${theme.buttonTextColor}`},"Sign up free")))};const SignInPlaceholder=()=>React.createElement("div",null);const panels={MeganavContentProducts,MeganavContentUseCases,MeganavContentCompany,MeganavContentDevelopers};const Meganav=({paths,themeName="white",notice,loginLink="/login",urlBase,addSearchApiKey})=>{const[sessionState,setSessionState]=useState();useEffect(()=>{connectState(selectSessionData,setSessionState)},[]);useEffect(()=>{const teardown=MeganavScripts({themeName,addSearchApiKey});return()=>teardown()},[sessionState]);const theme=MeganavData.themes[themeName];const absUrl=path=>_absUrl(path,urlBase);var _paths_logo;return React.createElement("nav",{className:`ui-meganav-wrapper ${theme.backgroundColor} ${theme.barShadow}`,"data-id":"meganav","aria-label":"Main"},notice&&React.createElement(Notice,{...notice.props,config:notice.config}),React.createElement("div",{className:"ui-meganav ui-grid-px"},React.createElement("div",{className:"mr-24"},React.createElement(Logo,{dataId:"meganav-logo",href:urlBase,logoUrl:(_paths_logo=paths===null||paths===void 0?void 0:paths.logo)!==null&&_paths_logo!==void 0?_paths_logo:""})),React.createElement(MeganavItemsDesktop,{panels:panels,paths:paths,theme:theme,absUrl:absUrl}),sessionState?React.createElement(SignIn,{sessionState:sessionState,theme:theme,loginLink:loginLink,absUrl:absUrl}):React.createElement(SignInPlaceholder,null),React.createElement(MeganavItemsMobile,{panels:panels,sessionState:sessionState,paths:paths,theme:theme,loginLink:loginLink,absUrl:absUrl})))};export default Meganav;
@@ -1,2 +1 @@
1
- /*! For license information please see component.js.LICENSE.txt */
2
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("redux")):"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.AblyUi=e(require("redux")):(t.AblyUi=t.AblyUi||{},t.AblyUi.Core=t.AblyUi.Core||{},t.AblyUi.Core.MeganavBlogPostsList=e(t[void 0]))}(this,(t=>(()=>{var e={5293:e=>{"use strict";e.exports=t},7061:(t,e,r)=>{var n=r(8698).default;function o(){"use strict";t.exports=o=function(){return r},t.exports.__esModule=!0,t.exports.default=t.exports;var e,r={},i=Object.prototype,a=i.hasOwnProperty,c=Object.defineProperty||function(t,e,r){t[e]=r.value},u="function"==typeof Symbol?Symbol:{},l=u.iterator||"@@iterator",f=u.asyncIterator||"@@asyncIterator",s=u.toStringTag||"@@toStringTag";function p(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{p({},"")}catch(e){p=function(t,e,r){return t[e]=r}}function h(t,e,r,n){var o=e&&e.prototype instanceof w?e:w,i=Object.create(o.prototype),a=new U(n||[]);return c(i,"_invoke",{value:P(t,r,a)}),i}function y(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}r.wrap=h;var d="suspendedStart",v="suspendedYield",g="executing",m="completed",b={};function w(){}function x(){}function O(){}var j={};p(j,l,(function(){return this}));var L=Object.getPrototypeOf,E=L&&L(L(D([])));E&&E!==i&&a.call(E,l)&&(j=E);var _=O.prototype=w.prototype=Object.create(j);function S(t){["next","throw","return"].forEach((function(e){p(t,e,(function(t){return this._invoke(e,t)}))}))}function A(t,e){function r(o,i,c,u){var l=y(t[o],t,i);if("throw"!==l.type){var f=l.arg,s=f.value;return s&&"object"==n(s)&&a.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,c,u)}),(function(t){r("throw",t,c,u)})):e.resolve(s).then((function(t){f.value=t,c(f)}),(function(t){return r("throw",t,c,u)}))}u(l.arg)}var o;c(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,o){r(t,n,e,o)}))}return o=o?o.then(i,i):i()}})}function P(t,r,n){var o=d;return function(i,a){if(o===g)throw new Error("Generator is already running");if(o===m){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=C(c,n);if(u){if(u===b)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===d)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=g;var l=y(t,r,n);if("normal"===l.type){if(o=n.done?m:v,l.arg===b)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=m,n.method="throw",n.arg=l.arg)}}}function C(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,C(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),b;var i=y(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,b;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,b):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,b)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function U(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function D(t){if(t||""===t){var r=t[l];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(a.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(n(t)+" is not iterable")}return x.prototype=O,c(_,"constructor",{value:O,configurable:!0}),c(O,"constructor",{value:x,configurable:!0}),x.displayName=p(O,s,"GeneratorFunction"),r.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===x||"GeneratorFunction"===(e.displayName||e.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,O):(t.__proto__=O,p(t,s,"GeneratorFunction")),t.prototype=Object.create(_),t},r.awrap=function(t){return{__await:t}},S(A.prototype),p(A.prototype,f,(function(){return this})),r.AsyncIterator=A,r.async=function(t,e,n,o,i){void 0===i&&(i=Promise);var a=new A(h(t,e,n,o),i);return r.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},S(_),p(_,s,"Generator"),p(_,l,(function(){return this})),p(_,"toString",(function(){return"[object Generator]"})),r.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},r.values=D,U.prototype={constructor:U,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(T),!t)for(var r in this)"t"===r.charAt(0)&&a.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function n(n,o){return c.type="throw",c.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=a.call(i,"catchLoc"),l=a.call(i,"finallyLoc");if(u&&l){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=t,i.arg=e,o?(this.method="next",this.next=o.finallyLoc,b):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),b},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),b}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:D(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),b}},r}t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports},8698:t=>{function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},4687:(t,e,r)=>{var n=r(7061)();t.exports=n;try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},r={};function n(t){var o=r[t];if(void 0!==o)return o.exports;var i=r[t]={exports:{}};return e[t](i,i.exports,n),i.exports}n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};return(()=>{"use strict";n.d(o,{default:()=>s});var t=function(t){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:document).querySelectorAll("[data-id=".concat(t,"]"))};function e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function r(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?e(Object(n),!0).forEach((function(e){i(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):e(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}n(4687);var a={recent:null},c="blogPosts",u=(i({},c,(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,e=arguments.length>1?arguments[1]:void 0;return"blog/loaded"===e.type?r(r({},t),{},{recent:e.payload}):t})),function(t){var e;return null===(e=t.getState()[c])||void 0===e?void 0:e.recent}),l=(n(5293),function(t,e){var r=function(){if(!window.AblyUi.RemoteDataStore)throw new Error("Remote store was called before one was created");return window.AblyUi.RemoteDataStore}(),n=t(r);r.subscribe((function(){var o=t(r);o!==n&&(n=o,e(o))}))});function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}const s=function(){l(u,(function(e){if(Array.isArray(e)&&e.length>0){var r=t("meganav-company-panel-blog-section"),n=t("meganav-company-panel-recent-blog-posts");Array.from(n).forEach((function(t){var r=document.createDocumentFragment();e.forEach((function(t){return r.appendChild((i=(e=t).link,a=e.title,c=e.pubDate,n=["li","a","p","p"].map((function(t){return document.createElement(t)})),o=4,u=function(t){if(Array.isArray(t))return t}(n)||function(t,e){var r=t&&("undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"]);if(null!=r){var n,o,i=[],a=!0,c=!1;try{for(r=r.call(t);!(a=(n=r.next()).done)&&(i.push(n.value),!e||i.length!==e);a=!0);}catch(t){c=!0,o=t}finally{try{a||null==r.return||r.return()}finally{if(c)throw o}}return i}}(n,o)||function(t,e){if(t){if("string"==typeof t)return f(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(t,e):void 0}}(n,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),l=u[0],s=u[1],p=u[2],h=u[3],s.href=i,s.classList.add("ui-meganav-media","group"),p.textContent=a,p.classList.add("ui-meganav-media-heading"),h.textContent=c,h.classList.add("ui-meganav-media-copy"),s.appendChild(p),s.appendChild(h),l.appendChild(s),l));var e,n,o,i,a,c,u,l,s,p,h})),t.appendChild(r)})),Array.from(r).forEach((function(t){return t.classList.remove("hidden")}))}}))}})(),o.default})()));
1
+ import{queryIdAll}from"../dom-query";import{selectRecentBlogPosts}from"../remote-blogs-posts";import{connectState}from"../remote-data-store";const template=({link,title,pubDate})=>{const[li,a,heading,copy]=["li","a","p","p"].map(el=>document.createElement(el));a.href=link;a.classList.add("ui-meganav-media","group");heading.textContent=title;heading.classList.add("ui-meganav-media-heading");copy.textContent=pubDate;copy.classList.add("ui-meganav-media-copy");a.appendChild(heading);a.appendChild(copy);li.appendChild(a);return li};export default(()=>{connectState(selectRecentBlogPosts,recentBlogPosts=>{if(Array.isArray(recentBlogPosts)&&recentBlogPosts.length>0){const sections=queryIdAll("meganav-company-panel-blog-section");const containers=queryIdAll("meganav-company-panel-recent-blog-posts");Array.from(containers).forEach(container=>{const fragment=document.createDocumentFragment();recentBlogPosts.forEach(post=>fragment.appendChild(template(post)));container.appendChild(fragment)});Array.from(sections).forEach(section=>section.classList.remove("hidden"))}})});
@@ -0,0 +1 @@
1
+ import React from"react";import FeaturedLink from"./FeaturedLink";const MeganavBlogPostsList=({recentBlogPosts,absUrl})=>recentBlogPosts?React.createElement("div",{className:"col-span-full md:col-span-4 pt-8 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0"},React.createElement("h3",{className:"ui-meganav-overline",id:"meganav-company-panel-list-blog"},"Blog"),React.createElement("ul",{className:"mb-8","aria-labelledby":"meganav-company-panel-list-blog"},recentBlogPosts.map(post=>React.createElement("li",{key:post.link},React.createElement("a",{href:post.link,className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},post.title),React.createElement("p",{className:"ui-meganav-media-copy"},post.pubDate))))),React.createElement(FeaturedLink,{url:absUrl("/blog"),textSize:"text-p3"},"More from our Blog")):null;export default MeganavBlogPostsList;
@@ -0,0 +1 @@
1
+ import React from"react";import MeganavBlogPostsList from"./MeganavBlogPostsList";import ConnectStateWrapper from"./ConnectStateWrapper";import{selectRecentBlogPosts}from"./remote-blogs-posts.js";import Icon from"./Icon";const MeganavContentCompany=({paths,absUrl})=>{const BlogPostsList=ConnectStateWrapper(MeganavBlogPostsList,{recentBlogPosts:selectRecentBlogPosts});return React.createElement("div",{className:"flex max-w-screen-xl mx-auto"},React.createElement("div",{className:"ui-meganav-content-spacer"}),React.createElement("section",{className:"grid grid-cols-12 ui-grid-gap-x w-full"},React.createElement("div",{className:"col-span-full md:col-span-4 pt-24 md:py-24 lg:py-32 px-24 sm:px-32 md:pl-0 md:pr-24"},React.createElement("h3",{className:"ui-meganav-overline",id:"meganav-company-panel-list-why-companies"},"Why companies choose Ably"),React.createElement("ul",{"aria-labelledby":"meganav-company-panel-list-why-companies"},React.createElement("li",null,React.createElement("a",{href:absUrl("/customers"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-customers-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Customers"),React.createElement("p",{className:"ui-meganav-media-copy"},"Ably supports customers across multiple industries.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/case-studies"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-case-studies-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Case studies"),React.createElement("p",{className:"ui-meganav-media-copy"},"Discover how customers are benefiting from Ably.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/compare"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-compare-tech-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Compare our tech"),React.createElement("p",{className:"ui-meganav-media-copy"},"Choose the right realtime service.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/aws"),className:"ui-meganav-media-with-image group"},React.createElement("img",{src:paths.awsLogo,alt:"AWS logo"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Partners"),React.createElement("p",{className:"ui-meganav-media-copy"},"Ably collaborates and integrates with AWS.")))))),React.createElement("div",{className:"col-span-full md:col-span-4 pb-8 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0"},React.createElement("ul",{className:"md:mt-40","aria-labelledby":"meganav-company-panel-list-why-companies"},React.createElement("li",null,React.createElement("a",{href:absUrl("/resources"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-resources-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Resources"),React.createElement("p",{className:"ui-meganav-media-copy"},"Learn more about realtime with our handy resources.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/about"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-about-ably-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"About Ably"),React.createElement("p",{className:"ui-meganav-media-copy"},"Find out more about Ably’s mission.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/careers"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-careers-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Careers"),React.createElement("p",{className:"ui-meganav-media-copy"},"Discover our open roles and core Ably values.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/events"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-events-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Events"),React.createElement("p",{className:"ui-meganav-media-copy"},"Join Ably at upcoming events.")))))),React.createElement(BlogPostsList,{absUrl:absUrl})),React.createElement("div",{className:"ui-meganav-content-spacer"}))};export default MeganavContentCompany;
@@ -0,0 +1 @@
1
+ import React from"react";import Icon from"./Icon";const MeganavContentDevelopers=({absUrl})=>React.createElement("div",{className:"flex max-w-screen-xl mx-auto"},React.createElement("div",{className:"ui-meganav-content-spacer"}),React.createElement("section",{className:"grid grid-cols-12 ui-grid-gap-x w-full"},React.createElement("div",{className:"col-span-full md:col-span-4 pt-24 md:py-24 lg:py-32 px-24 sm:px-32 md:pl-0 md:pr-24"},React.createElement("h3",{className:"ui-meganav-overline uppercase",id:"meganav-developers-panel-explore"},"Explore"),React.createElement("ul",{"aria-labelledby":"meganav-developers-panel-explore"},React.createElement("li",null,React.createElement("a",{href:absUrl("/docs"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-docs-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Documentation"),React.createElement("p",{className:"ui-meganav-media-copy"},"Technical guides to help you build with Ably.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/docs/quick-start-guide"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-quickstart-guides-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Quickstart guides"),React.createElement("p",{className:"ui-meganav-media-copy"},"Documentation to help you get started quickly.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/integrations"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-integrations-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Integrations"),React.createElement("p",{className:"ui-meganav-media-copy"},"Find out more about Ably integrations."," ")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/examples"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-examples-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Live examples"),React.createElement("p",{className:"ui-meganav-media-copy"},"Discover our features and their use cases.")))))),React.createElement("div",{className:"col-span-full md:col-span-4 pb-8 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0"},React.createElement("ul",{className:"md:mt-40","aria-labelledby":"meganav-developers-panel-explore"},React.createElement("li",null,React.createElement("a",{href:absUrl("/docs/sdks"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-sdks-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"SDKs"),React.createElement("p",{className:"ui-meganav-media-copy"},"Download an SDK to help you build realtime apps faster.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/tutorials"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-tutorials-demos-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Tutorials & Demos"),React.createElement("p",{className:"ui-meganav-media-copy"},"Get stuck in with our hands-on resources.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/reference-guide-chat"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-chat-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Chat apps reference guide"),React.createElement("p",{className:"ui-meganav-media-copy"},"Learn how to build chat apps with Ably.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/reference-guide-multiplayer"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-multi-user-spaces-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Multiplayer reference guide"),React.createElement("p",{className:"ui-meganav-media-copy"},"Learn how to build collaborative features with Ably.")))))),React.createElement("div",{className:"col-span-full md:col-span-4 pt-8 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0"},React.createElement("h3",{className:"ui-meganav-overline uppercase",id:"meganav-developers-panel-quick-links"},"Quick links"),React.createElement("ul",{"aria-labelledby":"meganav-developers-panel-quick-links"},React.createElement("li",null,React.createElement("a",{href:"https://discord.gg/jwBPhEZ9g5",className:"group ui-meganav-media py-12"},React.createElement("p",{className:"ui-meganav-media-heading"},"Discord"))),React.createElement("li",null,React.createElement("a",{href:"https://github.com/ably",className:"group ui-meganav-media py-12"},React.createElement("p",{className:"ui-meganav-media-heading"},"GitHub"))),React.createElement("li",null,React.createElement("a",{href:"https://changelog.ably.com/",className:"group ui-meganav-media py-12"},React.createElement("p",{className:"ui-meganav-media-heading"},"Changelog"))),React.createElement("li",null,React.createElement("a",{href:"https://status.ably.com/",className:"group ui-meganav-media py-12"},React.createElement("p",{className:"ui-meganav-media-heading"},"Status",React.createElement("iframe",{title:"Ably status",src:"https://status.ably.com/embed/icon",style:{backgroundColor:"transparent"},frameBorder:"0",scrolling:"no",className:"w-24 h-24 ml-4 border-none pointer-events-none align-middle"})))),React.createElement("li",null,React.createElement("a",{href:absUrl("/support"),className:"group ui-meganav-media py-12"},React.createElement("p",{className:"ui-meganav-media-heading"},"Support & FAQs")))))),React.createElement("div",{className:"ui-meganav-content-spacer"}));export default MeganavContentDevelopers;
@@ -0,0 +1 @@
1
+ import React from"react";import FeaturedLink from"./FeaturedLink";const MeganavContentProducts=({paths,absUrl})=>React.createElement("div",{className:"flex max-w-screen-xl mx-auto"},React.createElement("div",{className:"ui-meganav-content-spacer bg-extra-light-grey"}),React.createElement("section",{className:"grid grid-cols-12 ui-grid-gap-x w-full"},React.createElement("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"},React.createElement("div",{className:"flex mb-20"},React.createElement("img",{src:paths.ablyStack,alt:"Ably homepage"}),React.createElement("h3",{className:"ui-meganav-overline ml-24"},"The Ably Platform")),React.createElement("p",{className:"ui-text-p2 font-bold mb-24",style:{maxWidth:"330px"}},"Easily power any realtime experience in your application. No complex infrastructure to manage or provision. Just a simple API that handles everything realtime, and lets you focus on your code."),React.createElement(FeaturedLink,{url:absUrl("/platform"),textSize:"text-p2"},"Explore how it works")),React.createElement("div",{className:"col-span-full md:col-span-4 pt-24 pb-8 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white"},React.createElement("h3",{className:"ui-meganav-overline",id:"meganav-products-panel-list-examples"},"Products"),React.createElement("ul",{className:"mb-16","aria-labelledby":"meganav-products-panel-list-examples"},React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/channels"),className:"group ui-meganav-media"},React.createElement("p",{className:"ui-meganav-media-heading"},"Pub/Sub Channels"),React.createElement("p",{className:"ui-meganav-media-copy"},"Build infinitely scalable realtime applications."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/spaces"),className:"group ui-meganav-media"},React.createElement("p",{className:"ui-meganav-media-heading"},"Spaces (Beta)"),React.createElement("p",{className:"ui-meganav-media-copy"},"Create multi-user collaborative environments."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/livesync"),className:"group ui-meganav-media"},React.createElement("p",{className:"ui-meganav-media-heading"},"LiveSync (Early access)"),React.createElement("p",{className:"ui-meganav-media-copy"},"Keep clients in sync with any relational database."))))),React.createElement("div",{className:"col-span-full md:col-span-4 pt-8 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white"},React.createElement("h3",{className:"ui-meganav-overline",id:"meganav-products-panel-list-our-technology"},"Technology"),React.createElement("ul",{className:"mb-16","aria-labelledby":"meganav-products-panel-list-our-technology"},React.createElement("li",null,React.createElement("a",{href:absUrl("/four-pillars-of-dependability#performance"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"Predictable performance"),React.createElement("p",{className:"ui-meganav-media-copy"},"A low-latency and high-throughput global network."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/four-pillars-of-dependability#integrity"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"Guaranteed ordering & delivery"),React.createElement("p",{className:"ui-meganav-media-copy"},"Data is delivered - in order - even after disconnections."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/four-pillars-of-dependability#reliability"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"Fault tolerant infrastructure"),React.createElement("p",{className:"ui-meganav-media-copy"},"Redundancy is built in at global and regional levels."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/four-pillars-of-dependability#availability"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"High scalability & availability"),React.createElement("p",{className:"ui-meganav-media-copy"},"Built for scale with legitimate 99.999% uptime SLAs."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/network"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"Global edge network"),React.createElement("p",{className:"ui-meganav-media-copy"},"An edge network of 15 core routing datacenters and 205+ PoPs.")))),React.createElement(FeaturedLink,{url:absUrl("/four-pillars-of-dependability"),textSize:"text-p3"},"Explore Four Pillars of Dependability"))),React.createElement("div",{className:"ui-meganav-content-spacer"}));export default MeganavContentProducts;
@@ -0,0 +1 @@
1
+ import React from"react";import Icon from"./Icon";const MeganavContentUseCases=({absUrl})=>React.createElement("div",{className:"flex max-w-screen-xl mx-auto"},React.createElement("div",{className:"ui-meganav-content-spacer bg-extra-light-grey"}),React.createElement("section",{className:"grid grid-cols-12 ui-grid-gap-x w-full"},React.createElement("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"},React.createElement("h3",{className:"ui-meganav-overline",id:"meganav-use-cases-panel-use-cases"},"Solutions"),React.createElement("ul",{"aria-labelledby":"meganav-use-cases-panel-industry-use-cases"},React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/chat"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-chat-stack-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Live Chat"),React.createElement("p",{className:"ui-meganav-media-copy"},"Deliver highly reliable chat experiences at scale.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/multiplayer-collaboration"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-multi-user-spaces-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Multiplayer Collaboration"),React.createElement("p",{className:"ui-meganav-media-copy"},"Bring collaborative multiplayer experiences to your users.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/data-broadcast"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-data-broadcast-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Data Broadcast"),React.createElement("p",{className:"ui-meganav-media-copy"},"Broadcast realtime event data to millions of devices around the globe.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/data-synchronization"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-data-synchronization-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Data Synchronization"),React.createElement("p",{className:"ui-meganav-media-copy"},"Keep your frontend and backend in realtime sync, at global scale.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/push-notifications"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-push-notifications-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Notifications"),React.createElement("p",{className:"ui-meganav-media-copy"},"Deliver cross-platform push notifications with a simple unified API.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/asset-tracking"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-asset-tracking-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Asset Tracking (Beta)"),React.createElement("p",{className:"ui-meganav-media-copy"},"Track assets in realtime with a solution optimised for last mile logistics.")))))),React.createElement("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"},React.createElement("h3",{className:"ui-meganav-overline",id:"meganav-use-cases-panel-industry"},"Industry"),React.createElement("ul",{"aria-labelledby":"meganav-use-cases-panel-industry"},React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/edtech"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"EdTech"),React.createElement("p",{className:"ui-meganav-media-copy"},"Deliver interactive learning experiences."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/fintech"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"FinTech"),React.createElement("p",{className:"ui-meganav-media-copy"},"Deliver personalised financial data in realtime."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/automotive-logistics-and-mobility"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"Automotive, Logistics, & Mobility"),React.createElement("p",{className:"ui-meganav-media-copy"},"Power diagnostics, order tracking and more."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/b2b-platforms"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"B2B Platforms"),React.createElement("p",{className:"ui-meganav-media-copy"},"Empower your customers with realtime solutions."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/healthcare"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"Healthcare (HIPAA)"),React.createElement("p",{className:"ui-meganav-media-copy"},"Provide trustworthy, HIPAA-compliant realtime apps."))))),React.createElement("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"},React.createElement("ul",{"aria-labelledby":"meganav-use-cases-panel-solutions",className:"mt-0 md:mt-40"},React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/ecommerce-and-retail"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"eCommerce & Retail"),React.createElement("p",{className:"ui-meganav-media-copy"},"Enrich customer experiences with realtime updates."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/sports-and-media"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"Sports, Media & Audience Engagement"),React.createElement("p",{className:"ui-meganav-media-copy"},"Deliver engaging global realtime experiences."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/gaming"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"Gaming"),React.createElement("p",{className:"ui-meganav-media-copy"},"Power ultra fast and reliable gaming experiences."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/iot-and-connected-devices"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"IoT & Connected Devices"),React.createElement("p",{className:"ui-meganav-media-copy"},"Monitor and control global IoT deployments in realtime.")))))),React.createElement("div",{className:"ui-meganav-content-spacer"}));export default MeganavContentUseCases;
Binary file
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AblyUi=t():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavControl=t())}(this,(()=>(()=>{"use strict";var e={9581:(e,t,r)=>{r.d(t,{A:()=>n,n:()=>o});var n=function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:document).querySelector("[data-id=".concat(e,"]"))},o=function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:document).querySelectorAll("[data-id=".concat(e,"]"))}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};return(()=>{r.d(n,{default:()=>o});var e=r(9581);function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}const o=function(){var r=Array.from((0,e.n)("meganav-control")),n=Array.from((0,e.n)("meganav-panel")),o=getComputedStyle(document.documentElement).getPropertyValue("--bp-md"),a=function(e){return"search"===e.dataset.control},i=function(e,n,a){if(window.matchMedia("(hover: hover) and (pointer: fine) and (min-width: ".concat(o,")")).matches&&!r.some((function(e){return e===document.activeElement}))&&!function(){var e=document.querySelector('[data-id="meganav-panel"]#panel-search');if(e)return!e.classList.contains("invisible")}()){var i,c=["invisible","visible"];(i=n.classList).replace.apply(i,function(e){if(Array.isArray(e))return t(e)}(u=a?c:c.reverse())||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(u)||function(e,r){if(e){if("string"==typeof e)return t(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,r):void 0}}(u)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),e.setAttribute("aria-expanded",a),e.dataset.hover=a}var u};return r.map((function(t){var o,c,u=t.parentNode,s=document.querySelector("#".concat(t.getAttribute("aria-controls"))),l=function(t,o){return function(){r.forEach((function(e){return e!==t&&e.setAttribute("aria-expanded",!1)})),n.forEach((function(e){return e!==o&&e.classList.replace("visible","invisible")}));var i=t.getAttribute("aria-expanded"),c="true"===t.dataset.hover;if("true"!==i||c?(t.setAttribute("aria-expanded",!0),o.classList.replace("invisible","visible")):(t.setAttribute("aria-expanded",!1),o.classList.replace("visible","invisible")),c&&(t.dataset.hover=!1),a(t)){var u=(0,e.A)("meganav-search-input",o);if(!u)return;u.focus()}else t.focus()}}(t,s);return t.addEventListener("click",l),a(t)||(o=function(e,t){return function(){return i(e,t,!0)}}(t,s),c=function(e,t){return function(){return i(e,t,!1)}}(t,s),u.addEventListener("mouseenter",o),u.addEventListener("mouseleave",c)),[{teardown:function(){o&&c&&(u.removeEventListener("mouseenter",o),u.removeEventListener("mouseleave",c)),t.removeEventListener("click",l)},clear:function(){t.setAttribute("aria-expanded",!1),s.classList.replace("visible","invisible")}}]})).flat()}})(),n.default})()));
1
+ import{queryId,queryIdAll}from"../dom-query";const MeganavControl=()=>{const controls=Array.from(queryIdAll("meganav-control"));const panels=Array.from(queryIdAll("meganav-panel"));const mdBreakpoint=getComputedStyle(document.documentElement).getPropertyValue("--bp-md");const hoverEnabled=()=>window.matchMedia(`(hover: hover) and (pointer: fine) and (min-width: ${mdBreakpoint})`).matches;const isSearchControl=node=>node.dataset.control==="search";const isSearchPanelOpen=()=>{const searchPanel=document.querySelector('[data-id="meganav-panel"]#panel-search');if(!searchPanel)return;return!searchPanel.classList.contains("invisible")};const controlsHaveFocus=()=>controls.some(control=>control===document.activeElement);const hover=(control,panel,open)=>{if(hoverEnabled()&&!controlsHaveFocus()&&!isSearchPanelOpen()){const classes=["invisible","visible"];panel.classList.replace(...open?classes:classes.reverse());control.setAttribute("aria-expanded",open);control.dataset.hover=open}};const mouseenterHandler=(control,panel)=>()=>hover(control,panel,true);const mouseleaveHandler=(control,panel)=>()=>hover(control,panel,false);const clickHandler=(control,panel)=>()=>{controls.forEach(node=>node!==control&&node.setAttribute("aria-expanded",false));panels.forEach(node=>node!==panel&&node.classList.replace("visible","invisible"));const ariaExpanded=control.getAttribute("aria-expanded");const openedByHover=control.dataset.hover==="true";if(ariaExpanded==="true"&&!openedByHover){control.setAttribute("aria-expanded",false);panel.classList.replace("visible","invisible")}else{control.setAttribute("aria-expanded",true);panel.classList.replace("invisible","visible")}if(openedByHover){control.dataset.hover=false}if(isSearchControl(control)){const searchInput=queryId("meganav-search-input",panel);if(!searchInput)return;searchInput.focus()}else{control.focus()}};return controls.map(control=>{const item=control.parentNode;const panel=document.querySelector(`#${control.getAttribute("aria-controls")}`);const click=clickHandler(control,panel);control.addEventListener("click",click);let mouseenter,mouseleave;if(!isSearchControl(control)){mouseenter=mouseenterHandler(control,panel);mouseleave=mouseleaveHandler(control,panel);item.addEventListener("mouseenter",mouseenter);item.addEventListener("mouseleave",mouseleave)}return[{teardown:()=>{if(mouseenter&&mouseleave){item.removeEventListener("mouseenter",mouseenter);item.removeEventListener("mouseleave",mouseleave)}control.removeEventListener("click",click)},clear:()=>{control.setAttribute("aria-expanded",false);panel.classList.replace("visible","invisible")}}]}).flat()};export default MeganavControl;
@@ -0,0 +1 @@
1
+ import React from"react";import Icon from"./Icon";const MeganavControl=({ariaControls,ariaLabel,children,theme,additionalCSS})=>React.createElement("button",{type:"button","data-id":"meganav-control",className:`ui-meganav-link h-64 flex items-center group ${additionalCSS} ${theme.textColor}`,"aria-expanded":"false","aria-controls":ariaControls,"aria-label":`Show ${ariaLabel} panel`},children,React.createElement(Icon,{name:"icon-gui-disclosure-arrow",color:"text-cool-black",size:"1.5rem",additionalCSS:"transform rotate-90 group-hover:text-gui-hover group-focus:text-gui-focus"}));export default MeganavControl;
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("scroll-lock")):"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AblyUi=t(require("scroll-lock")):(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavControlMobileDropdown=t(e[void 0]))}(this,(e=>(()=>{"use strict";var t={9581:(e,t,o)=>{o.d(t,{A:()=>r});var r=function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:document).querySelector("[data-id=".concat(e,"]"))}},9042:t=>{t.exports=e}},o={};function r(e){var i=o[e];if(void 0!==i)return i.exports;var n=o[e]={exports:{}};return t[e](n,n.exports,r),n.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};return(()=>{r.d(i,{default:()=>n});var e=r(9042),t=r.n(e),o=r(9581);const n=function(e){var r=e.clearPanels,i=(0,o.A)("meganav-control-mobile-dropdown"),n=(0,o.A)("meganav-mobile-dropdown"),l=(0,o.A)("meganav-control-mobile-dropdown-menu"),a=(0,o.A)("meganav-control-mobile-dropdown-close"),s=function(){"false"===i.getAttribute("aria-expanded")?(n.classList.replace("invisible","visible"),i.setAttribute("aria-expanded",!0),t().disablePageScroll()):(n.classList.replace("visible","invisible"),i.setAttribute("aria-expanded",!1),t().enablePageScroll(),r()),l.classList.toggle("hidden"),a.classList.toggle("hidden")};return i.addEventListener("click",s),{teardown:function(){i.removeEventListener("click",s),t().enablePageScroll()},clear:function(){n.classList.replace("visible","invisible"),i.setAttribute("aria-expanded",!1),l.classList.remove("hidden"),a.classList.add("hidden"),t().enablePageScroll()}}}})(),i.default})()));
1
+ import scrollLock from"scroll-lock";import{queryId}from"../dom-query";const MeganavControlMobileDropdown=({clearPanels})=>{const control=queryId("meganav-control-mobile-dropdown");const dropdown=queryId("meganav-mobile-dropdown");const menuIcon=queryId("meganav-control-mobile-dropdown-menu");const closeIcon=queryId("meganav-control-mobile-dropdown-close");const clickHandler=()=>{const ariaExpanded=control.getAttribute("aria-expanded");if(ariaExpanded==="false"){dropdown.classList.replace("invisible","visible");control.setAttribute("aria-expanded",true);scrollLock.disablePageScroll()}else{dropdown.classList.replace("visible","invisible");control.setAttribute("aria-expanded",false);scrollLock.enablePageScroll();clearPanels()}menuIcon.classList.toggle("hidden");closeIcon.classList.toggle("hidden")};control.addEventListener("click",clickHandler);return{teardown:()=>{control.removeEventListener("click",clickHandler);scrollLock.enablePageScroll()},clear:()=>{dropdown.classList.replace("visible","invisible");control.setAttribute("aria-expanded",false);menuIcon.classList.remove("hidden");closeIcon.classList.add("hidden");scrollLock.enablePageScroll()}}};export default MeganavControlMobileDropdown;
@@ -0,0 +1 @@
1
+ import React from"react";import Icon from"./Icon";const MeganavControlMobileDropdown=({theme})=>React.createElement("button",{type:"button",className:"block ml-24 mr-0 px-0 py-16 hover:text-gui-hover focus:text-gui-focus focus:outline-none","data-id":"meganav-control-mobile-dropdown","aria-expanded":"false","aria-controls":"meganav-mobile-dropdown"},React.createElement(Icon,{name:"icon-gui-burger-menu",size:"1.5rem",color:theme.mobileMenuColor,additionalCSS:"transition-colors","data-id":"meganav-control-mobile-dropdown-menu"}),React.createElement(Icon,{name:"icon-gui-close",size:"1.5rem",color:theme.mobileMenuColor,additionalCSS:"transition-colors hidden","data-id":"meganav-control-mobile-dropdown-close"}));export default MeganavControlMobileDropdown;
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AblyUi=t():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavControlMobilePanelClose=t())}(this,(()=>(()=>{"use strict";var e={9581:(e,t,r)=>{r.d(t,{n:()=>n});var n=function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:document).querySelectorAll("[data-id=".concat(e,"]"))}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};return(()=>{r.d(n,{default:()=>t});var e=r(9581);const t=function(){var t=Array.from((0,e.n)("meganav-control-mobile-panel-close")),r=Array.from((0,e.n)("meganav-control-mobile-panel-open"));return t.map((function(e){var t=r.find((function(t){return t.getAttribute("aria-controls")===e.getAttribute("aria-controls")})),n=document.querySelector("#".concat(e.getAttribute("aria-controls"))),o=function(e,t,r){return function(){e.setAttribute("aria-expanded",!1),t.setAttribute("aria-expanded",!1),r.classList.replace("block","hidden"),r.style.height=null}}(e,t,n);return e.addEventListener("click",o),{teardown:function(){return e.removeEventListener("click",o)},clear:function(){return e.setAttribute("aria-expanded",!1)}}}))}})(),n.default})()));
1
+ import{queryIdAll}from"../dom-query";export default(()=>{const closeControls=Array.from(queryIdAll("meganav-control-mobile-panel-close"));const openControls=Array.from(queryIdAll("meganav-control-mobile-panel-open"));const clickHandler=(btn,openBtn,panel)=>()=>{btn.setAttribute("aria-expanded",false);openBtn.setAttribute("aria-expanded",false);panel.classList.replace("block","hidden");panel.style.height=null};return closeControls.map(btn=>{const openBtn=openControls.find(open=>open.getAttribute("aria-controls")===btn.getAttribute("aria-controls"));const panel=document.querySelector(`#${btn.getAttribute("aria-controls")}`);const handler=clickHandler(btn,openBtn,panel);btn.addEventListener("click",handler);return{teardown:()=>btn.removeEventListener("click",handler),clear:()=>btn.setAttribute("aria-expanded",false)}})});
@@ -0,0 +1 @@
1
+ import React from"react";import Icon from"./Icon";const MeganavControlMobilePanelClose=({ariaControls,displayHr=true})=>React.createElement("div",{className:"mx-24 md:mx-32"},React.createElement("button",{type:"button",className:"ui-meganav-mobile-link text-gui-default mb-16","data-id":"meganav-control-mobile-panel-close","aria-expanded":"false","aria-controls":ariaControls,"aria-label":"Hide panel"},React.createElement(Icon,{name:"icon-gui-disclosure-arrow",color:"text-cool-black",size:"1.5rem",additionalCSS:"relative -top-1 transform rotate-180"}),"Back"),displayHr?React.createElement("hr",{className:"ui-meganav-hr"}):null);export default MeganavControlMobilePanelClose;