@ably/ui 8.7.0-dev.d70b391 → 8.7.0-dev.d7ea27d

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 (34) hide show
  1. package/README.md +15 -4
  2. package/core/Flash.jsx +0 -3
  3. package/core/Footer/component.css +21 -1
  4. package/core/Footer.jsx +140 -49
  5. package/core/Meganav/component.json +1 -1
  6. package/core/Meganav.jsx +47 -52
  7. package/core/MeganavContentPlatform.jsx +8 -8
  8. package/core/MeganavContentUseCases.jsx +38 -40
  9. package/core/MeganavItemsDesktop.jsx +1 -1
  10. package/core/MeganavItemsMobile.jsx +1 -1
  11. package/core/Notice/component.js +1 -1
  12. package/core/Notice.jsx +0 -3
  13. package/core/images/high-performer-2022.png +0 -0
  14. package/core/images/highest-user-adoption-2022.png +0 -0
  15. package/core/images/users-love-us-2022.png +0 -0
  16. package/core/sprites.svg +2 -0
  17. package/package.json +1 -1
  18. package/src/core/Flash/component.jsx +0 -2
  19. package/src/core/Footer/component.css +21 -1
  20. package/src/core/Footer/component.html.erb +118 -56
  21. package/src/core/Footer/component.jsx +125 -50
  22. package/src/core/Meganav/component.json +1 -1
  23. package/src/core/Meganav/component.rb +2 -2
  24. package/src/core/MeganavContentDevelopers/component.html.erb +8 -8
  25. package/src/core/MeganavContentPlatform/component.html.erb +6 -6
  26. package/src/core/MeganavContentPlatform/component.jsx +6 -6
  27. package/src/core/MeganavContentUseCases/component.html.erb +34 -37
  28. package/src/core/MeganavContentUseCases/component.jsx +34 -37
  29. package/src/core/core.rb +8 -4
  30. package/src/core/icons/icon-tech-apachekafka.svg +3 -0
  31. package/src/core/images/high-performer-2022.png +0 -0
  32. package/src/core/images/highest-user-adoption-2022.png +0 -0
  33. package/src/core/images/users-love-us-2022.png +0 -0
  34. package/tailwind.config.js +1 -0
@@ -9,20 +9,19 @@ export default function Footer({ paths, urlBase }) {
9
9
 
10
10
  return (
11
11
  <footer className="bg-light-grey font-sans antialiased" data-id="footer">
12
- <div className="max-w-screen-xl mx-auto py-32 sm:py-40 lg:py-64 ui-grid-gap ui-grid-px grid grid-cols-6">
12
+ <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">
13
13
  <div className="col-span-full md:col-span-2">
14
14
  <div className="flex flex-row p-menu-row-snug">
15
15
  <img className="mr-24 -mt-16" src={paths.ablyStack} alt="Ably homepage" />
16
16
  <h2 className="text-overline2 col-span-full font-medium uppercase tracking-widen-0.1">The Ably Platform</h2>
17
17
  </div>
18
-
19
- <div className="grid grid-cols-4">
20
- <p className="text-p3 py-16 font-medium p-menu-row-snug col-span-3">
18
+ <div className="md:col-span-4 md:w-3/4 xs:w-3/5 w-full">
19
+ <p className="text-p3 py-16 font-medium p-menu-row-snug">
21
20
  Easily power any realtime experience in your application via a simple API that handles everything realtime.
22
21
  </p>
23
22
  </div>
24
23
 
25
- <ul className="grid gap-x-8 sm:gap-x-16 md:gap-x-24 xl:gap-x-32 sm:grid-cols-2 md:grid-cols-1">
24
+ <ul className="grid grid-cols-1">
26
25
  <li className="p-menu-row-snug">
27
26
  <a href={absUrl("/pub-sub-messaging")} className="ui-footer-menu-row-link">
28
27
  Pub/sub messaging
@@ -51,7 +50,7 @@ export default function Footer({ paths, urlBase }) {
51
50
  </ul>
52
51
  </div>
53
52
 
54
- <div className="col-span-full sm:col-span-3 md:col-span-1">
53
+ <div className="col-span-full xs:col-span-3 md:col-span-1">
55
54
  <h2 className="ui-footer-col-title">Ably is for</h2>
56
55
  <ul>
57
56
  <li className="p-menu-row-snug">
@@ -112,7 +111,7 @@ export default function Footer({ paths, urlBase }) {
112
111
  </ul>
113
112
  </div>
114
113
 
115
- <div className="col-span-full sm:col-span-3 md:col-span-1">
114
+ <div className="col-span-full xs:col-span-3 md:col-span-1">
116
115
  <h2 className="ui-footer-col-title">Developers</h2>
117
116
  <ul>
118
117
  <li className="p-menu-row-snug">
@@ -145,16 +144,23 @@ export default function Footer({ paths, urlBase }) {
145
144
  SDKs
146
145
  </a>
147
146
  </li>
148
- <li className="p-menu-row-snug flex items-center">
147
+ <li className="p-menu-row-snug flex items-center -mt-4">
149
148
  <a className="pr-8 ui-footer-menu-row-link" href="https://status.ably.com/">
150
149
  System status
151
150
  </a>
152
- <iframe className="w-24 h-24 mt-4" src="https://status.ably.com/embed/icon" allowtransparency="true" frameBorder="0" scrolling="no"></iframe>
151
+ <iframe
152
+ className="w-20 h-20 mb-2"
153
+ src="https://status.ably.com/embed/icon"
154
+ allowtransparency="true"
155
+ frameBorder="0"
156
+ scrolling="no"
157
+ title="System Status"
158
+ ></iframe>
153
159
  </li>
154
160
  </ul>
155
161
  </div>
156
162
 
157
- <div className="col-span-full sm:col-span-3 md:col-span-1">
163
+ <div className="col-span-full xs:col-span-3 md:col-span-1">
158
164
  <h2 className="ui-footer-col-title">WHY ABLY</h2>
159
165
  <ul>
160
166
  <li className="p-menu-row-snug">
@@ -190,7 +196,7 @@ export default function Footer({ paths, urlBase }) {
190
196
  </ul>
191
197
  </div>
192
198
 
193
- <div className="col-span-full sm:col-span-3 md:col-span-1">
199
+ <div className="col-span-full xs:col-span-3 md:col-span-1">
194
200
  <h2 className="ui-footer-col-title">ABOUT</h2>
195
201
  <ul>
196
202
  <li className="p-menu-row-snug">
@@ -231,14 +237,86 @@ export default function Footer({ paths, urlBase }) {
231
237
  </ul>
232
238
  </div>
233
239
  </div>
234
-
235
240
  <div className="max-w-screen-xl ui-grid-px mx-auto">
236
- <hr className="border-t border-mid-grey" />
241
+ <hr className="border-t border-mid-grey my-0" />
237
242
  </div>
243
+ {/* Twitter + Glassdoor SM & above + Glassdoor XS + Badges*/}
244
+ <div className="max-w-screen-xl mx-auto py-16 grid ui-grid-gap ui-grid-px sm:grid-cols-2">
245
+ <div className="md:flex md:items-center">
246
+ <div className="flex flex-col md:flex-row flex-auto ml-8 sm:col-span-1 md:col-span-2">
247
+ <div className="">
248
+ <div className="flex pb-24">
249
+ <a className="h-24 pr-24 text-cool-black hover:text-icon-twitter" href="https://twitter.com/ablyrealtime" title="Ably on Twitter">
250
+ <Icon name="twitter" size="1.5rem" />
251
+ </a>
252
+ <a
253
+ className="h-24 pr-24 text-cool-black hover:text-icon-linkedin"
254
+ href="https://www.linkedin.com/company/ably-realtime"
255
+ title="Ably on LinkedIn"
256
+ >
257
+ <Icon name="linkedin" size="1.5rem" />
258
+ </a>
259
+ <a className="h-24 pr-24 text-cool-black hover:text-icon-github" href="https://github.com/ably/" title="Ably on Github">
260
+ <Icon name="github" size="1.5rem" />
261
+ </a>
262
+ <a className="h-24 pr-24 text-cool-black hover:text-icon-discord" href="https://discord.gg/jwBPhEZ9g5" title="Ably on Discord">
263
+ <Icon name="discord" size="1.5rem" />
264
+ </a>
265
+ </div>
266
+ </div>
267
+ {/* GLASSDOOR on SM and Above */}
268
+ <div className="xs:hidden sm:block ui-footer-glassdoor">
269
+ <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">
270
+ <a
271
+ href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm"
272
+ className="h-24 text-cool-black hover:text-icon-glassdoor"
273
+ title="Ably reviews on glassdoor"
274
+ >
275
+ <Icon name="glassdoor" size="1.5rem" />
276
+ </a>
277
+ <div className="pl-16 text-menu3 font-light">
278
+ <strong className="block font-medium">We&apos;re hiring!</strong>
279
+ <a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" className="ui-footer-link">
280
+ Learn more at Glassdoor
281
+ </a>
282
+ </div>
283
+ </div>
284
+ </div>
285
+ </div>
286
+ {/* GlassDoor on XS ONLY */}
287
+ <div className="xs:block sm:hidden">
288
+ <div className="border-t border-mid-grey w-full"></div>
289
+ <div className="flex py-24">
290
+ <a
291
+ className="h-24 pr-16 text-cool-black hover:text-icon-glassdoor"
292
+ href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm"
293
+ title="Ably reviews on glassdoor"
294
+ >
295
+ <Icon name="glassdoor" size="1.5rem" />
296
+ </a>
297
+ <div className="text-menu3 font-light">
298
+ <strong className="block font-medium">We&apos;re hiring!</strong>
299
+ <a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" className="ui-footer-link">
300
+ Learn more at Glassdoor
301
+ </a>
302
+ </div>
303
+ </div>
304
+ </div>
305
+ </div>
238
306
 
239
- <div className="max-w-screen-xl mx-auto py-24 md:py-40 lg:py-32 grid ui-grid-gap ui-grid-px grid-cols-2">
240
- <div className="flex flex-col flex-auto pb-40 ml-8 col-span-full md:col-span-1">
241
- <div className="inline-flex">
307
+ <div className="col-span-full sm:col-span-1 inline-flex sm:ml-auto sm:items-center">
308
+ <img className="mr-24 h-80" src={paths.highestUserAdoption} alt="Highest User Adoption 2022" />
309
+ <img className="mr-24 h-80" src={paths.usersLoveUs} alt="Users Love Us" />
310
+ <img className="mr-24 h-80" src={paths.highestPerformer} alt="High Performer 2022" />
311
+ </div>
312
+ </div>
313
+
314
+ <div className="max-w-screen-xl ui-grid-px mx-auto">
315
+ <hr className="border-t border-mid-grey my-0" />
316
+ </div>
317
+ <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">
318
+ <div className="flex ml-8 col-span-full sm:col-span-1 md:pb-16 items-center ui-footer-bottom-links">
319
+ <div className="flex">
242
320
  <a href={absUrl("/privacy")} className="pr-24 ui-footer-link">
243
321
  Cookies
244
322
  </a>
@@ -252,40 +330,36 @@ export default function Footer({ paths, urlBase }) {
252
330
  Privacy
253
331
  </a>
254
332
  </div>
255
-
256
- <div className="pt-32 flex items-center">
257
- <a className="h-24 pr-24 text-cool-black hover:text-icon-twitter" href="https://twitter.com/ablyrealtime">
258
- <Icon name="twitter" size="1.5rem" />
259
- </a>
260
- <a className="h-24 pr-24 text-cool-black hover:text-icon-linkedin" href="https://www.linkedin.com/company/ably-realtime">
261
- <Icon name="linkedin" size="1.5rem" />
262
- </a>
263
- <a className="h-24 pr-24 text-cool-black hover:text-icon-github" href="https://github.com/ably/">
264
- <Icon name="github" size="1.5rem" />
265
- </a>
266
- <a className="h-24 pr-24 text-cool-black hover:text-icon-discord" href="https://discord.gg/jwBPhEZ9g5">
267
- <Icon name="discord" size="1.5rem" />
268
- </a>
269
- <div className="border-l border-mid-grey h-40"></div>
270
- <a
271
- className="flex flex-row pl-24 text-cool-black hover:text-icon-glassdoor"
272
- href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm"
273
- >
274
- <Icon name="glassdoor" size="1.5rem" />
275
- </a>
276
- <div className="pl-16 text-menu3 font-light">
277
- <strong className="block font-medium">We&apos;re hiring!</strong>
278
- <a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" className="ui-footer-link">
279
- Learn more
280
- </a>
281
- &nbsp;at Glassdoor
333
+ </div>
334
+ <div className="xs:grid xs:grid-cols-2 sm:grid-cols-4 xs:pl-16 sm:pl-8 md:justify-items-end">
335
+ <div className="flex mr-24">
336
+ <Icon name="icon-gui-tick" color="text-active-orange" size="1.5rem" additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon" />
337
+ <div>
338
+ <p className="ui-footer-compliance-text font-medium whitespace-nowrap">SOC 2 Type 2</p>
339
+ <p className="ui-footer-compliance-text font-light mb-24">Certified</p>
340
+ </div>
341
+ </div>
342
+ <div className="flex mr-24 md:col-start-2">
343
+ <Icon name="icon-gui-tick" color="text-active-orange" size="1.5rem" additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon" />
344
+ <div>
345
+ <p className="ui-footer-compliance-text font-medium whitespace-nowrap">HIPAA</p>
346
+ <p className="ui-footer-compliance-text font-light mb-24">Compliant</p>
347
+ </div>
348
+ </div>
349
+ <div className="flex mr-24 md:col-start-3">
350
+ <Icon name="icon-gui-tick" color="text-active-orange" size="1.5rem" additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon" />
351
+ <div>
352
+ <p className="ui-footer-compliance-text font-medium whitespace-nowrap">EU GDPR</p>
353
+ <p className="ui-footer-compliance-text font-light mb-24">Certified</p>
354
+ </div>
355
+ </div>
356
+ <div className="flex mr-24 md:col-start-4">
357
+ <Icon name="icon-gui-tick" color="text-active-orange" size="1.5rem" additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon" />
358
+ <div>
359
+ <p className="ui-footer-compliance-text font-medium whitespace-nowrap">256-bit AES</p>
360
+ <p className="ui-footer-compliance-text font-light mb-24">Encryption</p>
282
361
  </div>
283
362
  </div>
284
- </div>
285
-
286
- <div className="md:text-right col-span-full md:col-span-1 ml-8 inline-flex md:ml-auto">
287
- <img className="mr-24 w-96 h-96" src={paths.rocketList} alt="Rocket List 2021" />
288
- <img className="w-96 h-96" src={paths.flexibleCompanies} alt="Flexible Companies 2021" />
289
363
  </div>
290
364
  </div>
291
365
  </footer>
@@ -295,8 +369,9 @@ export default function Footer({ paths, urlBase }) {
295
369
  Footer.propTypes = {
296
370
  paths: T.shape({
297
371
  ablyStack: T.string,
298
- rocketList: T.string,
299
- flexibleCompanies: T.string,
372
+ highestPerformer: T.string,
373
+ highestUserAdoption: T.string,
374
+ usersLoveUs: T.string,
300
375
  }),
301
376
  urlBase: T.string,
302
377
  };
@@ -30,7 +30,7 @@
30
30
  },
31
31
  "panels": [
32
32
  { "label": "Platform", "shortLabel": "Platform", "id": "platform-panel", "component": "MeganavContentPlatform" },
33
- { "label": "Use Cases & Solutions", "shortLabel": "Use Cases", "id": "use-cases-panel", "component": "MeganavContentUseCases" },
33
+ { "label": "Solutions", "shortLabel": "Solutions", "id": "use-cases-panel", "component": "MeganavContentUseCases" },
34
34
  { "label": "Company", "shortLabel": "Company", "id": "company-panel", "component": "MeganavContentCompany" },
35
35
  { "label": "Developers", "shortLabel": "Developers", "id": "developers-panel", "component": "MeganavContentDevelopers" }
36
36
  ]
@@ -36,8 +36,8 @@ module AblyUi
36
36
  class: 'AblyUi::Core::MeganavContentPlatform'
37
37
  },
38
38
  {
39
- label: 'Use Cases & Solutions',
40
- short_label: 'Use Cases',
39
+ label: 'Solutions',
40
+ short_label: 'Solutions',
41
41
  id: 'use-cases-panel',
42
42
  class: 'AblyUi::Core::MeganavContentUseCases'
43
43
  },
@@ -16,20 +16,20 @@
16
16
  <% end %>
17
17
  </li>
18
18
  <li>
19
- <%= link_to abs_url("/integrations"), class: "ui-meganav-media-with-image group" do %>
20
- <%= render(AblyUi::Core::Icon.new(name: "icon-display-integrations-col", size: "2.5rem")) %>
19
+ <%= link_to abs_url("/docs/quick-start-guide"), class: "ui-meganav-media-with-image group" do %>
20
+ <%= render(AblyUi::Core::Icon.new(name: "icon-display-quickstart-guides-col", size: "2.5rem")) %>
21
21
  <div class="flex flex-col justify-center">
22
- <p class="ui-meganav-media-heading">Integrations</p>
23
- <p class="ui-meganav-media-copy">Find out more about Ably integrations. </p>
22
+ <p class="ui-meganav-media-heading">Quickstart guides</p>
23
+ <p class="ui-meganav-media-copy">Documentation to help you get started quickly.</p>
24
24
  </div>
25
25
  <% end %>
26
26
  </li>
27
27
  <li>
28
- <%= link_to abs_url("/docs/quick-start-guide"), class: "ui-meganav-media-with-image group" do %>
29
- <%= render(AblyUi::Core::Icon.new(name: "icon-display-quickstart-guides-col", size: "2.5rem")) %>
28
+ <%= link_to abs_url("/integrations"), class: "ui-meganav-media-with-image group" do %>
29
+ <%= render(AblyUi::Core::Icon.new(name: "icon-display-integrations-col", size: "2.5rem")) %>
30
30
  <div class="flex flex-col justify-center">
31
- <p class="ui-meganav-media-heading">Quickstart guides</p>
32
- <p class="ui-meganav-media-copy">Documentation to help you get started quickly.</p>
31
+ <p class="ui-meganav-media-heading">Integrations</p>
32
+ <p class="ui-meganav-media-copy">Find out more about Ably integrations. </p>
33
33
  </div>
34
34
  <% end %>
35
35
  </li>
@@ -36,12 +36,6 @@
36
36
  <p class="ui-meganav-media-copy">Display a list of user actions in realtime.</p>
37
37
  <% end %>
38
38
  </li>
39
- <li>
40
- <%= link_to abs_url("/examples/live-charts"), class: "ui-meganav-media group" do %>
41
- <p class="ui-meganav-media-heading">Live Charts</p>
42
- <p class="ui-meganav-media-copy">Visualise live metrics and data in a chart.</p>
43
- <% end %>
44
- </li>
45
39
  <li>
46
40
  <%= link_to abs_url("/examples/live-cursors"), class: "ui-meganav-media group" do %>
47
41
  <p class="ui-meganav-media-heading">Live Cursors</p>
@@ -54,6 +48,12 @@
54
48
  <p class="ui-meganav-media-copy">See when a user is typing a message.</p>
55
49
  <% end %>
56
50
  </li>
51
+ <li>
52
+ <%= link_to abs_url("/examples/chat-admin-privileges"), class: "ui-meganav-media group" do %>
53
+ <p class="ui-meganav-media-heading">Chat Admin Privileges</p>
54
+ <p class="ui-meganav-media-copy">Control who can take admin actions in a digital space.</p>
55
+ <% end %>
56
+ </li>
57
57
  </ul>
58
58
 
59
59
  <%= render(AblyUi::Core::FeaturedLink.new(url: abs_url("/examples"), text_size: 'text-p3')) do %>Explore all live examples<% end %>
@@ -45,12 +45,6 @@ const MeganavContentPlatform = ({ paths, absUrl }) => (
45
45
  <p className="ui-meganav-media-copy">Display a list of user actions in realtime.</p>
46
46
  </a>
47
47
  </li>
48
- <li>
49
- <a href={absUrl("/examples/live-charts")} className="ui-meganav-media group">
50
- <p className="ui-meganav-media-heading">Live Charts</p>
51
- <p className="ui-meganav-media-copy">Visualise live metrics and data in a chart.</p>
52
- </a>
53
- </li>
54
48
  <li>
55
49
  <a href={absUrl("/examples/live-cursors")} className="ui-meganav-media group">
56
50
  <p className="ui-meganav-media-heading">Live Cursors</p>
@@ -63,6 +57,12 @@ const MeganavContentPlatform = ({ paths, absUrl }) => (
63
57
  <p className="ui-meganav-media-copy">See when a user is typing a message.</p>
64
58
  </a>
65
59
  </li>
60
+ <li>
61
+ <a href={absUrl("/examples/chat-admin-privileges")} className="ui-meganav-media group">
62
+ <p className="ui-meganav-media-heading">Chat Admin Privileges</p>
63
+ <p className="ui-meganav-media-copy">Control who can take admin actions in a digital space.</p>
64
+ </a>
65
+ </li>
66
66
  </ul>
67
67
  <FeaturedLink url={absUrl("/examples")} textSize="text-p3">
68
68
  Explore all live examples
@@ -3,42 +3,51 @@
3
3
  <section class="grid grid-cols-12 ui-grid-gap-x w-full">
4
4
  <div class="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">
5
5
  <h3 class="ui-meganav-overline" id="meganav-use-cases-panel-use-cases">
6
- Use cases
6
+ Solutions
7
7
  </h3>
8
8
  <ul aria-labelledby="meganav-use-cases-panel-industry-use-cases">
9
9
  <li>
10
- <%= link_to abs_url("/solutions/live-updates-results-metrics"), class: "ui-meganav-media-with-image group" do %>
11
- <%= render(AblyUi::Core::Icon.new(name: "icon-live-updates-results-metrics-col", size: "2.5rem")) %>
10
+ <%= link_to abs_url("/solutions/chat"), class: "ui-meganav-media-with-image group" do %>
11
+ <%= render(AblyUi::Core::Icon.new(name: "icon-display-chat-stack-col", size: "2.5rem")) %>
12
12
  <div class="flex flex-col justify-center">
13
- <p class="ui-meganav-media-heading">Live updates, results & metrics</p>
14
- <p class="ui-meganav-media-copy">Deliver live updates to keep users informed.</p>
13
+ <p class="ui-meganav-media-heading">Chat</p>
14
+ <p class="ui-meganav-media-copy">Deliver highly reliable chat experiences at scale. </p>
15
15
  </div>
16
16
  <% end %>
17
17
  </li>
18
18
  <li>
19
- <%= link_to abs_url("/solutions/chat"), class: "ui-meganav-media-with-image group" do %>
20
- <%= render(AblyUi::Core::Icon.new(name: "icon-display-chat-stack-col", size: "2.5rem")) %>
19
+ <%= link_to abs_url("/solutions/multiplayer-collaboration"), class: "ui-meganav-media-with-image group" do %>
20
+ <%= render(AblyUi::Core::Icon.new(name: "icon-multi-user-spaces-col", size: "2.5rem")) %>
21
21
  <div class="flex flex-col justify-center">
22
- <p class="ui-meganav-media-heading">Chat</p>
23
- <p class="ui-meganav-media-copy">Deliver highly reliable chat experiences at scale. </p>
22
+ <p class="ui-meganav-media-heading">Multiplayer Collaboration</p>
23
+ <p class="ui-meganav-media-copy">Bring collaborative multiplayer experiences to your users.</p>
24
24
  </div>
25
25
  <% end %>
26
26
  </li>
27
27
  <li>
28
- <%= link_to abs_url("/solutions/virtual-events"), class: "ui-meganav-media-with-image group" do %>
29
- <%= render(AblyUi::Core::Icon.new(name: "icon-display-virtual-events-col", size: "2.5rem")) %>
28
+ <%= link_to abs_url("/solutions/data-broadcast"), class: "ui-meganav-media-with-image group" do %>
29
+ <%= render(AblyUi::Core::Icon.new(name: "icon-live-updates-results-metrics-col", size: "2.5rem")) %>
30
30
  <div class="flex flex-col justify-center">
31
- <p class="ui-meganav-media-heading">Virtual Events</p>
32
- <p class="ui-meganav-media-copy">Power engaging virtual events with realtime features.</p>
31
+ <p class="ui-meganav-media-heading">Data Broadcast</p>
32
+ <p class="ui-meganav-media-copy">Broadcast realtime event data to millions of devices around the globe.</p>
33
33
  </div>
34
34
  <% end %>
35
35
  </li>
36
36
  <li>
37
- <%= link_to abs_url("/solutions/multi-user-virtual-spaces"), class: "ui-meganav-media-with-image group" do %>
38
- <%= render(AblyUi::Core::Icon.new(name: "icon-multi-user-spaces-col", size: "2.5rem")) %>
37
+ <%= link_to abs_url("/solutions/data-synchronization"), class: "ui-meganav-media-with-image group" do %>
38
+ <%= render(AblyUi::Core::Icon.new(name: "icon-display-virtual-events", size: "2.5rem")) %>
39
39
  <div class="flex flex-col justify-center">
40
- <p class="ui-meganav-media-heading">Multi-user virtual spaces</p>
41
- <p class="ui-meganav-media-copy">Build live and interactive multi-user applications.</p>
40
+ <p class="ui-meganav-media-heading">Data Synchronization</p>
41
+ <p class="ui-meganav-media-copy">Keep your frontend and backend in realtime sync, at global scale.</p>
42
+ </div>
43
+ <% end %>
44
+ </li>
45
+ <li>
46
+ <%= link_to abs_url("/solutions/extend-kafka-to-the-edge"), class: "ui-meganav-media-with-image group" do %>
47
+ <%= render(AblyUi::Core::Icon.new(name: "icon-tech-apachekafka", size: "2.5rem")) %>
48
+ <div class="flex flex-col justify-center">
49
+ <p class="ui-meganav-media-heading">Extend Kafka to the edge</p>
50
+ <p class="ui-meganav-media-copy">Reliably expand Kafka’s event streaming beyond your private network.</p>
42
51
  </div>
43
52
  <% end %>
44
53
  </li>
@@ -80,6 +89,14 @@
80
89
  <p class="ui-meganav-media-copy">Provide trustworthy, HIPAA-compliant realtime apps.</p>
81
90
  <% end %>
82
91
  </li>
92
+ </ul>
93
+ </div>
94
+
95
+ <div class="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">
96
+ <h3 class="ui-meganav-overline" id="meganav-use-cases-panel-solutions">
97
+ &nbsp;
98
+ </h3>
99
+ <ul aria-labelledby="meganav-use-cases-panel-solutions">
83
100
  <li>
84
101
  <%= link_to abs_url("/solutions/ecommerce-and-retail"), class: "ui-meganav-media group" do %>
85
102
  <p class="ui-meganav-media-heading">eCommerce & Retail</p>
@@ -106,26 +123,6 @@
106
123
  </li>
107
124
  </ul>
108
125
  </div>
109
-
110
- <div class="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">
111
- <h3 class="ui-meganav-overline" id="meganav-use-cases-panel-solutions">
112
- Solutions
113
- </h3>
114
- <ul aria-labelledby="meganav-use-cases-panel-solutions">
115
- <li>
116
- <%= link_to abs_url("/solutions/extend-kafka-to-the-edge"), class: "ui-meganav-media group" do %>
117
- <p class="ui-meganav-media-heading">Extend Kafka to the edge</p>
118
- <p class="ui-meganav-media-copy">Reliably expand Kafka’s event streaming beyond your private network.</p>
119
- <% end %>
120
- </li>
121
- <li>
122
- <%= link_to abs_url("/solutions/asset-tracking"), class: "ui-meganav-media group" do %>
123
- <p class="ui-meganav-media-heading">Asset Tracking</p>
124
- <p class="ui-meganav-media-copy">Track assets in realtime with a solution optimised for last mile logistics.</p>
125
- <% end %>
126
- </li>
127
- </ul>
128
- </div>
129
126
  </section>
130
127
  <div class="ui-meganav-content-spacer"></div>
131
128
  </div>
@@ -9,42 +9,51 @@ const MeganavContentUseCases = ({ absUrl }) => (
9
9
  <section className="grid grid-cols-12 ui-grid-gap-x w-full">
10
10
  <div className="col-span-full md:col-span-4 py-24 lg:py-32 px-24 sm:px-32 md:pl-0 md:pr-24 bg-extra-light-grey">
11
11
  <h3 className="ui-meganav-overline" id="meganav-use-cases-panel-use-cases">
12
- Use cases
12
+ Solutions
13
13
  </h3>
14
14
  <ul aria-labelledby="meganav-use-cases-panel-industry-use-cases">
15
15
  <li>
16
- <a href={absUrl("/solutions/live-updates-results-metrics")} className="ui-meganav-media-with-image group">
17
- <Icon name="icon-live-updates-results-metrics-col" size="2.5rem" />
16
+ <a href={absUrl("/solutions/chat")} className="ui-meganav-media-with-image group">
17
+ <Icon name="icon-display-chat-stack-col" size="2.5rem" />
18
18
  <div className="flex flex-col justify-center">
19
- <p className="ui-meganav-media-heading">Live updates, results & metrics</p>
20
- <p className="ui-meganav-media-copy">Deliver live updates to keep users informed.</p>
19
+ <p className="ui-meganav-media-heading">Chat</p>
20
+ <p className="ui-meganav-media-copy">Deliver highly reliable chat experiences at scale. </p>
21
21
  </div>
22
22
  </a>
23
23
  </li>
24
24
  <li>
25
- <a href={absUrl("/solutions/chat")} className="ui-meganav-media-with-image group">
26
- <Icon name="icon-display-chat-stack-col" size="2.5rem" />
25
+ <a href={absUrl("/solutions/multiplayer-collaboration")} className="ui-meganav-media-with-image group">
26
+ <Icon name="icon-multi-user-spaces-col" size="2.5rem" />
27
27
  <div className="flex flex-col justify-center">
28
- <p className="ui-meganav-media-heading">Chat</p>
29
- <p className="ui-meganav-media-copy">Deliver highly reliable chat experiences at scale. </p>
28
+ <p className="ui-meganav-media-heading">Multiplayer Collaboration</p>
29
+ <p className="ui-meganav-media-copy">Bring collaborative multiplayer experiences to your users.</p>
30
30
  </div>
31
31
  </a>
32
32
  </li>
33
33
  <li>
34
- <a href={absUrl("/solutions/virtual-events")} className="ui-meganav-media-with-image group">
35
- <Icon name="icon-display-virtual-events-col" size="2.5rem" />
34
+ <a href={absUrl("/solutions/data-broadcast")} className="ui-meganav-media-with-image group">
35
+ <Icon name="icon-live-updates-results-metrics-col" size="2.5rem" />
36
36
  <div className="flex flex-col justify-center">
37
- <p className="ui-meganav-media-heading">Virtual Events</p>
38
- <p className="ui-meganav-media-copy">Power engaging virtual events with realtime features.</p>
37
+ <p className="ui-meganav-media-heading">Data Broadcast</p>
38
+ <p className="ui-meganav-media-copy">Broadcast realtime event data to millions of devices around the globe.</p>
39
39
  </div>
40
40
  </a>
41
41
  </li>
42
42
  <li>
43
- <a href={absUrl("/solutions/multi-user-virtual-spaces")} className="ui-meganav-media-with-image group">
44
- <Icon name="icon-multi-user-spaces-col" size="2.5rem" />
43
+ <a href={absUrl("/solutions/data-synchronization")} className="ui-meganav-media-with-image group">
44
+ <Icon name="icon-display-virtual-events" size="2.5rem" />
45
+ <div className="flex flex-col justify-center">
46
+ <p className="ui-meganav-media-heading">Data Synchronization</p>
47
+ <p className="ui-meganav-media-copy">Keep your frontend and backend in realtime sync, at global scale.</p>
48
+ </div>
49
+ </a>
50
+ </li>
51
+ <li>
52
+ <a href={absUrl("/solutions/extend-kafka-to-the-edge")} className="ui-meganav-media-with-image group">
53
+ <Icon name="icon-tech-apachekafka" size="2.5rem" />
45
54
  <div className="flex flex-col justify-center">
46
- <p className="ui-meganav-media-heading">Multi-user virtual spaces</p>
47
- <p className="ui-meganav-media-copy">Build live and interactive multi-user applications.</p>
55
+ <p className="ui-meganav-media-heading">Extend Kafka to the edge</p>
56
+ <p className="ui-meganav-media-copy">Reliably expand Kafka’s event streaming beyond your private network.</p>
48
57
  </div>
49
58
  </a>
50
59
  </li>
@@ -86,6 +95,14 @@ const MeganavContentUseCases = ({ absUrl }) => (
86
95
  <p className="ui-meganav-media-copy">Provide trustworthy, HIPAA-compliant realtime apps.</p>
87
96
  </a>
88
97
  </li>
98
+ </ul>
99
+ </div>
100
+
101
+ <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">
102
+ <h3 className="ui-meganav-overline" id="meganav-use-cases-panel-solutions">
103
+ &nbsp;
104
+ </h3>
105
+ <ul aria-labelledby="meganav-use-cases-panel-solutions">
89
106
  <li>
90
107
  <a href={absUrl("/solutions/ecommerce-and-retail")} className="ui-meganav-media group">
91
108
  <p className="ui-meganav-media-heading">eCommerce & Retail</p>
@@ -112,26 +129,6 @@ const MeganavContentUseCases = ({ absUrl }) => (
112
129
  </li>
113
130
  </ul>
114
131
  </div>
115
-
116
- <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">
117
- <h3 className="ui-meganav-overline" id="meganav-use-cases-panel-solutions">
118
- Solutions
119
- </h3>
120
- <ul aria-labelledby="meganav-use-cases-panel-solutions">
121
- <li>
122
- <a href={absUrl("/solutions/extend-kafka-to-the-edge")} className="ui-meganav-media group">
123
- <p className="ui-meganav-media-heading">Extend Kafka to the edge</p>
124
- <p className="ui-meganav-media-copy">Reliably expand Kafka’s event streaming beyond your private network.</p>
125
- </a>
126
- </li>
127
- <li>
128
- <a href={absUrl("/solutions/asset-tracking")} className="ui-meganav-media group">
129
- <p className="ui-meganav-media-heading">Asset Tracking</p>
130
- <p className="ui-meganav-media-copy">Track assets in realtime with a solution optimised for last mile logistics.</p>
131
- </a>
132
- </li>
133
- </ul>
134
- </div>
135
132
  </section>
136
133
  <div className="ui-meganav-content-spacer"></div>
137
134
  </div>
package/src/core/core.rb CHANGED
@@ -42,12 +42,16 @@ module AblyUi
42
42
  asset_path 'ably_ui/core/images/icon-tech-aws.svg'
43
43
  end
44
44
 
45
- def rocket_list
46
- asset_path 'ably_ui/core/images/rocket-list-2021.png'
45
+ def highest_performer
46
+ asset_path 'ably_ui/core/images/high-performer-2022.png'
47
47
  end
48
48
 
49
- def flexible_companies
50
- asset_path 'ably_ui/core/images/flexible-companies.png'
49
+ def highest_user_adoption
50
+ asset_path 'ably_ui/core/images/highest-user-adoption-2022.png'
51
+ end
52
+
53
+ def users_love_us
54
+ asset_path 'ably_ui/core/images/users-love-us-2022.png'
51
55
  end
52
56
  end
53
57
 
@@ -0,0 +1,3 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M32.3062 26.586C30.437 26.586 28.7612 27.4141 27.6137 28.7179L24.6732 26.6362C24.9853 25.7768 25.1645 24.854 25.1645 23.8881C25.1645 22.9389 24.9915 22.0316 24.6897 21.1849L27.6236 19.1252C28.7711 20.4225 30.4424 21.2461 32.3062 21.2461C35.7562 21.2461 38.5635 18.4393 38.5635 14.9888C38.5635 11.5382 35.7562 8.73143 32.3062 8.73143C28.8562 8.73143 26.0489 11.5382 26.0489 14.9888C26.0489 15.6064 26.1422 16.2019 26.3097 16.7659L23.3737 18.8266C22.1473 17.3051 20.3815 16.2428 18.3696 15.9185V12.3801C21.204 11.7848 23.3396 9.26646 23.3396 6.25732C23.3396 2.80681 20.5323 0 17.0823 0C13.6322 0 10.825 2.80681 10.825 6.25732C10.825 9.22616 12.9053 11.7134 15.683 12.3512V15.9356C11.8921 16.601 9 19.9094 9 23.8881C9 27.8862 11.9208 31.2067 15.739 31.8495V35.6343C12.9329 36.2511 10.825 38.7536 10.825 41.7427C10.825 45.1932 13.6322 48 17.0823 48C20.5323 48 23.3396 45.1932 23.3396 41.7427C23.3396 38.7536 21.2317 36.2511 18.4256 35.6343V31.8494C20.3979 31.5172 22.1313 30.4759 23.3451 28.9882L26.3053 31.0834C26.1409 31.6423 26.0489 32.232 26.0489 32.8433C26.0489 36.2938 28.8562 39.1007 32.3062 39.1007C35.7562 39.1007 38.5635 36.2938 38.5635 32.8433C38.5635 29.3928 35.7562 26.586 32.3062 26.586ZM32.3062 11.9549C33.9792 11.9549 35.3399 13.3162 35.3399 14.9888C35.3399 16.6613 33.9792 18.0225 32.3062 18.0225C30.6332 18.0225 29.2725 16.6613 29.2725 14.9888C29.2725 13.3162 30.6332 11.9549 32.3062 11.9549ZM14.0484 6.25732C14.0484 4.58479 15.4093 3.22359 17.0823 3.22359C18.7553 3.22359 20.116 4.58479 20.116 6.25732C20.116 7.92986 18.7553 9.29106 17.0823 9.29106C15.4093 9.29106 14.0484 7.92986 14.0484 6.25732ZM20.116 41.7427C20.116 43.4152 18.7553 44.7764 17.0823 44.7764C15.4093 44.7764 14.0484 43.4152 14.0484 41.7427C14.0484 40.0701 15.4093 38.7089 17.0823 38.7089C18.7553 38.7089 20.116 40.0701 20.116 41.7427ZM17.082 28.1192C14.7487 28.1192 12.8505 26.2213 12.8505 23.8881C12.8505 21.5548 14.7487 19.6566 17.082 19.6566C19.4152 19.6566 21.3134 21.5548 21.3134 23.8881C21.3134 26.2213 19.4152 28.1192 17.082 28.1192ZM32.3062 35.8772C30.6332 35.8772 29.2725 34.5159 29.2725 32.8433C29.2725 31.1708 30.6332 29.8096 32.3062 29.8096C33.9792 29.8096 35.3399 31.1708 35.3399 32.8433C35.3399 34.5159 33.9792 35.8772 32.3062 35.8772Z" fill="#03020D"/>
3
+ </svg>