@ably/ui 13.3.0 → 14.0.0-dev.58ef698

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 (407) hide show
  1. package/README.md +25 -152
  2. package/core/.DS_Store +0 -0
  3. package/core/Accordion/component.js +1 -0
  4. package/core/Code/component.css +1 -72
  5. package/core/Code/component.js +1 -1
  6. package/core/ConnectStateWrapper/component.js +1 -1
  7. package/core/ContactFooter/component.css +7 -10
  8. package/core/ContactFooter/component.js +1 -1
  9. package/core/CookieMessage/component.css +10 -13
  10. package/core/CookieMessage/component.js +1 -1
  11. package/core/CustomerLogos/component.js +1 -1
  12. package/core/DropdownMenu/component.js +1 -1
  13. package/core/FeaturedLink/component.js +1 -1
  14. package/core/Flash/component.css +19 -22
  15. package/core/Flash/component.js +1 -1
  16. package/core/Footer/component.css +22 -25
  17. package/core/Footer/component.js +1 -1
  18. package/core/Icon/component.js +1 -1
  19. package/core/Loader/component.js +1 -1
  20. package/core/Logo/component.js +1 -1
  21. package/core/Meganav/.DS_Store +0 -0
  22. package/core/Meganav/component.css +103 -106
  23. package/core/Meganav/component.js +1 -1
  24. package/core/MeganavBlogPostsList/component.js +1 -2
  25. package/core/MeganavContentCompany/component.js +1 -1
  26. package/core/MeganavContentDevelopers/component.js +1 -1
  27. package/core/MeganavContentProducts/component.js +1 -1
  28. package/core/MeganavContentUseCases/component.js +1 -1
  29. package/core/MeganavControl/component.js +1 -1
  30. package/core/MeganavControlMobileDropdown/component.js +1 -1
  31. package/core/MeganavControlMobilePanelClose/component.js +1 -1
  32. package/core/MeganavControlMobilePanelOpen/component.js +1 -1
  33. package/core/MeganavItemsDesktop/component.js +1 -1
  34. package/core/MeganavItemsMobile/component.js +1 -1
  35. package/core/MeganavItemsSignedIn/component.js +1 -1
  36. package/core/MeganavSearch/component.js +1 -1
  37. package/core/MeganavSearchAutocomplete/component.js +1 -1
  38. package/core/MeganavSearchPanel/component.js +1 -1
  39. package/core/MeganavSearchSuggestions/component.js +1 -1
  40. package/core/Notice/component.css +4 -7
  41. package/core/Notice/component.js +1 -1
  42. package/core/SignOutLink/component.js +1 -1
  43. package/core/Slider/component.css +4 -7
  44. package/core/Slider/component.js +1 -1
  45. package/core/Table/Table.js +1 -0
  46. package/core/Table/TableCell.js +1 -0
  47. package/core/Table/TableRow.js +1 -0
  48. package/core/Table/index.js +1 -0
  49. package/core/Table/stories/data.js +1 -0
  50. package/core/Tooltip/component.js +1 -0
  51. package/core/css.js +1 -0
  52. package/core/dom-query.js +1 -0
  53. package/core/hubspot-chat-toggle.js +1 -0
  54. package/core/icons/discord.svg +10 -0
  55. package/core/icons/facebook.svg +4 -0
  56. package/core/icons/github.svg +3 -0
  57. package/core/icons/glassdoor.svg +3 -0
  58. package/core/icons/google.svg +3 -0
  59. package/core/icons/icon-display-48hrs.svg +3 -0
  60. package/core/icons/icon-display-about-ably-col.svg +4 -0
  61. package/core/icons/icon-display-api-keys.svg +3 -0
  62. package/core/icons/icon-display-api.svg +3 -0
  63. package/core/icons/icon-display-asset-tracking-col.svg +18 -0
  64. package/core/icons/icon-display-browser.svg +10 -0
  65. package/core/icons/icon-display-calendar.svg +3 -0
  66. package/core/icons/icon-display-call-mobile.svg +3 -0
  67. package/core/icons/icon-display-careers-col.svg +9 -0
  68. package/core/icons/icon-display-case-studies-col.svg +5 -0
  69. package/core/icons/icon-display-chat-col.svg +4 -0
  70. package/core/icons/icon-display-chat-stack-col.svg +4 -0
  71. package/core/icons/icon-display-chat-stack.svg +4 -0
  72. package/core/icons/icon-display-cloud-servers.svg +3 -0
  73. package/core/icons/icon-display-compare-tech-col.svg +9 -0
  74. package/core/icons/icon-display-customers-col.svg +15 -0
  75. package/core/icons/icon-display-data-broadcast-col.svg +26 -0
  76. package/core/icons/icon-display-data-synchronization-col.svg +14 -0
  77. package/core/icons/icon-display-docs-col.svg +7 -0
  78. package/core/icons/icon-display-documentation.svg +3 -0
  79. package/core/icons/icon-display-events-col.svg +13 -0
  80. package/core/icons/icon-display-examples-col.svg +11 -0
  81. package/core/icons/icon-display-gdpr.svg +3 -0
  82. package/core/icons/icon-display-general-comms.svg +3 -0
  83. package/core/icons/icon-display-hipaa.svg +10 -0
  84. package/core/icons/icon-display-integrations-col.svg +8 -0
  85. package/core/icons/icon-display-it-support-access.svg +3 -0
  86. package/core/icons/icon-display-it-support-helpdesk.svg +3 -0
  87. package/core/icons/icon-display-kafka-at-the-edge-col.svg +8 -0
  88. package/core/icons/icon-display-laptop.svg +10 -0
  89. package/core/icons/icon-display-lightbulb-col.svg +10 -0
  90. package/core/icons/icon-display-live-chat.svg +3 -0
  91. package/core/icons/icon-display-map-pin.svg +3 -0
  92. package/core/icons/icon-display-message.svg +3 -0
  93. package/core/icons/icon-display-padlock-closed.svg +3 -0
  94. package/core/icons/icon-display-platform.svg +22 -0
  95. package/core/icons/icon-display-play.svg +3 -0
  96. package/core/icons/icon-display-privacy-shield-framework.svg +7 -0
  97. package/core/icons/icon-display-push-notifications-col.svg +6 -0
  98. package/core/icons/icon-display-quickstart-guides-col.svg +8 -0
  99. package/core/icons/icon-display-resources-col.svg +21 -0
  100. package/core/icons/icon-display-sdks-col.svg +11 -0
  101. package/core/icons/icon-display-servers.svg +3 -0
  102. package/core/icons/icon-display-shopping-cart.svg +10 -0
  103. package/core/icons/icon-display-sla.svg +3 -0
  104. package/core/icons/icon-display-soc2-type2.svg +3 -0
  105. package/core/icons/icon-display-tech-account-comms.svg +3 -0
  106. package/core/icons/icon-display-tutorials-demos-col.svg +25 -0
  107. package/core/icons/icon-display-virtual-events-col.svg +12 -0
  108. package/core/icons/icon-display-virtual-events.svg +12 -0
  109. package/core/icons/icon-gui-ably-badge.svg +3 -0
  110. package/core/icons/icon-gui-arrow-bidirectional-horizontal.svg +3 -0
  111. package/core/icons/icon-gui-arrow-bidirectional-vertical.svg +3 -0
  112. package/core/icons/icon-gui-arrow-down.svg +3 -0
  113. package/core/icons/icon-gui-arrow-left.svg +3 -0
  114. package/core/icons/icon-gui-arrow-right.svg +3 -0
  115. package/core/icons/icon-gui-arrow-up.svg +3 -0
  116. package/core/icons/icon-gui-burger-menu.svg +5 -0
  117. package/core/icons/icon-gui-check-circled-fill-black.svg +4 -0
  118. package/core/icons/icon-gui-check-circled-fill.svg +4 -0
  119. package/core/icons/icon-gui-check-circled.svg +3 -0
  120. package/core/icons/icon-gui-checklist-checked.svg +3 -0
  121. package/core/icons/icon-gui-clock.svg +3 -0
  122. package/core/icons/icon-gui-close.svg +3 -0
  123. package/core/icons/icon-gui-copy.svg +10 -0
  124. package/core/icons/icon-gui-cross-circled-fill.svg +4 -0
  125. package/core/icons/icon-gui-cross-circled.svg +3 -0
  126. package/core/icons/icon-gui-dash-circled.svg +3 -0
  127. package/core/icons/icon-gui-disclosure-arrow.svg +3 -0
  128. package/core/icons/icon-gui-document-generic.svg +3 -0
  129. package/core/icons/icon-gui-enlarge.svg +3 -0
  130. package/core/icons/icon-gui-external-link.svg +3 -0
  131. package/core/icons/icon-gui-filter-flow-step-1.svg +5 -0
  132. package/core/icons/icon-gui-filter-flow-step-2.svg +5 -0
  133. package/core/icons/icon-gui-filter-flow-step-3.svg +5 -0
  134. package/core/icons/icon-gui-history.svg +3 -0
  135. package/core/icons/icon-gui-info.svg +3 -0
  136. package/core/icons/icon-gui-link-arrow.svg +3 -0
  137. package/core/icons/icon-gui-link.svg +4 -0
  138. package/core/icons/icon-gui-live-chat.svg +3 -0
  139. package/core/icons/icon-gui-minus.svg +3 -0
  140. package/core/icons/icon-gui-plus.svg +3 -0
  141. package/core/icons/icon-gui-quote-marks-solid.svg +3 -0
  142. package/core/icons/icon-gui-refresh.svg +10 -0
  143. package/core/icons/icon-gui-resources.svg +3 -0
  144. package/core/icons/icon-gui-search.svg +3 -0
  145. package/core/icons/icon-gui-tick.svg +3 -0
  146. package/core/icons/icon-gui-warning.svg +5 -0
  147. package/core/icons/icon-live-updates-results-metrics-col.svg +26 -0
  148. package/core/icons/icon-multi-user-spaces-col.svg +13 -0
  149. package/core/icons/icon-social-x.svg +3 -0
  150. package/core/icons/icon-tech-apachekafka.svg +3 -0
  151. package/core/icons/linkedin.svg +3 -0
  152. package/core/icons/quote.svg +3 -0
  153. package/core/icons/stackoverflow.svg +3 -0
  154. package/core/icons/twitter.svg +3 -0
  155. package/core/icons/youtube.svg +11 -0
  156. package/core/icons.js +1 -0
  157. package/core/load-sprites.js +1 -0
  158. package/core/react-renderer.js +1 -0
  159. package/core/remote-blogs-posts.js +1 -0
  160. package/core/remote-data-store.js +1 -0
  161. package/core/remote-data-util.js +1 -0
  162. package/core/remote-session-data.js +1 -0
  163. package/core/scripts.js +1 -2
  164. package/core/sprites.svg +1 -525
  165. package/core/styles/buttons.css +122 -0
  166. package/core/styles/forms.css +62 -0
  167. package/core/styles/layout.css +19 -0
  168. package/core/styles/properties.css +276 -0
  169. package/core/styles/text.css +166 -0
  170. package/core/styles.base.css +1 -0
  171. package/core/styles.components.css +33 -0
  172. package/core/styles.css +2 -699
  173. package/core/url-base.js +1 -0
  174. package/core/utils/syntax-highlighter-registry.js +1 -0
  175. package/core/utils/syntax-highlighter.css +67 -0
  176. package/core/utils/syntax-highlighter.js +1 -0
  177. package/package.json +39 -34
  178. package/reset/scripts.js +1 -1
  179. package/reset/styles/normalize.css +353 -0
  180. package/reset/styles/reset.css +129 -0
  181. package/reset/styles.css +2 -477
  182. package/src/.DS_Store +0 -0
  183. package/src/core/.DS_Store +0 -0
  184. package/src/core/Accordion/Accordion.stories.tsx +39 -0
  185. package/src/core/Accordion/component.tsx +147 -0
  186. package/src/core/Code/Code.stories.tsx +71 -0
  187. package/src/core/Code/component.tsx +45 -0
  188. package/src/core/ConnectStateWrapper/{component.jsx → component.tsx} +7 -3
  189. package/src/core/ContactFooter/ContactFooter.stories.tsx +11 -0
  190. package/src/core/ContactFooter/component.css +7 -9
  191. package/src/core/ContactFooter/component.tsx +92 -0
  192. package/src/core/CookieMessage/CookieMessage.stories.tsx +12 -0
  193. package/src/core/CookieMessage/component.css +10 -12
  194. package/src/core/CookieMessage/{component.jsx → component.tsx} +15 -10
  195. package/src/core/CustomerLogos/CustomerLogos.stories.tsx +43 -0
  196. package/src/core/CustomerLogos/component.tsx +35 -0
  197. package/src/core/DropdownMenu/DropdownMenu.stories.tsx +48 -0
  198. package/src/core/DropdownMenu/{component.jsx → component.tsx} +64 -36
  199. package/src/core/FeaturedLink/FeaturedLink.stories.tsx +43 -0
  200. package/src/core/FeaturedLink/{component.jsx → component.tsx} +26 -18
  201. package/src/core/Flash/Flash.stories.tsx +37 -0
  202. package/src/core/Flash/component.css +19 -21
  203. package/src/core/Flash/{component.jsx → component.tsx} +78 -39
  204. package/src/core/Footer/Footer.stories.tsx +26 -0
  205. package/src/core/Footer/component.css +22 -24
  206. package/src/core/Footer/{component.jsx → component.tsx} +237 -70
  207. package/src/core/Icon/Icon.stories.tsx +150 -0
  208. package/src/core/Icon/component.tsx +26 -0
  209. package/src/core/Loader/Loader.stories.tsx +21 -0
  210. package/src/core/Loader/{component.jsx → component.tsx} +11 -8
  211. package/src/core/Logo/Logo.stories.tsx +12 -0
  212. package/src/core/Logo/component.tsx +29 -0
  213. package/src/core/Meganav/.DS_Store +0 -0
  214. package/src/core/Meganav/Meganav.stories.tsx +86 -0
  215. package/src/core/Meganav/component.css +103 -105
  216. package/src/core/Meganav/component.js +6 -7
  217. package/src/core/Meganav/component.tsx +228 -0
  218. package/src/core/MeganavBlogPostsList/{component.jsx → component.tsx} +15 -14
  219. package/src/core/MeganavContentCompany/{component.jsx → component.tsx} +82 -33
  220. package/src/core/MeganavContentDevelopers/{component.jsx → component.tsx} +98 -34
  221. package/src/core/MeganavContentProducts/component.tsx +165 -0
  222. package/src/core/MeganavContentUseCases/component.tsx +244 -0
  223. package/src/core/MeganavControl/{component.jsx → component.tsx} +18 -12
  224. package/src/core/MeganavControlMobileDropdown/{component.jsx → component.tsx} +3 -7
  225. package/src/core/MeganavControlMobilePanelClose/{component.jsx → component.tsx} +16 -9
  226. package/src/core/MeganavControlMobilePanelOpen/component.tsx +32 -0
  227. package/src/core/MeganavItemsDesktop/component.tsx +68 -0
  228. package/src/core/MeganavItemsMobile/component.tsx +197 -0
  229. package/src/core/MeganavItemsSignedIn/{component.jsx → component.tsx} +59 -23
  230. package/src/core/MeganavSearch/component.tsx +36 -0
  231. package/src/core/MeganavSearchAutocomplete/component.tsx +12 -0
  232. package/src/core/MeganavSearchPanel/component.tsx +52 -0
  233. package/src/core/MeganavSearchSuggestions/component.tsx +62 -0
  234. package/src/core/Notice/component.css +4 -6
  235. package/src/core/Notice/component.js +1 -1
  236. package/src/core/Notice/component.tsx +104 -0
  237. package/src/core/SignOutLink/component.tsx +51 -0
  238. package/src/core/Slider/Slider.stories.tsx +45 -0
  239. package/src/core/Slider/component.css +4 -6
  240. package/src/core/Slider/component.tsx +112 -0
  241. package/src/core/Table/Table.tsx +30 -0
  242. package/src/core/Table/TableCell.tsx +84 -0
  243. package/src/core/Table/TableRow.tsx +25 -0
  244. package/src/core/Table/index.ts +24 -0
  245. package/src/core/Table/stories/Table.stories.tsx +12 -0
  246. package/src/core/Table/stories/data.tsx +113 -0
  247. package/src/core/Tooltip/Tooltip.stories.tsx +27 -0
  248. package/src/core/Tooltip/component.tsx +60 -0
  249. package/src/core/icons.js +6 -0
  250. package/src/core/{react-renderer.js → react-renderer.tsx} +9 -7
  251. package/src/core/styles/buttons.css +121 -123
  252. package/src/core/styles/forms.css +49 -51
  253. package/src/core/styles/layout.css +14 -16
  254. package/src/core/styles/properties.css +250 -259
  255. package/src/core/styles/text.css +165 -167
  256. package/src/core/styles.components.css +22 -24
  257. package/src/core/utils/syntax-highlighter.css +55 -59
  258. package/src/pages/Buttons.mdx +121 -0
  259. package/src/pages/Chips.mdx +136 -0
  260. package/src/pages/Colour.mdx +23 -0
  261. package/src/pages/Forms.mdx +173 -0
  262. package/src/pages/Layout.mdx +58 -0
  263. package/src/pages/Typography.mdx +206 -0
  264. package/src/pages/utils.ts +70 -0
  265. package/tailwind.config.js +1 -7
  266. package/tailwind.extend.js +1 -1
  267. package/core/.gitignore +0 -1
  268. package/core/Code.jsx +0 -684
  269. package/core/CompanyAutocomplete/component.css +0 -46
  270. package/core/CompanyAutocomplete/component.js +0 -2
  271. package/core/CompanyAutocomplete/component.js.LICENSE.txt +0 -1
  272. package/core/ConnectStateWrapper.jsx +0 -222
  273. package/core/ContactFooter.jsx +0 -342
  274. package/core/CookieMessage.jsx +0 -204
  275. package/core/CustomerLogos.jsx +0 -144
  276. package/core/DropdownMenu.jsx +0 -313
  277. package/core/FeatureFooter/component.css +0 -13
  278. package/core/FeatureFooter/component.js +0 -1
  279. package/core/FeaturedLink.jsx +0 -241
  280. package/core/Flash.jsx +0 -622
  281. package/core/Footer.jsx +0 -587
  282. package/core/Icon.jsx +0 -152
  283. package/core/Loader.jsx +0 -154
  284. package/core/Logo.jsx +0 -147
  285. package/core/Meganav.jsx +0 -4151
  286. package/core/MeganavBlogPostsList/component.js.LICENSE.txt +0 -1
  287. package/core/MeganavBlogPostsList.jsx +0 -296
  288. package/core/MeganavContentCompany.jsx +0 -1058
  289. package/core/MeganavContentDevelopers.jsx +0 -334
  290. package/core/MeganavContentProducts.jsx +0 -373
  291. package/core/MeganavContentUseCases.jsx +0 -341
  292. package/core/MeganavControl.jsx +0 -199
  293. package/core/MeganavControlMobileDropdown.jsx +0 -197
  294. package/core/MeganavControlMobilePanelClose.jsx +0 -198
  295. package/core/MeganavControlMobilePanelOpen.jsx +0 -193
  296. package/core/MeganavItemsDesktop.jsx +0 -279
  297. package/core/MeganavItemsMobile.jsx +0 -689
  298. package/core/MeganavItemsSignedIn.jsx +0 -643
  299. package/core/MeganavSearch.jsx +0 -434
  300. package/core/MeganavSearchAutocomplete.jsx +0 -117
  301. package/core/MeganavSearchPanel.jsx +0 -386
  302. package/core/MeganavSearchSuggestions.jsx +0 -299
  303. package/core/Notice.jsx +0 -914
  304. package/core/Showcase/component.css +0 -31
  305. package/core/Showcase/component.js +0 -1
  306. package/core/Showcase.jsx +0 -17
  307. package/core/SignOutLink.jsx +0 -157
  308. package/core/Slider.jsx +0 -400
  309. package/core/Uptime/component.css +0 -128
  310. package/core/Uptime/component.js +0 -1
  311. package/core/Uptime.jsx +0 -895
  312. package/core/scripts.js.LICENSE.txt +0 -1
  313. package/preview/tmp/.keep +0 -0
  314. package/preview/tmp/pids/.keep +0 -0
  315. package/reset/.gitignore +0 -1
  316. package/src/core/Code/component.html.erb +0 -3
  317. package/src/core/Code/component.jsx +0 -31
  318. package/src/core/Code/component.rb +0 -12
  319. package/src/core/CompanyAutocomplete/component.css +0 -45
  320. package/src/core/CompanyAutocomplete/component.js +0 -204
  321. package/src/core/ContactFooter/component.html.erb +0 -32
  322. package/src/core/ContactFooter/component.jsx +0 -66
  323. package/src/core/ContactFooter/component.rb +0 -13
  324. package/src/core/CustomerLogos/component.html.erb +0 -9
  325. package/src/core/CustomerLogos/component.jsx +0 -28
  326. package/src/core/CustomerLogos/component.rb +0 -14
  327. package/src/core/FeatureFooter/component.css +0 -12
  328. package/src/core/FeatureFooter/component.html.erb +0 -54
  329. package/src/core/FeatureFooter/component.js +0 -7
  330. package/src/core/FeatureFooter/component.rb +0 -30
  331. package/src/core/FeaturedLink/component.html.erb +0 -15
  332. package/src/core/FeaturedLink/component.rb +0 -21
  333. package/src/core/Footer/component.html.erb +0 -256
  334. package/src/core/Footer/component.rb +0 -14
  335. package/src/core/Icon/component.html.erb +0 -3
  336. package/src/core/Icon/component.jsx +0 -19
  337. package/src/core/Icon/component.rb +0 -25
  338. package/src/core/Loader/component.html.erb +0 -18
  339. package/src/core/Loader/component.rb +0 -19
  340. package/src/core/Logo/component.html.erb +0 -3
  341. package/src/core/Logo/component.jsx +0 -20
  342. package/src/core/Logo/component.rb +0 -31
  343. package/src/core/Meganav/component.html.erb +0 -31
  344. package/src/core/Meganav/component.jsx +0 -123
  345. package/src/core/Meganav/component.rb +0 -60
  346. package/src/core/MeganavBlogPostsList/component.html.erb +0 -5
  347. package/src/core/MeganavBlogPostsList/component.rb +0 -13
  348. package/src/core/MeganavContentCompany/component.html.erb +0 -90
  349. package/src/core/MeganavContentCompany/component.rb +0 -14
  350. package/src/core/MeganavContentDevelopers/component.html.erb +0 -129
  351. package/src/core/MeganavContentDevelopers/component.rb +0 -13
  352. package/src/core/MeganavContentProducts/component.html.erb +0 -83
  353. package/src/core/MeganavContentProducts/component.jsx +0 -105
  354. package/src/core/MeganavContentProducts/component.rb +0 -14
  355. package/src/core/MeganavContentUseCases/component.html.erb +0 -135
  356. package/src/core/MeganavContentUseCases/component.jsx +0 -147
  357. package/src/core/MeganavContentUseCases/component.rb +0 -13
  358. package/src/core/MeganavControl/component.html.erb +0 -6
  359. package/src/core/MeganavControl/component.rb +0 -20
  360. package/src/core/MeganavControlMobileDropdown/component.html.erb +0 -7
  361. package/src/core/MeganavControlMobileDropdown/component.rb +0 -11
  362. package/src/core/MeganavControlMobilePanelClose/component.html.erb +0 -12
  363. package/src/core/MeganavControlMobilePanelClose/component.rb +0 -12
  364. package/src/core/MeganavControlMobilePanelOpen/component.html.erb +0 -7
  365. package/src/core/MeganavControlMobilePanelOpen/component.jsx +0 -25
  366. package/src/core/MeganavControlMobilePanelOpen/component.rb +0 -9
  367. package/src/core/MeganavItemsDesktop/component.html.erb +0 -17
  368. package/src/core/MeganavItemsDesktop/component.jsx +0 -49
  369. package/src/core/MeganavItemsDesktop/component.rb +0 -23
  370. package/src/core/MeganavItemsMobile/component.html.erb +0 -75
  371. package/src/core/MeganavItemsMobile/component.jsx +0 -137
  372. package/src/core/MeganavItemsMobile/component.rb +0 -21
  373. package/src/core/MeganavItemsSignedIn/component.html.erb +0 -53
  374. package/src/core/MeganavItemsSignedIn/component.rb +0 -33
  375. package/src/core/MeganavSearch/component.html.erb +0 -15
  376. package/src/core/MeganavSearch/component.jsx +0 -33
  377. package/src/core/MeganavSearch/component.rb +0 -13
  378. package/src/core/MeganavSearchAutocomplete/component.html.erb +0 -6
  379. package/src/core/MeganavSearchAutocomplete/component.jsx +0 -14
  380. package/src/core/MeganavSearchAutocomplete/component.rb +0 -6
  381. package/src/core/MeganavSearchPanel/component.html.erb +0 -22
  382. package/src/core/MeganavSearchPanel/component.jsx +0 -39
  383. package/src/core/MeganavSearchPanel/component.rb +0 -13
  384. package/src/core/MeganavSearchSuggestions/component.html.erb +0 -22
  385. package/src/core/MeganavSearchSuggestions/component.jsx +0 -49
  386. package/src/core/MeganavSearchSuggestions/component.rb +0 -18
  387. package/src/core/Notice/component.html.erb +0 -16
  388. package/src/core/Notice/component.jsx +0 -71
  389. package/src/core/Notice/component.rb +0 -29
  390. package/src/core/Showcase/component.css +0 -30
  391. package/src/core/Showcase/component.html.erb +0 -76
  392. package/src/core/Showcase/component.js +0 -180
  393. package/src/core/Showcase/component.jsx +0 -0
  394. package/src/core/Showcase/component.rb +0 -190
  395. package/src/core/SignOutLink/component.html.erb +0 -1
  396. package/src/core/SignOutLink/component.jsx +0 -32
  397. package/src/core/SignOutLink/component.rb +0 -17
  398. package/src/core/Slider/component.html.erb +0 -28
  399. package/src/core/Slider/component.jsx +0 -86
  400. package/src/core/Slider/component.rb +0 -38
  401. package/src/core/Uptime/component.css +0 -127
  402. package/src/core/Uptime/component.html.erb +0 -0
  403. package/src/core/Uptime/component.js +0 -1
  404. package/src/core/Uptime/component.jsx +0 -183
  405. package/src/core/Uptime/component.rb +0 -7
  406. package/src/core/core.rb +0 -81
  407. /package/{preview/log/.keep → src/core/Accordion/component.js} +0 -0
@@ -1,13 +1,26 @@
1
- import React from "react";
2
- import T from "prop-types";
1
+ import React, { CSSProperties, ReactNode } from "react";
3
2
 
4
- import Icon from "../Icon/component.jsx";
3
+ import Icon from "../Icon/component.tsx";
4
+
5
+ type FeaturedLinkProps = {
6
+ url: string;
7
+ children: ReactNode;
8
+ textSize?: string;
9
+ iconColor?: string;
10
+ flush?: boolean;
11
+ reverse?: boolean;
12
+ additionalCSS?: string;
13
+ newWindow?: boolean;
14
+ onClick?: () => void;
15
+ };
16
+
17
+ type TargetProps = { target?: string; rel?: string };
5
18
 
6
19
  // When generating links with target=_blank, we only add `noreferrer` to
7
20
  // links that don't start with `/`, so we can continue tracking referrers
8
21
  // across our own domains
9
22
  const buildTargetAndRel = (url, newWindow) => {
10
- const props = {};
23
+ const props: TargetProps = {};
11
24
 
12
25
  if (newWindow) {
13
26
  props.target = "_blank";
@@ -32,7 +45,7 @@ const FeaturedLink = ({
32
45
  newWindow = false,
33
46
  onClick = undefined,
34
47
  children,
35
- }) => {
48
+ }: FeaturedLinkProps) => {
36
49
  const targetAndRel = buildTargetAndRel(url, newWindow);
37
50
 
38
51
  return (
@@ -41,7 +54,14 @@ const FeaturedLink = ({
41
54
  className={`font-sans font-bold block text-gui-default hover:text-gui-hover focus:text-gui-focus focus:outline-gui-focus group ui-${textSize} ${
42
55
  flush ? "" : "py-8"
43
56
  } ${additionalCSS}`}
44
- style={{ "--featured-link-icon-size": `var(${textSize.replace("text", "--fs")})` }}
57
+ style={
58
+ {
59
+ "--featured-link-icon-size": `var(${textSize.replace(
60
+ "text",
61
+ "--fs"
62
+ )})`,
63
+ } as CSSProperties
64
+ }
45
65
  {...targetAndRel}
46
66
  onClick={onClick}
47
67
  >
@@ -70,16 +90,4 @@ const FeaturedLink = ({
70
90
  );
71
91
  };
72
92
 
73
- FeaturedLink.propTypes = {
74
- url: T.string,
75
- children: T.node,
76
- textSize: T.string,
77
- iconColor: T.string,
78
- flush: T.bool,
79
- reverse: T.bool,
80
- additionalCSS: T.string,
81
- newWindow: T.bool,
82
- onClick: T.func,
83
- };
84
-
85
93
  export default FeaturedLink;
@@ -0,0 +1,37 @@
1
+ import React from "react";
2
+ import Flash, { reducerFlashes } from "./component.tsx";
3
+
4
+ import {
5
+ attachStoreToWindow,
6
+ createRemoteDataStore,
7
+ } from "../remote-data-store.js";
8
+ import { reducerBlogPosts } from "../remote-blogs-posts.js";
9
+ import { reducerSessionData } from "../remote-session-data.js";
10
+
11
+ export default {
12
+ title: "Components/Flash",
13
+ component: Flash,
14
+ args: {
15
+ flashes: [
16
+ ["success", "Congratulations! You've won the Oscar"],
17
+ ["notice", "This is a notice"],
18
+ ["error", "This is an error, very bad"],
19
+ ["alert", "This is an alert"],
20
+ ["info", "Some useful information, you are welcome"],
21
+ ],
22
+ },
23
+ };
24
+
25
+ export const Default = {
26
+ render: (args) => {
27
+ const store = createRemoteDataStore({
28
+ ...reducerBlogPosts,
29
+ ...reducerSessionData,
30
+ ...reducerFlashes,
31
+ });
32
+
33
+ attachStoreToWindow(store);
34
+
35
+ return <Flash {...args} />;
36
+ },
37
+ };
@@ -1,25 +1,23 @@
1
- @layer components {
2
- .ui-flash {
3
- @apply w-full fixed;
4
- top: 5.5rem;
5
- z-index: calc(var(--stacking-context-page-meganav) - 10);
6
- transition: margin-top 200ms;
7
- }
1
+ .ui-flash {
2
+ @apply w-full fixed;
3
+ top: 5.5rem;
4
+ z-index: calc(var(--stacking-context-page-meganav) - 10);
5
+ transition: margin-top 200ms;
6
+ }
8
7
 
9
- .ui-flash-message {
10
- @apply font-sans font-light antialiased max-w-screen-xl mx-auto mt-8 opacity-0 relative;
11
- transition: opacity 200ms, transform 200ms, height 200ms 200ms,
12
- margin-top 200ms 200ms;
13
- transform: translateY(-200%) rotateX(-90deg);
14
- }
8
+ .ui-flash-message {
9
+ @apply font-sans font-light antialiased max-w-screen-xl mx-auto mt-8 opacity-0 relative;
10
+ transition: opacity 200ms, transform 200ms, height 200ms 200ms,
11
+ margin-top 200ms 200ms;
12
+ transform: translateY(-200%) rotateX(-90deg);
13
+ }
15
14
 
16
- /* dynamic content inside flash, can't add classes */
17
- .ui-flash-text a {
18
- @apply underline;
19
- }
15
+ /* dynamic content inside flash, can't add classes */
16
+ .ui-flash-text a {
17
+ @apply underline;
18
+ }
20
19
 
21
- .ui-flash-message-enter {
22
- @apply opacity-100;
23
- transform: translateY(0) rotateX(0);
24
- }
20
+ .ui-flash-message-enter {
21
+ @apply opacity-100;
22
+ transform: translateY(0) rotateX(0);
25
23
  }
@@ -1,11 +1,27 @@
1
1
  import React, { useEffect, useState, useRef } from "react";
2
2
  import DOMPurify from "dompurify";
3
- import T from "prop-types";
4
3
  import { nanoid } from "nanoid/non-secure";
5
4
 
6
- import { getRemoteDataStore } from "../remote-data-store";
7
- import ConnectStateWrapper from "../ConnectStateWrapper/component.jsx";
8
- import Icon from "../Icon/component.jsx";
5
+ import { getRemoteDataStore } from "../remote-data-store.js";
6
+ import ConnectStateWrapper from "../ConnectStateWrapper/component.tsx";
7
+ import Icon from "../Icon/component.tsx";
8
+ import "./component.css";
9
+
10
+ type FlashProps = {
11
+ id: string;
12
+ removed: boolean;
13
+ type: "error" | "success" | "notice" | "info" | "alert";
14
+ content: string;
15
+ removeFlash: (id: string) => void;
16
+ };
17
+
18
+ type FlashesProps = {
19
+ flashes: { items: FlashProps[] };
20
+ };
21
+
22
+ type BackendFlashesProps = {
23
+ flashes: string[][];
24
+ };
9
25
 
10
26
  const REDUCER_KEY = "flashes";
11
27
  const FLASH_DATA_ID = "ui-flashes";
@@ -16,7 +32,9 @@ const reducerFlashes = {
16
32
  [REDUCER_KEY]: (state = initialState, action) => {
17
33
  switch (action.type) {
18
34
  case "flash/push": {
19
- const flashes = Array.isArray(action.payload) ? action.payload : [action.payload];
35
+ const flashes = Array.isArray(action.payload)
36
+ ? action.payload
37
+ : [action.payload];
20
38
  return { items: [...state.items, ...flashes] };
21
39
  }
22
40
  default:
@@ -27,11 +45,6 @@ const reducerFlashes = {
27
45
 
28
46
  const selectFlashes = (store) => store.getState()[REDUCER_KEY];
29
47
 
30
- const FlashT = {
31
- type: T.oneOf(["error", "success", "notice", "info", "alert"]),
32
- content: T.string,
33
- };
34
-
35
48
  const FLASH_BG_COLOR = {
36
49
  error: "bg-gui-error",
37
50
  success: "bg-zingy-green",
@@ -52,7 +65,7 @@ const AUTO_HIDE = ["success", "info", "notice"];
52
65
  const AUTO_HIDE_TIME = 8000;
53
66
 
54
67
  const useAutoHide = (type, closeFlash) => {
55
- const timeoutId = useRef(null);
68
+ const timeoutId = useRef<ReturnType<typeof setTimeout> | null>(null);
56
69
 
57
70
  useEffect(() => {
58
71
  if (AUTO_HIDE.includes(type)) {
@@ -69,8 +82,8 @@ const useAutoHide = (type, closeFlash) => {
69
82
  }, []);
70
83
  };
71
84
 
72
- const Flash = ({ id, type, content, removeFlash }) => {
73
- const ref = useRef(null);
85
+ const Flash = ({ id, type, content, removeFlash }: FlashProps) => {
86
+ const ref = useRef<HTMLDivElement>(null);
74
87
  const [closed, setClosed] = useState(false);
75
88
  const [flashHeight, setFlashHeight] = useState(0);
76
89
  const [triggerEntryAnimation, setTriggerEntryAnimation] = useState(false);
@@ -83,7 +96,7 @@ const Flash = ({ id, type, content, removeFlash }) => {
83
96
  setClosed(true);
84
97
 
85
98
  setTimeout(() => {
86
- removeFlash(id);
99
+ id && removeFlash(id);
87
100
  }, 100);
88
101
  };
89
102
 
@@ -122,30 +135,62 @@ const Flash = ({ id, type, content, removeFlash }) => {
122
135
  };
123
136
 
124
137
  return (
125
- <div className={`ui-flash-message ui-grid-px ${animateEntry ? "ui-flash-message-enter" : ""}`} style={style} ref={ref} data-id="ui-flash">
126
- <div className={`${FLASH_BG_COLOR[type]} p-32 flex align-center rounded shadow-container-subtle`}>
127
- {withIcons[type] && <Icon name={withIcons[type]} color={iconColor[type]} size="1.5rem" additionalCSS="mr-16 self-baseline" />}
128
- <p className={`ui-text-p1 mr-16 ${FLASH_TEXT_COLOR[type]}`} dangerouslySetInnerHTML={{ __html: safeContent }} />
129
- <button type="button" className="p-0 ml-auto self-start focus:outline-none" onClick={closeFlash}>
130
- <Icon name="icon-gui-close" color={iconColor[type]} size="1.5rem" additionalCSS="transition-colors" />
138
+ <div
139
+ className={`ui-flash-message ui-grid-px ${
140
+ animateEntry ? "ui-flash-message-enter" : ""
141
+ }`}
142
+ style={style}
143
+ ref={ref}
144
+ data-id="ui-flash"
145
+ >
146
+ <div
147
+ className={`${FLASH_BG_COLOR[type]} p-32 flex align-center rounded shadow-container-subtle`}
148
+ >
149
+ {withIcons[type] && (
150
+ <Icon
151
+ name={withIcons[type]}
152
+ color={iconColor[type]}
153
+ size="1.5rem"
154
+ additionalCSS="mr-16 self-baseline"
155
+ />
156
+ )}
157
+ <p
158
+ className={`ui-text-p1 mr-16 ${FLASH_TEXT_COLOR[type]}`}
159
+ dangerouslySetInnerHTML={{ __html: safeContent }}
160
+ />
161
+ <button
162
+ type="button"
163
+ className="p-0 ml-auto self-start focus:outline-none"
164
+ onClick={closeFlash}
165
+ >
166
+ <Icon
167
+ name="icon-gui-close"
168
+ color={iconColor[type]}
169
+ size="1.5rem"
170
+ additionalCSS="transition-colors"
171
+ />
131
172
  </button>
132
173
  </div>
133
174
  </div>
134
175
  );
135
176
  };
136
177
 
137
- Flash.propTypes = {
138
- ...FlashT,
139
- };
140
-
141
- const Flashes = ({ flashes }) => {
142
- const [flashesWithIds, setFlashesWithIds] = useState([]);
178
+ const Flashes = ({ flashes }: FlashesProps) => {
179
+ const [flashesWithIds, setFlashesWithIds] = useState<FlashProps[]>([]);
143
180
 
144
- const removeFlash = (flashId) => setFlashesWithIds((items) => items.filter((item) => item.id !== flashId));
181
+ const removeFlash = (flashId) =>
182
+ setFlashesWithIds((items) => items.filter((item) => item.id !== flashId));
145
183
 
146
184
  useEffect(() => {
147
185
  setFlashesWithIds((state) => {
148
- return [...state, ...(flashes?.items || []).map((flash) => ({ ...flash, id: nanoid(), removed: false }))];
186
+ return [
187
+ ...state,
188
+ ...(flashes?.items).map((flash) => ({
189
+ ...flash,
190
+ id: nanoid(),
191
+ removed: false,
192
+ })),
193
+ ];
149
194
  });
150
195
  }, [flashes]);
151
196
 
@@ -154,17 +199,13 @@ const Flashes = ({ flashes }) => {
154
199
  {flashesWithIds
155
200
  .filter((item) => !item.removed)
156
201
  .map((flash) => (
157
- <Flash removeFlash={removeFlash} key={flash.id} {...flash} />
202
+ <Flash key={flash.id} {...flash} removeFlash={removeFlash} />
158
203
  ))}
159
204
  </div>
160
205
  );
161
206
  };
162
207
 
163
- Flashes.propTypes = {
164
- flashes: T.shape({ items: T.arrayOf(T.shape(FlashT)) }),
165
- };
166
-
167
- const BackendFlashes = ({ flashes }) => {
208
+ const BackendFlashes = ({ flashes }: BackendFlashesProps) => {
168
209
  useEffect(() => {
169
210
  const transformedFlashes =
170
211
  flashes.map((flash) => {
@@ -182,14 +223,12 @@ const BackendFlashes = ({ flashes }) => {
182
223
  }
183
224
  }, []);
184
225
 
185
- const WrappedFlashes = ConnectStateWrapper(Flashes, { flashes: selectFlashes });
226
+ const WrappedFlashes = ConnectStateWrapper(Flashes, {
227
+ flashes: selectFlashes,
228
+ });
186
229
 
187
230
  return <WrappedFlashes />;
188
231
  };
189
232
 
190
- BackendFlashes.propTypes = {
191
- flashes: T.arrayOf(T.arrayOf(T.string)),
192
- };
193
-
194
233
  export { reducerFlashes, FLASH_DATA_ID, Flashes };
195
234
  export default BackendFlashes;
@@ -0,0 +1,26 @@
1
+ import Footer from "./component.tsx";
2
+
3
+ import ablyStack from "../images/ably-stack.svg";
4
+ import highestPerformer from "../images/high-performer-2023.svg";
5
+ import bestSupport from "../images/best-support-2023.svg";
6
+ import fastestImplementation from "../images/fastest-implementation-2023.svg";
7
+ import highestUserAdoption from "../images/highest-user-adoption-2023.svg";
8
+
9
+ export default {
10
+ title: "Components/Footer",
11
+ component: Footer,
12
+ parameters: {
13
+ layout: "fullscreen",
14
+ },
15
+ args: {
16
+ paths: {
17
+ ablyStack,
18
+ highestPerformer,
19
+ bestSupport,
20
+ fastestImplementation,
21
+ highestUserAdoption,
22
+ },
23
+ },
24
+ };
25
+
26
+ export const Default = {};
@@ -1,33 +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
  }