@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,27 +1,52 @@
1
1
  import React from "react";
2
- import T from "prop-types";
3
2
 
4
- import MeganavControl from "../MeganavControl/component.jsx";
5
- import SignOutLink from "../SignOutLink/component.jsx";
6
- import MeganavSearch from "../MeganavSearch/component.jsx";
3
+ import MeganavControl from "./MeganavControl";
4
+ import SignOutLink from "./SignOutLink";
5
+ import MeganavSearch from "./MeganavSearch";
6
+ import { AbsUrl, MeganavSessionState, MeganavTheme } from "./Meganav";
7
+
8
+ type MeganavItemsSignedIn = {
9
+ sessionState: MeganavSessionState;
10
+ theme: MeganavTheme;
11
+ absUrl: AbsUrl;
12
+ };
7
13
 
8
14
  const truncate = (string, length) => {
9
- return string?.length && string.length > length ? `${string.slice(0, length - 1)}…` : string;
15
+ return string?.length && string.length > length
16
+ ? `${string.slice(0, length - 1)}…`
17
+ : string;
10
18
  };
11
19
 
12
- const MeganavItemsSignedIn = ({ sessionState, theme, absUrl }) => {
13
- const links = sessionState.account ? Object.keys(sessionState.account.links).map((key) => sessionState.account.links[key]) : [];
20
+ const MeganavItemsSignedIn = ({
21
+ sessionState,
22
+ theme,
23
+ absUrl,
24
+ }: MeganavItemsSignedIn) => {
25
+ const links = sessionState.account
26
+ ? Object.keys(sessionState.account.links).map(
27
+ (key) => sessionState.account.links[key]
28
+ )
29
+ : [];
14
30
  const accountName = truncate(sessionState.accountName, 20);
15
31
  const preferredEmail = truncate(sessionState.preferredEmail, 20);
16
32
 
17
33
  return (
18
34
  <ul className="hidden md:flex items-center">
19
35
  <li className="ui-meganav-item relative">
20
- <MeganavControl ariaControls="account-panel" ariaLabel="Account" theme={theme} additionalCSS="mr-0">
36
+ <MeganavControl
37
+ ariaControls="account-panel"
38
+ ariaLabel="Account"
39
+ theme={theme}
40
+ additionalCSS="mr-0"
41
+ >
21
42
  {accountName}
22
43
  </MeganavControl>
23
44
 
24
- <div className="ui-meganav-panel-account invisible" id="account-panel" data-id="meganav-panel">
45
+ <div
46
+ className="ui-meganav-panel-account invisible"
47
+ id="account-panel"
48
+ data-id="meganav-panel"
49
+ >
25
50
  {/* Users exist without accounts in which case there is no links here */}
26
51
  {sessionState.account && (
27
52
  <>
@@ -29,7 +54,10 @@ const MeganavItemsSignedIn = ({ sessionState, theme, absUrl }) => {
29
54
  <ul className="mb-16 mx-16">
30
55
  {links.map((item) => (
31
56
  <li key={item.href}>
32
- <a className="ui-meganav-account-link" href={absUrl(item.href)}>
57
+ <a
58
+ className="ui-meganav-account-link"
59
+ href={absUrl(item.href)}
60
+ >
33
61
  {item.text}
34
62
  </a>
35
63
  </li>
@@ -41,13 +69,19 @@ const MeganavItemsSignedIn = ({ sessionState, theme, absUrl }) => {
41
69
  <p className="ui-meganav-overline mx-16">{preferredEmail}</p>
42
70
  <ul className="mb-8 mx-16">
43
71
  <li>
44
- <a href={absUrl(sessionState.mySettings.href)} className="ui-meganav-account-link">
72
+ <a
73
+ href={absUrl(sessionState.mySettings.href)}
74
+ className="ui-meganav-account-link"
75
+ >
45
76
  {sessionState.mySettings.text}
46
77
  </a>
47
78
  </li>
48
79
  {sessionState.myAccessTokens && (
49
80
  <li>
50
- <a href={absUrl(sessionState.myAccessTokens.href)} className="ui-meganav-account-link">
81
+ <a
82
+ href={absUrl(sessionState.myAccessTokens.href)}
83
+ className="ui-meganav-account-link"
84
+ >
51
85
  {sessionState.myAccessTokens.text}
52
86
  <span className="ui-version-tag">preview</span>
53
87
  </a>
@@ -61,7 +95,11 @@ const MeganavItemsSignedIn = ({ sessionState, theme, absUrl }) => {
61
95
  <div className="mb-16 px-16">
62
96
  <SignOutLink absUrl={absUrl} {...sessionState.logOut}>
63
97
  {({ text, href, onClick }) => (
64
- <a onClick={onClick} href={absUrl(href)} className="ui-meganav-account-link">
98
+ <a
99
+ onClick={onClick}
100
+ href={absUrl(href)}
101
+ className="ui-meganav-account-link"
102
+ >
65
103
  {text}
66
104
  </a>
67
105
  )}
@@ -77,7 +115,10 @@ const MeganavItemsSignedIn = ({ sessionState, theme, absUrl }) => {
77
115
 
78
116
  {sessionState.account && (
79
117
  <li>
80
- <a href={absUrl(sessionState.account.links.dashboard.href)} className="ui-btn-secondary p-btn-small">
118
+ <a
119
+ href={absUrl(sessionState.account.links.dashboard.href)}
120
+ className="ui-btn-secondary p-btn-small"
121
+ >
81
122
  Dashboard
82
123
  </a>
83
124
  </li>
@@ -86,13 +127,4 @@ const MeganavItemsSignedIn = ({ sessionState, theme, absUrl }) => {
86
127
  );
87
128
  };
88
129
 
89
- MeganavItemsSignedIn.propTypes = {
90
- sessionState: T.object,
91
- paths: T.shape({
92
- iconSprites: T.string,
93
- }),
94
- theme: T.object,
95
- absUrl: T.func,
96
- };
97
-
98
130
  export default MeganavItemsSignedIn;
@@ -0,0 +1,36 @@
1
+ import React from "react";
2
+
3
+ import Icon from "./Icon";
4
+ import MeganavSearchPanel from "./MeganavSearchPanel";
5
+ import { AbsUrl } from "./Meganav";
6
+
7
+ const MeganavSearch = ({ absUrl }: { absUrl: AbsUrl }) => (
8
+ <>
9
+ <button
10
+ type="button"
11
+ data-id="meganav-control"
12
+ data-control="search"
13
+ className="h-64 w-24 px-24 pr-48 py-20 group focus:outline-none"
14
+ aria-expanded="false"
15
+ aria-controls="panel-search"
16
+ aria-label={`Show Search Panel`}
17
+ >
18
+ <Icon
19
+ name="icon-gui-search"
20
+ color="text-cool-black"
21
+ size="1.5rem"
22
+ additionalCSS="group-hover:text-gui-hover group-focus:text-gui-focus"
23
+ />
24
+ </button>
25
+
26
+ <div
27
+ className="ui-meganav-panel invisible"
28
+ id="panel-search"
29
+ data-id="meganav-panel"
30
+ >
31
+ <MeganavSearchPanel absUrl={absUrl} />
32
+ </div>
33
+ </>
34
+ );
35
+
36
+ export default MeganavSearch;
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+
3
+ const MeganavSearchAutocomplete = () => (
4
+ <div
5
+ className="absolute w-full mt-8 z-10 hidden shadow-container rounded-lg bg-white border border-mid-grey"
6
+ data-id="meganav-search-autocomplete-container"
7
+ >
8
+ <ol className="m-16" data-id="meganav-search-autocomplete-list"></ol>
9
+ </div>
10
+ );
11
+
12
+ export default MeganavSearchAutocomplete;
@@ -0,0 +1,52 @@
1
+ import React from "react";
2
+
3
+ import Icon from "./Icon";
4
+ import MeganavSearchSuggestions from "./MeganavSearchSuggestions";
5
+ import MeganavSearchAutocomplete from "./MeganavSearchAutocomplete";
6
+ import { AbsUrl } from "./Meganav";
7
+
8
+ const MeganavSearchPanel = ({ absUrl }: { absUrl: AbsUrl }) => (
9
+ <section className="ui-meganav-content grid-cols-12">
10
+ <div className="col-span-8">
11
+ <div className="mb-32">
12
+ <form
13
+ className="flex items-start"
14
+ action={absUrl("/search")}
15
+ method="get"
16
+ >
17
+ <div className="relative w-full">
18
+ <Icon
19
+ name="icon-gui-search"
20
+ color="text-cool-black"
21
+ size="1.5rem"
22
+ additionalCSS="absolute top-12 left-16"
23
+ />
24
+ <input
25
+ type="search"
26
+ name="q"
27
+ className="ui-input pl-48 h-48"
28
+ placeholder="Search"
29
+ autoComplete="off"
30
+ data-id="meganav-search-input"
31
+ />
32
+
33
+ <MeganavSearchAutocomplete />
34
+ </div>
35
+
36
+ <button
37
+ type="submit"
38
+ className="ui-btn-secondary flex-shrink-0 ml-8 sm:ml-16 md:ml-24 xl:ml-32"
39
+ >
40
+ Search
41
+ </button>
42
+ </form>
43
+ </div>
44
+ </div>
45
+
46
+ <div className="col-span-12">
47
+ <MeganavSearchSuggestions displaySupportLink={true} absUrl={absUrl} />
48
+ </div>
49
+ </section>
50
+ );
51
+
52
+ export default MeganavSearchPanel;
@@ -0,0 +1,62 @@
1
+ import React from "react";
2
+
3
+ import FeaturedLink from "./FeaturedLink";
4
+ import { AbsUrl } from "./Meganav";
5
+
6
+ type MeganavSearchSuggestionsProps = {
7
+ absUrl: AbsUrl;
8
+ displaySupportLink: boolean;
9
+ };
10
+
11
+ const MeganavSearchSuggestions = ({
12
+ absUrl,
13
+ displaySupportLink,
14
+ }: MeganavSearchSuggestionsProps) => (
15
+ <>
16
+ <p className="ui-text-overline2 text-cool-black py-12">Popular pages</p>
17
+
18
+ <div className="flex justify-between items-center overflow-hidden">
19
+ <ul className="flex transition-transform">
20
+ <li className="py-12 pr-8 flex-shrink-0">
21
+ <a
22
+ href={absUrl("/docs/how-ably-works")}
23
+ className="ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"
24
+ >
25
+ How does Ably work?
26
+ </a>
27
+ </li>
28
+ <li className="py-12 px-8 flex-shrink-0">
29
+ <a
30
+ href={absUrl("/docs/quick-start-guide")}
31
+ className="ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"
32
+ >
33
+ Quickstart guide
34
+ </a>
35
+ </li>
36
+ <li className="py-12 px-8 flex-shrink-0">
37
+ <a
38
+ href={absUrl("/docs/core-features/pubsub")}
39
+ className="ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"
40
+ >
41
+ Publish/Subscribe Messaging
42
+ </a>
43
+ </li>
44
+ <li className="py-12 pl-8 flex-shrink-0">
45
+ <a
46
+ href={absUrl("/platform")}
47
+ className="ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"
48
+ >
49
+ Platform
50
+ </a>
51
+ </li>
52
+ </ul>
53
+ {displaySupportLink ? (
54
+ <FeaturedLink url={absUrl("/support")} textSize="text-p2">
55
+ Support
56
+ </FeaturedLink>
57
+ ) : null}
58
+ </div>
59
+ </>
60
+ );
61
+
62
+ export default MeganavSearchSuggestions;
Binary file
@@ -1,7 +1,5 @@
1
- @layer components {
2
- .ui-announcement {
3
- @apply font-sans;
4
- max-height: 37.5rem;
5
- transition: max-height 300ms;
6
- }
1
+ .ui-announcement {
2
+ @apply font-sans;
3
+ max-height: 37.5rem;
4
+ transition: max-height 300ms;
7
5
  }
@@ -3,7 +3,7 @@ import Cookie from "js-cookie";
3
3
  import throttle from "lodash.throttle";
4
4
 
5
5
  import { queryId } from "../dom-query";
6
- import { FLASH_DATA_ID } from "../Flash/component.jsx";
6
+ import { FLASH_DATA_ID } from "../Flash";
7
7
 
8
8
  const COOKIE_EXPIRY = 90;
9
9
  const COLLAPSE_TRIGGER_DISTANCE = 5;
@@ -0,0 +1,103 @@
1
+ import React, { ReactNode, useEffect } from "react";
2
+
3
+ import NoticeScripts from "./Notice/component.js";
4
+ import "./Notice/component.css";
5
+ import Icon from "./Icon";
6
+ type ContentWrapperProps = {
7
+ buttonLink: string;
8
+ children: ReactNode;
9
+ };
10
+
11
+ // TODO(jamiehenson):
12
+ // This type is a bit messed up currently due to the NoticeScripts import being interpreted as NoticeProps.
13
+ // Plan is to TS-ify the JS assets too, so this can be rectified then. The NoticeScripts-oriented props are
14
+ // the ones after the line break.
15
+ type NoticeProps = {
16
+ buttonLink?: string;
17
+ buttonLabel?: string;
18
+ bodyText?: string;
19
+ title?: string;
20
+ closeBtn?: boolean;
21
+ config?: {
22
+ collapse: boolean;
23
+ noticeId: string;
24
+ cookieId: string;
25
+ };
26
+ bgColor?: string;
27
+ textColor?: string;
28
+
29
+ bannerContainer?: Element | null;
30
+ cookieId?: string;
31
+ noticeId?: string;
32
+ options?: { collapse: boolean };
33
+ };
34
+
35
+ const contentWrapperClasses = "w-full pr-8 ui-text-p3 self-center";
36
+
37
+ const ContentWrapper = ({ buttonLink, children }: ContentWrapperProps) =>
38
+ buttonLink ? (
39
+ <a href={buttonLink} className={contentWrapperClasses}>
40
+ {children}
41
+ </a>
42
+ ) : (
43
+ <div className={contentWrapperClasses}>{children}</div>
44
+ );
45
+
46
+ const Notice = ({
47
+ buttonLink,
48
+ buttonLabel,
49
+ bodyText,
50
+ title,
51
+ config,
52
+ closeBtn,
53
+ bgColor = "bg-gradient-active-orange",
54
+ textColor = "text-white",
55
+ }: NoticeProps) => {
56
+ useEffect(() => {
57
+ NoticeScripts({
58
+ bannerContainer: document.querySelector('[data-id="ui-notice"]'),
59
+ cookieId: config?.cookieId,
60
+ noticeId: config?.noticeId,
61
+ options: {
62
+ collapse: config?.collapse || false,
63
+ },
64
+ });
65
+ }, []);
66
+
67
+ const wrapperClasses = ["ui-announcement", bgColor, textColor].join(" ");
68
+
69
+ return (
70
+ <div
71
+ className={wrapperClasses}
72
+ data-id="ui-notice"
73
+ style={{ maxHeight: 0, overflow: "hidden" }}
74
+ >
75
+ <div className="ui-grid-px py-16 max-w-screen-xl mx-auto flex items-start">
76
+ <ContentWrapper buttonLink={buttonLink ?? "#"}>
77
+ <strong className="font-bold whitespace-nowrap pr-4">{title}</strong>
78
+ <span className="pr-4">{bodyText}</span>
79
+ {buttonLabel && (
80
+ <span className="underline cursor-pointer whitespace-nowrap">
81
+ {buttonLabel}
82
+ </span>
83
+ )}
84
+ </ContentWrapper>
85
+
86
+ {closeBtn && (
87
+ <button
88
+ type="button"
89
+ className="ml-auto h-20 w-20 border-none bg-none self-baseline"
90
+ >
91
+ <Icon
92
+ name="icon-gui-close"
93
+ size="1.25rem"
94
+ color="text-cool-black"
95
+ />
96
+ </button>
97
+ )}
98
+ </div>
99
+ </div>
100
+ );
101
+ };
102
+
103
+ export default Notice;
@@ -0,0 +1,51 @@
1
+ import React, { MouseEventHandler, ReactNode, useRef } from "react";
2
+ import { AbsUrl } from "./Meganav";
3
+
4
+ type SignOutLinkProps = {
5
+ token: string;
6
+ href: string;
7
+ text: string;
8
+ children: ({
9
+ href,
10
+ text,
11
+ onClick,
12
+ }: {
13
+ href: string;
14
+ text: string;
15
+ onClick: MouseEventHandler<HTMLAnchorElement>;
16
+ }) => ReactNode;
17
+ absUrl: AbsUrl;
18
+ };
19
+
20
+ const SignOutLink = ({
21
+ token,
22
+ href,
23
+ text,
24
+ children,
25
+ absUrl,
26
+ }: SignOutLinkProps) => {
27
+ const formRef = useRef<HTMLFormElement>(null);
28
+
29
+ const onClick = (e) => {
30
+ formRef.current?.submit();
31
+ e.preventDefault();
32
+ };
33
+
34
+ return (
35
+ <>
36
+ <form
37
+ ref={formRef}
38
+ method="post"
39
+ action={absUrl(href)}
40
+ className="hidden"
41
+ >
42
+ <input name="_method" value="delete" type="hidden" />
43
+ <input name="authenticity_token" value={token} type="hidden" />
44
+ </form>
45
+
46
+ {children({ href, text, onClick })}
47
+ </>
48
+ );
49
+ };
50
+
51
+ export default SignOutLink;
Binary file
@@ -0,0 +1,98 @@
1
+ import React from "react";
2
+ import Slider from "../Slider";
3
+ import Icon from "../Icon";
4
+
5
+ const Slide = ({ name }: { name: string }) => (
6
+ <div className="relative ">
7
+ <div className="relative w-full sm:w-[560px] md:w-[784px] lg:w-[960px] bg-white overflow-hidden flex gap-40 rounded-3xl shadow-container-subtle">
8
+ <div className="w-full md:w-2/3 flex flex-col gap-24 pr-40 md:pr-0 pt-40 pl-40 pb-40 sm:pb-[120px] md:pb-40">
9
+ <h2 className="ui-text-h2 font-medium text-neutral-1000">
10
+ “Ably seamlessly absorbs sudden bursts in load during unexpected
11
+ client events. The integration was easy and we were live in under a
12
+ month.”
13
+ </h2>
14
+ <div className="flex flex-col sm:flex-row gap-32">
15
+ <div className="flex gap-8">
16
+ <div className="static self-center sm:absolute sm:-bottom-48 sm:-right-[56px] rounded-full bg-gradient-to-l from-neutral-200 to-50% to-neutral-500 w-[48px] h-[48px] sm:w-[201px] sm:h-[201px] md:w-[257px] md:h-[257px] lg:w-[280px] lg:h-[280px] overflow-hidden flex items-center justify-center sm:border-[16px] border-neutral-200">
17
+ <img src="https://picsum.photos/id/64/200" alt="test-image" />
18
+ </div>
19
+ <div className="sm:py-16">
20
+ <p className="ui-text-p1 text-neutral-1300">{name}</p>
21
+ <p className="ui-text-p3 text-neutral-800">
22
+ Co-Founder & Technical Leader
23
+ </p>
24
+ </div>
25
+ </div>
26
+
27
+ <div className="w-[80px] h-1 sm:w-1 sm:h-full bg-neutral-500"></div>
28
+ <div className="flex items-center gap-4">
29
+ <img src="https://picsum.photos/id/145/40" alt="test-image" />
30
+ <p className="ui-text-h4 font-bold">Mentimeter</p>
31
+ </div>
32
+ </div>
33
+ <a href="/case-study" className="ui-btn self-start">
34
+ Read case study
35
+ <Icon
36
+ name="icon-gui-arrow-right"
37
+ size="1.25rem"
38
+ additionalCSS="ml-4"
39
+ />
40
+ </a>
41
+ </div>
42
+ </div>
43
+
44
+ <div className="absolute h-256 -z-10 -bottom-48 -left-36 w-1/5 rounded-full blur-xl opacity-50 transform -rotate-45 bg-gradient-to-bl from-bg-glow-green to-bg-glow-teal"></div>
45
+ <div className="absolute h-256 -z-10 -top-48 -right-48 w-3/5 rounded-full blur-xl opacity-50 transform rotate-12 bg-gradient-to-br from-bg-glow-green to-bg-glow-teal"></div>
46
+ </div>
47
+ );
48
+
49
+ const slides = [
50
+ <Slide key="1" name={"Johan Bengtsson"} />,
51
+ <Slide key="2" name={"Mirko Bergman"} />,
52
+ <Slide key="3" name={"Stefania Lombardo"} />,
53
+ <Slide key="4" name={"Aleksandar Kostadinov"} />,
54
+ ];
55
+
56
+ export default {
57
+ title: "Components/Slider",
58
+ component: Slider,
59
+ args: {
60
+ children: slides,
61
+ options: {
62
+ interval: 10000,
63
+ intervalIndicator: true,
64
+ controlPosition: "floating",
65
+ },
66
+ },
67
+ };
68
+
69
+ export const FloatingControlPosition = {
70
+ args: {
71
+ children: slides,
72
+ options: {
73
+ interval: 10000,
74
+ intervalIndicator: true,
75
+ controlPosition: "floating",
76
+ },
77
+ },
78
+ };
79
+
80
+ export const InlineControlPosition = {
81
+ args: {
82
+ options: {
83
+ interval: 10000,
84
+ intervalIndicator: true,
85
+ controlPosition: "inline",
86
+ },
87
+ },
88
+ };
89
+
90
+ export const WithoutIntervalIndicator = {
91
+ args: {
92
+ options: {
93
+ interval: 10000,
94
+ intervalIndicator: false,
95
+ controlPosition: "floating",
96
+ },
97
+ },
98
+ };
@@ -1,8 +1,38 @@
1
- @layer components {
2
- .ui-slider-marker {
3
- font-size: 0.5rem;
4
- top: -1px;
1
+ .ui-slider-marker {
2
+ font-size: 0.5rem;
3
+ top: -1px;
5
4
 
6
- @apply leading-none px-4 relative;
5
+ @apply leading-none px-4 relative;
6
+ }
7
+
8
+ @keyframes fillAnimation {
9
+ 0% {
10
+ width: 0%;
11
+ }
12
+ 100% {
13
+ width: 100%;
14
+ }
15
+ }
16
+
17
+ .ui-icon-cta {
18
+ @apply cursor-pointer overflow-hidden;
19
+ @apply rounded border-2 border-mid-grey hover:border-active-orange;
20
+ transition: all 0.4s;
21
+ }
22
+
23
+ @screen sm {
24
+ .ui-icon-cta-left:hover .ui-icon-cta-holder {
25
+ transform: translateX(-120%);
26
+ }
27
+ .ui-icon-cta-right .ui-icon-cta-holder {
28
+ transform: translateX(-120%);
7
29
  }
30
+ .ui-icon-cta-right:hover .ui-icon-cta-holder {
31
+ transform: translateX(0%);
32
+ }
33
+ }
34
+
35
+ .ui-icon-cta-holder {
36
+ @apply w-full h-full;
37
+ transition: all 0.4s;
8
38
  }