@ably/ui 8.7.0-dev.2b71529 → 8.7.0-dev.33117ed

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 (59) hide show
  1. package/core/Code/component.css +0 -2
  2. package/core/FeatureFooter.jsx +17 -0
  3. package/core/FeaturedLink/component.css +1 -1
  4. package/core/Footer/component.css +3 -3
  5. package/core/Footer.jsx +15 -25
  6. package/core/Icon/component.css +1 -0
  7. package/core/Meganav/component.css +7 -7
  8. package/core/Meganav/component.json +1 -1
  9. package/core/Meganav.jsx +46 -58
  10. package/core/MeganavContentDevelopers.jsx +13 -1
  11. package/core/MeganavContentPlatform/component.js +1 -1
  12. package/core/MeganavContentPlatform.jsx +166 -85
  13. package/core/MeganavContentProducts/component.js +1 -0
  14. package/core/MeganavContentProducts.jsx +333 -0
  15. package/core/MeganavContentUseCases.jsx +4 -4
  16. package/core/MeganavContentWhyAbly/component.js +1 -22
  17. package/core/MeganavContentWhyAbly.jsx +349 -2170
  18. package/core/MeganavItemsDesktop.jsx +2 -2
  19. package/core/MeganavItemsMobile.jsx +1 -1
  20. package/core/Notice/component.css +1 -1
  21. package/core/Notice.jsx +2 -2
  22. package/core/sprites.svg +27 -0
  23. package/core/styles.css +80 -117
  24. package/package.json +1 -1
  25. package/src/core/FeaturedLink/component.css +1 -1
  26. package/src/core/Footer/component.css +3 -3
  27. package/src/core/Footer/component.html.erb +14 -20
  28. package/src/core/Footer/component.jsx +14 -24
  29. package/src/core/Meganav/component.css +7 -7
  30. package/src/core/Meganav/component.json +1 -1
  31. package/src/core/Meganav/component.jsx +2 -2
  32. package/src/core/Meganav/component.rb +4 -4
  33. package/src/core/MeganavContentDevelopers/component.html.erb +9 -0
  34. package/src/core/MeganavContentDevelopers/component.jsx +9 -0
  35. package/src/core/{MeganavContentPlatform → MeganavContentProducts}/component.html.erb +16 -34
  36. package/src/core/{MeganavContentPlatform → MeganavContentProducts}/component.jsx +19 -40
  37. package/src/core/{MeganavContentPlatform → MeganavContentProducts}/component.rb +1 -1
  38. package/src/core/MeganavContentUseCases/component.html.erb +4 -4
  39. package/src/core/MeganavContentUseCases/component.jsx +4 -4
  40. package/src/core/MeganavItemsDesktop/component.jsx +1 -1
  41. package/src/core/MeganavItemsDesktop/component.rb +1 -1
  42. package/src/core/Notice/component.css +1 -1
  43. package/src/core/Notice/component.html.erb +2 -2
  44. package/src/core/Notice/component.jsx +2 -2
  45. package/src/core/icons/icon-display-asset-tracking-col.svg +18 -0
  46. package/src/core/icons/icon-display-examples-col.svg +11 -0
  47. package/src/core/styles/buttons.css +5 -5
  48. package/src/core/styles/forms.css +5 -5
  49. package/src/core/styles/properties.css +31 -49
  50. package/src/core/styles/text.css +39 -58
  51. package/src/core/utils/syntax-highlighter.css +0 -2
  52. package/tailwind.config.js +25 -41
  53. package/core/Meganav/component.js.LICENSE.txt +0 -7
  54. package/core/MeganavSearchAutocomplete/component.js.LICENSE.txt +0 -7
  55. package/core/fonts/jetBrains-mono.css +0 -3
  56. package/core/fonts/manrope.css +0 -3
  57. package/src/core/fonts/jetBrains-mono.css +0 -3
  58. package/src/core/fonts/manrope.css +0 -3
  59. /package/src/core/{MeganavContentPlatform → MeganavContentProducts}/component.js +0 -0
@@ -1,18 +1,18 @@
1
- <footer class="bg-light-grey font-manrope antialiased leading-normal" data-id="footer">
1
+ <footer class="bg-light-grey font-sans antialiased" data-id="footer">
2
2
  <div class="max-w-screen-xl mx-auto py-32 sm:py-40 md:py-64 ui-grid-gap ui-grid-px grid grid-cols-6">
3
3
  <div class="col-span-full md:col-span-2">
4
4
  <div class="flex flex-row p-menu-row-snug">
5
5
  <%= image_tag(ably_stack_path, alt: "Ably homepage", class: "mr-24 -mt-16") %>
6
- <h2 class="text-overline2 col-span-full font-jetbrains_mono font-bold uppercase tracking-widen-0.16">The Ably Platform</h2>
6
+ <h2 class="text-overline2 col-span-full font-medium uppercase tracking-widen-0.1">The Ably Platform</h2>
7
7
  </div>
8
8
  <div class="md:col-span-4 md:w-3/4 xs:w-3/5 w-full">
9
- <p class="font-manrope text-p3 py-16 font-bold p-menu-row-snug">
9
+ <p class="text-p3 py-16 font-medium p-menu-row-snug">
10
10
  Easily power any realtime experience in your application via a simple API that handles everything realtime.
11
11
  </p>
12
12
  </div>
13
13
  <ul class="grid grid-cols-1">
14
14
  <li class="p-menu-row-snug">
15
- <%= link_to 'Pub/sub messaging', abs_url("/pub-sub-messaging"), class: "ui-footer-menu-row-link" %>
15
+ <%= link_to 'Pub/sub messaging', abs_url("/solutions/channels"), class: "ui-footer-menu-row-link" %>
16
16
  </li>
17
17
  <li class="p-menu-row-snug">
18
18
  <%= link_to 'Push notifications', abs_url("/push-notifications"), class: "ui-footer-menu-row-link" %>
@@ -23,9 +23,6 @@
23
23
  <li class="p-menu-row-snug">
24
24
  <%= link_to 'Multiple protocol messaging', abs_url("/protocols"), class: "ui-footer-menu-row-link" %>
25
25
  </li>
26
- <li class="p-menu-row-snug">
27
- <%= link_to 'Streaming data sources', abs_url("/hub"), class: "ui-footer-menu-row-link" %>
28
- </li>
29
26
  </ul>
30
27
  </div>
31
28
  <div class="col-span-full xs:col-span-3 md:col-span-1">
@@ -49,9 +46,6 @@
49
46
  <li class="p-menu-row-snug">
50
47
  <%= link_to 'Healthcare', abs_url("/solutions/healthcare"), class: "ui-footer-menu-row-link" %>
51
48
  </li>
52
- <li class="p-menu-row-snug">
53
- <%= link_to 'Streaming data sources', abs_url("/hub"), class: "ui-footer-menu-row-link" %>
54
- </li>
55
49
  <li class="p-menu-row-snug">
56
50
  <%= link_to 'eCommerce & Retail', abs_url("/solutions/ecommerce-and-retail"), class: "ui-footer-menu-row-link" %>
57
51
  </li>
@@ -180,7 +174,7 @@
180
174
  >
181
175
  <%= render(AblyUi::Core::Icon.new(name: "glassdoor", size: "1.5rem")) %>
182
176
  </a>
183
- <div class="pl-16 text-menu3 font-manrope font-medium">
177
+ <div class="pl-16 text-menu3 font-light">
184
178
  <strong class="block font-medium">We&apos;re hiring!</strong>
185
179
  <a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" class="ui-footer-link">
186
180
  Learn more at Glassdoor
@@ -200,7 +194,7 @@
200
194
  >
201
195
  <%= render(AblyUi::Core::Icon.new(name: "glassdoor", size: "1.5rem")) %>
202
196
  </a>
203
- <div class="text-menu3 font-manrope font-medium">
197
+ <div class="text-menu3 font-light">
204
198
  <strong class="block font-medium">We&apos;re hiring!</strong>
205
199
  <a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" class="ui-footer-link">
206
200
  Learn more at Glassdoor
@@ -231,29 +225,29 @@
231
225
  <div class="flex mr-24">
232
226
  <%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", color: "text-active-orange", size: "1.5rem", additional_css:"bg-white rounded-full mr-12 ui-footer-tick-icon")) %>
233
227
  <div>
234
- <p class="ui-footer-compliance-text font-bold whitespace-nowrap">SOC 2 Type 2</p>
235
- <p class="ui-footer-compliance-text font-medium mb-24">Certified</p>
228
+ <p class="ui-footer-compliance-text font-medium whitespace-nowrap">SOC 2 Type 2</p>
229
+ <p class="ui-footer-compliance-text font-light mb-24">Certified</p>
236
230
  </div>
237
231
  </div>
238
232
  <div class="flex mr-24 md:col-start-2">
239
233
  <%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", color: "text-active-orange", size: "1.5rem", additional_css:"bg-white rounded-full mr-12 ui-footer-tick-icon")) %>
240
234
  <div>
241
- <p class="ui-footer-compliance-text font-bold whitespace-nowrap">HIPAA</p>
242
- <p class="ui-footer-compliance-text font-medium mb-24">Compliant</p>
235
+ <p class="ui-footer-compliance-text font-medium whitespace-nowrap">HIPAA</p>
236
+ <p class="ui-footer-compliance-text font-light mb-24">Compliant</p>
243
237
  </div>
244
238
  </div>
245
239
  <div class="flex mr-24 md:col-start-3">
246
240
  <%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", color: "text-active-orange", size: "1.5rem", additional_css:"bg-white rounded-full mr-12 ui-footer-tick-icon")) %>
247
241
  <div>
248
- <p class="ui-footer-compliance-text font-bold whitespace-nowrap">EU GDPR</p>
249
- <p class="ui-footer-compliance-text font-medium mb-24">Certified</p>
242
+ <p class="ui-footer-compliance-text font-medium whitespace-nowrap">EU GDPR</p>
243
+ <p class="ui-footer-compliance-text font-light mb-24">Certified</p>
250
244
  </div>
251
245
  </div>
252
246
  <div class="flex mr-24 md:col-start-4">
253
247
  <%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", color: "text-active-orange", size: "1.5rem", additional_css:"bg-white rounded-full mr-12 ui-footer-tick-icon")) %>
254
248
  <div>
255
- <p class="ui-footer-compliance-text font-bold whitespace-nowrap">256-bit AES</p>
256
- <p class="ui-footer-compliance-text font-medium mb-24">Encryption</p>
249
+ <p class="ui-footer-compliance-text font-medium whitespace-nowrap">256-bit AES</p>
250
+ <p class="ui-footer-compliance-text font-light mb-24">Encryption</p>
257
251
  </div>
258
252
  </div>
259
253
  </div>
@@ -8,22 +8,22 @@ export default function Footer({ paths, urlBase }) {
8
8
  const absUrl = (path) => _absUrl(path, urlBase);
9
9
 
10
10
  return (
11
- <footer className="bg-light-grey font-manrope antialiased leading-normal" data-id="footer">
11
+ <footer className="bg-light-grey font-sans antialiased" data-id="footer">
12
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
- <h2 className="text-overline2 font-jetbrains_mono font-bold col-span-full uppercase tracking-widen-0.16">The Ably Platform</h2>
16
+ <h2 className="text-overline2 col-span-full font-medium uppercase tracking-widen-0.1">The Ably Platform</h2>
17
17
  </div>
18
18
  <div className="md:col-span-4 md:w-3/4 xs:w-3/5 w-full">
19
- <p className="font-manrope text-p3 py-16 font-bold p-menu-row-snug">
19
+ <p className="text-p3 py-16 font-medium p-menu-row-snug">
20
20
  Easily power any realtime experience in your application via a simple API that handles everything realtime.
21
21
  </p>
22
22
  </div>
23
23
 
24
24
  <ul className="grid grid-cols-1">
25
25
  <li className="p-menu-row-snug">
26
- <a href={absUrl("/pub-sub-messaging")} className="ui-footer-menu-row-link">
26
+ <a href={absUrl("/solutions/channels")} className="ui-footer-menu-row-link">
27
27
  Pub/sub messaging
28
28
  </a>
29
29
  </li>
@@ -42,11 +42,6 @@ export default function Footer({ paths, urlBase }) {
42
42
  Multiple protocol messaging
43
43
  </a>
44
44
  </li>
45
- <li className="p-menu-row-snug">
46
- <a href={absUrl("/hub")} className="ui-footer-menu-row-link">
47
- Streaming data sources
48
- </a>
49
- </li>
50
45
  </ul>
51
46
  </div>
52
47
 
@@ -83,11 +78,6 @@ export default function Footer({ paths, urlBase }) {
83
78
  Healthcare
84
79
  </a>
85
80
  </li>
86
- <li className="p-menu-row-snug">
87
- <a href={absUrl("/hub")} className="ui-footer-menu-row-link">
88
- Streaming data sources
89
- </a>
90
- </li>
91
81
  <li className="p-menu-row-snug">
92
82
  <a href={absUrl("/solutions/ecommerce-and-retail")} className="ui-footer-menu-row-link">
93
83
  eCommerce &amp; Retail
@@ -274,7 +264,7 @@ export default function Footer({ paths, urlBase }) {
274
264
  >
275
265
  <Icon name="glassdoor" size="1.5rem" />
276
266
  </a>
277
- <div className="pl-16 text-menu3 font-manrope font-medium">
267
+ <div className="pl-16 text-menu3 font-light">
278
268
  <strong className="block font-medium">We&apos;re hiring!</strong>
279
269
  <a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" className="ui-footer-link">
280
270
  Learn more at Glassdoor
@@ -294,7 +284,7 @@ export default function Footer({ paths, urlBase }) {
294
284
  >
295
285
  <Icon name="glassdoor" size="1.5rem" />
296
286
  </a>
297
- <div className="text-menu3 font-manrope font-medium">
287
+ <div className="text-menu3 font-light">
298
288
  <strong className="block font-medium">We&apos;re hiring!</strong>
299
289
  <a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" className="ui-footer-link">
300
290
  Learn more at Glassdoor
@@ -335,29 +325,29 @@ export default function Footer({ paths, urlBase }) {
335
325
  <div className="flex mr-24">
336
326
  <Icon name="icon-gui-tick" color="text-active-orange" size="1.5rem" additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon" />
337
327
  <div>
338
- <p className="ui-footer-compliance-text font-bold whitespace-nowrap">SOC 2 Type 2</p>
339
- <p className="ui-footer-compliance-text font-medium mb-24">Certified</p>
328
+ <p className="ui-footer-compliance-text font-medium whitespace-nowrap">SOC 2 Type 2</p>
329
+ <p className="ui-footer-compliance-text font-light mb-24">Certified</p>
340
330
  </div>
341
331
  </div>
342
332
  <div className="flex mr-24 md:col-start-2">
343
333
  <Icon name="icon-gui-tick" color="text-active-orange" size="1.5rem" additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon" />
344
334
  <div>
345
- <p className="ui-footer-compliance-text font-bold whitespace-nowrap">HIPAA</p>
346
- <p className="ui-footer-compliance-text font-medium mb-24">Compliant</p>
335
+ <p className="ui-footer-compliance-text font-medium whitespace-nowrap">HIPAA</p>
336
+ <p className="ui-footer-compliance-text font-light mb-24">Compliant</p>
347
337
  </div>
348
338
  </div>
349
339
  <div className="flex mr-24 md:col-start-3">
350
340
  <Icon name="icon-gui-tick" color="text-active-orange" size="1.5rem" additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon" />
351
341
  <div>
352
- <p className="ui-footer-compliance-text font-bold whitespace-nowrap">EU GDPR</p>
353
- <p className="ui-footer-compliance-text font-medium mb-24">Certified</p>
342
+ <p className="ui-footer-compliance-text font-medium whitespace-nowrap">EU GDPR</p>
343
+ <p className="ui-footer-compliance-text font-light mb-24">Certified</p>
354
344
  </div>
355
345
  </div>
356
346
  <div className="flex mr-24 md:col-start-4">
357
347
  <Icon name="icon-gui-tick" color="text-active-orange" size="1.5rem" additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon" />
358
348
  <div>
359
- <p className="ui-footer-compliance-text font-bold whitespace-nowrap">256-bit AES</p>
360
- <p className="ui-footer-compliance-text font-medium mb-24">Encryption</p>
349
+ <p className="ui-footer-compliance-text font-medium whitespace-nowrap">256-bit AES</p>
350
+ <p className="ui-footer-compliance-text font-light mb-24">Encryption</p>
361
351
  </div>
362
352
  </div>
363
353
  </div>
@@ -7,7 +7,7 @@
7
7
  z-index: var(--stacking-context-page-meganav);
8
8
 
9
9
  @apply fixed top-0 w-full;
10
- @apply antialiased font-manrope transition-colors;
10
+ @apply antialiased font-sans transition-colors;
11
11
  }
12
12
 
13
13
  .ui-meganav {
@@ -51,7 +51,7 @@
51
51
  }
52
52
 
53
53
  .ui-meganav-link {
54
- @apply text-menu2 font-bold block font-manrope;
54
+ @apply text-menu2 font-medium block;
55
55
  @apply mr-12 lg:mr-24 px-0 py-20;
56
56
  @apply hover:text-gui-hover focus:text-gui-focus focus:outline-none;
57
57
  @apply transition-colors;
@@ -63,13 +63,13 @@
63
63
 
64
64
  .ui-meganav-mobile-link {
65
65
  @apply p-menu-row relative -left-8 w-extend-8;
66
- @apply text-menu2 font-bold font-jetbrains_mono font-medium block text-cool-black text-left;
66
+ @apply text-menu2 font-medium block text-cool-black text-left;
67
67
  @apply flex items-center;
68
68
  @apply focus:text-gui-focus focus:outline-none;
69
69
  }
70
70
 
71
71
  .ui-meganav-account-link {
72
- @apply block px-8 py-8 hover:bg-light-grey hover:text-gui-hover rounded relative -left-8 text-menu3 w-extend-8 font-bold font-jetbrains_mono;
72
+ @apply block px-8 py-8 hover:bg-light-grey hover:text-gui-hover rounded relative -left-8 text-menu3 w-extend-8 font-light;
73
73
  }
74
74
 
75
75
  .ui-meganav-content {
@@ -97,15 +97,15 @@
97
97
  }
98
98
 
99
99
  .ui-meganav-media-heading {
100
- @apply text-menu3 text-cool-black font-bold font-manrope group-hover:text-gui-hover group-focus:text-gui-focus leading-normal;
100
+ @apply text-menu3 text-cool-black font-medium group-hover:text-gui-hover group-focus:text-gui-focus;
101
101
  }
102
102
 
103
103
  .ui-meganav-media-copy {
104
- @apply text-p3 font-manrope font-medium text-dark-grey leading-normal;
104
+ @apply text-p3 text-dark-grey font-light;
105
105
  }
106
106
 
107
107
  .ui-meganav-overline {
108
- @apply text-overline2 text-cool-black uppercase font-bold font-jetbrains_mono tracking-widen-0.16 p-overline;
108
+ @apply text-overline2 text-cool-black uppercase font-medium tracking-widen-0.15 p-overline;
109
109
  }
110
110
 
111
111
  .ui-meganav-hr {
@@ -29,7 +29,7 @@
29
29
  }
30
30
  },
31
31
  "panels": [
32
- { "label": "Platform", "shortLabel": "Platform", "id": "platform-panel", "component": "MeganavContentPlatform" },
32
+ { "label": "Products", "shortLabel": "Products", "id": "products-panel", "component": "MeganavContentProducts" },
33
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" }
@@ -14,7 +14,7 @@ import Notice from "../Notice/component.jsx";
14
14
  import MeganavData from "./component.json";
15
15
  import _absUrl from "../url-base";
16
16
 
17
- import MeganavContentPlatform from "../MeganavContentPlatform/component.jsx";
17
+ import MeganavContentProducts from "../MeganavContentProducts/component.jsx";
18
18
  import MeganavContentUseCases from "../MeganavContentUseCases/component.jsx";
19
19
  import MeganavContentCompany from "../MeganavContentCompany/component.jsx";
20
20
  import MeganavContentDevelopers from "../MeganavContentDevelopers/component.jsx";
@@ -58,7 +58,7 @@ SignIn.propTypes = {
58
58
  const SignInPlaceholder = () => <div />;
59
59
 
60
60
  const panels = {
61
- MeganavContentPlatform: MeganavContentPlatform,
61
+ MeganavContentProducts: MeganavContentProducts,
62
62
  MeganavContentUseCases: MeganavContentUseCases,
63
63
  MeganavContentCompany: MeganavContentCompany,
64
64
  MeganavContentDevelopers: MeganavContentDevelopers,
@@ -30,10 +30,10 @@ module AblyUi
30
30
  def panels
31
31
  [
32
32
  {
33
- label: 'Platform',
34
- short_label: 'Platform',
35
- id: 'platform-panel',
36
- class: 'AblyUi::Core::MeganavContentPlatform'
33
+ label: 'Products',
34
+ short_label: 'Products',
35
+ id: 'products-panel',
36
+ class: 'AblyUi::Core::MeganavContentProducts'
37
37
  },
38
38
  {
39
39
  label: 'Solutions',
@@ -33,6 +33,15 @@
33
33
  </div>
34
34
  <% end %>
35
35
  </li>
36
+ <li>
37
+ <%= link_to abs_url("/examples"), class: "ui-meganav-media-with-image group" do %>
38
+ <%= render(AblyUi::Core::Icon.new(name: "icon-display-examples-col", size: "2.5rem")) %>
39
+ <div class="flex flex-col justify-center">
40
+ <p class="ui-meganav-media-heading">Live examples</p>
41
+ <p class="ui-meganav-media-copy">Discover our features and their use cases.</p>
42
+ </div>
43
+ <% end %>
44
+ </li>
36
45
  </ul>
37
46
  </div>
38
47
  <div class="col-span-full md:col-span-4 pb-8 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0">
@@ -39,6 +39,15 @@ const MeganavContentDevelopers = ({ absUrl }) => (
39
39
  </div>
40
40
  </a>
41
41
  </li>
42
+ <li>
43
+ <a href={absUrl("/examples")} className="ui-meganav-media-with-image group">
44
+ <Icon name="icon-display-examples-col" size="2.5rem" />
45
+ <div className="flex flex-col justify-center">
46
+ <p className="ui-meganav-media-heading">Live examples</p>
47
+ <p className="ui-meganav-media-copy">Discover our features and their use cases.</p>
48
+ </div>
49
+ </a>
50
+ </li>
42
51
  </ul>
43
52
  </div>
44
53
 
@@ -7,7 +7,7 @@
7
7
  <h3 class="ui-meganav-overline ml-24">The Ably Platform</h3>
8
8
  </div>
9
9
 
10
- <p class="text-p2 font-bold text-cool-black mb-24 leading-normal" style="max-width: 330px">
10
+ <p class="text-p2 font-medium text-cool-black mb-24" style="max-width: 330px">
11
11
  Easily power any realtime experience in your application. No complex infrastructure to manage or provision. Just a simple API that handles everything
12
12
  realtime, and lets you focus on your code.
13
13
  </p>
@@ -16,52 +16,34 @@
16
16
  </div>
17
17
 
18
18
  <div class="col-span-full md:col-span-4 pt-24 pb-8 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white">
19
- <h3 class="ui-meganav-overline" id="meganav-platform-panel-list-examples">Our Examples</h3>
20
- <ul class="mb-16" aria-labelledby="meganav-platform-panel-list-examples">
19
+ <h3 class="ui-meganav-overline" id="meganav-products-panel-list-examples">
20
+ Products
21
+ </h3>
22
+ <ul class="mb-16" aria-labelledby="meganav-products-panel-list-examples">
21
23
  <li>
22
- <%= link_to abs_url("/examples/avatar-stack"), class: "ui-meganav-media group" do %>
23
- <p class="ui-meganav-media-heading">Avatar Stack</p>
24
- <p class="ui-meganav-media-copy">See who is connected in a digital space.</p>
24
+ <%= link_to abs_url("/solutions/channels"), class: "ui-meganav-media group" do %>
25
+ <p class="ui-meganav-media-heading">Pub/Sub Channels</p>
26
+ <p class="ui-meganav-media-copy">Build infinitely scalable realtime applications.</p>
25
27
  <% end %>
26
28
  </li>
27
29
  <li>
28
- <%= link_to abs_url("/examples/emoji-reactions"), class: "ui-meganav-media group" do %>
29
- <p class="ui-meganav-media-heading">Emoji Reactions</p>
30
- <p class="ui-meganav-media-copy">React with an emoji to a message.</p>
30
+ <%= link_to abs_url("/spaces"), class: "ui-meganav-media group" do %>
31
+ <p class="ui-meganav-media-heading">Spaces (Beta)</p>
32
+ <p class="ui-meganav-media-copy">Create multi-user collaborative environments.</p>
31
33
  <% end %>
32
34
  </li>
33
35
  <li>
34
- <%= link_to abs_url("/examples/activity-feed"), class: "ui-meganav-media group" do %>
35
- <p class="ui-meganav-media-heading">Activity Feed</p>
36
- <p class="ui-meganav-media-copy">Display a list of user actions in realtime.</p>
37
- <% end %>
38
- </li>
39
- <li>
40
- <%= link_to abs_url("/examples/live-cursors"), class: "ui-meganav-media group" do %>
41
- <p class="ui-meganav-media-heading">Live Cursors</p>
42
- <p class="ui-meganav-media-copy">Track all cursors in realtime.</p>
43
- <% end %>
44
- </li>
45
- <li>
46
- <%= link_to abs_url("/examples/typing-indicator"), class: "ui-meganav-media group" do %>
47
- <p class="ui-meganav-media-heading">Typing Indicator</p>
48
- <p class="ui-meganav-media-copy">See when a user is typing a message.</p>
49
- <% end %>
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>
36
+ <%= link_to abs_url("/livesync"), class: "ui-meganav-media group" do %>
37
+ <p class="ui-meganav-media-heading">LiveSync (Pre release)</p>
38
+ <p class="ui-meganav-media-copy">Keep clients in sync with any relational database.</p>
55
39
  <% end %>
56
40
  </li>
57
41
  </ul>
58
-
59
- <%= render(AblyUi::Core::FeaturedLink.new(url: abs_url("/examples"), text_size: 'text-p3')) do %>Explore all live examples<% end %>
60
42
  </div>
61
43
 
62
44
  <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">
63
- <h3 class="ui-meganav-overline" id="meganav-platform-panel-list-our-technology">Our technology</h3>
64
- <ul class="mb-16" aria-labelledby="meganav-platform-panel-list-our-technology">
45
+ <h3 class="ui-meganav-overline" id="meganav-products-panel-list-our-technology">Technology</h3>
46
+ <ul class="mb-16" aria-labelledby="meganav-products-panel-list-our-technology">
65
47
  <li>
66
48
  <%= link_to abs_url("/four-pillars-of-dependability#performance"), class: "ui-meganav-media group" do %>
67
49
  <p class="ui-meganav-media-heading">Predictable performance</p>
@@ -3,7 +3,7 @@ import T from "prop-types";
3
3
 
4
4
  import FeaturedLink from "../FeaturedLink/component.jsx";
5
5
 
6
- const MeganavContentPlatform = ({ paths, absUrl }) => (
6
+ const MeganavContentProducts = ({ paths, absUrl }) => (
7
7
  <div className="flex max-w-screen-xl mx-auto">
8
8
  <div className="ui-meganav-content-spacer bg-extra-light-grey"></div>
9
9
  <section className="grid grid-cols-12 ui-grid-gap-x w-full">
@@ -12,7 +12,7 @@ const MeganavContentPlatform = ({ paths, absUrl }) => (
12
12
  <img src={paths.ablyStack} alt="Ably homepage" />
13
13
  <h3 className="ui-meganav-overline ml-24">The Ably Platform</h3>
14
14
  </div>
15
- <p className="text-p2 font-bold text-cool-black mb-24 leading-normal" style={{ maxWidth: "330px" }}>
15
+ <p className="text-p2 font-medium text-cool-black mb-24" style={{ maxWidth: "330px" }}>
16
16
  Easily power any realtime experience in your application. No complex infrastructure to manage or provision. Just a simple API that handles everything
17
17
  realtime, and lets you focus on your code.
18
18
  </p>
@@ -23,57 +23,36 @@ const MeganavContentPlatform = ({ paths, absUrl }) => (
23
23
  </div>
24
24
 
25
25
  <div className="col-span-full md:col-span-4 pt-24 pb-8 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white">
26
- <h3 className="ui-meganav-overline" id="meganav-platform-panel-list-examples">
27
- Our Examples
26
+ <h3 className="ui-meganav-overline" id="meganav-products-panel-list-examples">
27
+ Products
28
28
  </h3>
29
- <ul className="mb-16" aria-labelledby="meganav-platform-panel-list-examples">
29
+ <ul className="mb-16" aria-labelledby="meganav-products-panel-list-examples">
30
30
  <li>
31
- <a href={absUrl("/examples/avatar-stack")} className="group ui-meganav-media">
32
- <p className="ui-meganav-media-heading">Avatar Stack</p>
33
- <p className="ui-meganav-media-copy">See who is connected in a digital space.</p>
31
+ <a href={absUrl("/solutions/channels")} className="group ui-meganav-media">
32
+ <p className="ui-meganav-media-heading">Pub/Sub Channels</p>
33
+ <p className="ui-meganav-media-copy">Build infinitely scalable realtime applications.</p>
34
34
  </a>
35
35
  </li>
36
36
  <li>
37
- <a href={absUrl("/examples/emoji-reactions")} className="ui-meganav-media group">
38
- <p className="ui-meganav-media-heading">Emoji Reactions</p>
39
- <p className="ui-meganav-media-copy">React with an emoji to a message.</p>
37
+ <a href={absUrl("/spaces")} className="group ui-meganav-media">
38
+ <p className="ui-meganav-media-heading">Spaces (Beta)</p>
39
+ <p className="ui-meganav-media-copy">Create multi-user collaborative environments.</p>
40
40
  </a>
41
41
  </li>
42
42
  <li>
43
- <a href={absUrl("/examples/activity-feed")} className="ui-meganav-media group">
44
- <p className="ui-meganav-media-heading">Activity Feed</p>
45
- <p className="ui-meganav-media-copy">Display a list of user actions in realtime.</p>
46
- </a>
47
- </li>
48
- <li>
49
- <a href={absUrl("/examples/live-cursors")} className="ui-meganav-media group">
50
- <p className="ui-meganav-media-heading">Live Cursors</p>
51
- <p className="ui-meganav-media-copy">Track all cursors in realtime.</p>
52
- </a>
53
- </li>
54
- <li>
55
- <a href={absUrl("/examples/typing-indicator")} className="ui-meganav-media group">
56
- <p className="ui-meganav-media-heading">Typing Indicator</p>
57
- <p className="ui-meganav-media-copy">See when a user is typing a message.</p>
58
- </a>
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>
43
+ <a href={absUrl("/livesync")} className="group ui-meganav-media">
44
+ <p className="ui-meganav-media-heading">LiveSync (Pre release)</p>
45
+ <p className="ui-meganav-media-copy">Keep clients in sync with any relational database.</p>
64
46
  </a>
65
47
  </li>
66
48
  </ul>
67
- <FeaturedLink url={absUrl("/examples")} textSize="text-p3">
68
- Explore all live examples
69
- </FeaturedLink>
70
49
  </div>
71
50
 
72
51
  <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">
73
- <h3 className="ui-meganav-overline" id="meganav-platform-panel-list-our-technology">
74
- Our technology
52
+ <h3 className="ui-meganav-overline" id="meganav-products-panel-list-our-technology">
53
+ Technology
75
54
  </h3>
76
- <ul className="mb-16" aria-labelledby="meganav-platform-panel-list-our-technology">
55
+ <ul className="mb-16" aria-labelledby="meganav-products-panel-list-our-technology">
77
56
  <li>
78
57
  <a href={absUrl("/four-pillars-of-dependability#performance")} className="ui-meganav-media group">
79
58
  <p className="ui-meganav-media-heading">Predictable performance</p>
@@ -115,7 +94,7 @@ const MeganavContentPlatform = ({ paths, absUrl }) => (
115
94
  </div>
116
95
  );
117
96
 
118
- MeganavContentPlatform.propTypes = {
97
+ MeganavContentProducts.propTypes = {
119
98
  paths: T.shape({
120
99
  ablyStack: T.string,
121
100
  iconSprites: T.string,
@@ -123,4 +102,4 @@ MeganavContentPlatform.propTypes = {
123
102
  absUrl: T.func,
124
103
  };
125
104
 
126
- export default MeganavContentPlatform;
105
+ export default MeganavContentProducts;
@@ -1,6 +1,6 @@
1
1
  module AblyUi
2
2
  module Core
3
- class MeganavContentPlatform < ViewComponent::Base
3
+ class MeganavContentProducts < ViewComponent::Base
4
4
  include SharedAssets
5
5
  include Util
6
6
 
@@ -53,11 +53,11 @@
53
53
  <% end %>
54
54
  </li>
55
55
  <li>
56
- <%= link_to abs_url("/solutions/extend-kafka-to-the-edge"), class: "ui-meganav-media-with-image group" do %>
57
- <%= render(AblyUi::Core::Icon.new(name: "icon-display-kafka-at-the-edge-col", size: "2.5rem")) %>
56
+ <%= link_to abs_url("/solutions/asset-tracking"), class: "ui-meganav-media-with-image group" do %>
57
+ <%= render(AblyUi::Core::Icon.new(name: "icon-display-asset-tracking-col", size: "2.5rem")) %>
58
58
  <div class="flex flex-col justify-center">
59
- <p class="ui-meganav-media-heading">Extend Kafka to the edge</p>
60
- <p class="ui-meganav-media-copy">Reliably expand Kafka’s event streaming beyond your private network.</p>
59
+ <p class="ui-meganav-media-heading">Asset Tracking (Beta)</p>
60
+ <p class="ui-meganav-media-copy">Track assets in realtime with a solution optimised for last mile logistics.</p>
61
61
  </div>
62
62
  <% end %>
63
63
  </li>
@@ -58,11 +58,11 @@ const MeganavContentUseCases = ({ absUrl }) => (
58
58
  </a>
59
59
  </li>
60
60
  <li>
61
- <a href={absUrl("/solutions/extend-kafka-to-the-edge")} className="ui-meganav-media-with-image group">
62
- <Icon name="icon-display-kafka-at-the-edge-col" size="2.5rem" />
61
+ <a href={absUrl("/solutions/asset-tracking")} className="ui-meganav-media-with-image group">
62
+ <Icon name="icon-display-asset-tracking-col" size="2.5rem" />
63
63
  <div className="flex flex-col justify-center">
64
- <p className="ui-meganav-media-heading">Extend Kafka to the edge</p>
65
- <p className="ui-meganav-media-copy">Reliably expand Kafka’s event streaming beyond your private network.</p>
64
+ <p className="ui-meganav-media-heading">Asset Tracking (Beta)</p>
65
+ <p className="ui-meganav-media-copy">Track assets in realtime with a solution optimised for last mile logistics.</p>
66
66
  </div>
67
67
  </a>
68
68
  </li>
@@ -8,7 +8,7 @@ const MeganavDesktopItems = ({ panels, paths, theme, absUrl }) => (
8
8
  <ul className="hidden md:flex" data-id="meganav-items-desktop">
9
9
  {MeganavData.panels.map((panel) => {
10
10
  const PanelComponent = panels[panel.component];
11
- const bgCSS = ["platform-panel", "use-cases-panel"].includes(panel.id) ? "ui-meganav-panel-split-bg" : "";
11
+ const bgCSS = ["products-panel", "use-cases-panel"].includes(panel.id) ? "ui-meganav-panel-split-bg" : "";
12
12
 
13
13
  return (
14
14
  <li className="ui-meganav-item" key={panel.id}>
@@ -12,7 +12,7 @@ module AblyUi
12
12
  end
13
13
 
14
14
  def bg_css(panel_id)
15
- if %w[platform-panel use-cases-panel].include?(panel_id)
15
+ if %w[products-panel use-cases-panel].include?(panel_id)
16
16
  'ui-meganav-panel-split-bg'
17
17
  else
18
18
  ''
@@ -1,6 +1,6 @@
1
1
  @layer components {
2
2
  .ui-announcement {
3
- @apply font-manrope;
3
+ @apply font-sans;
4
4
  max-height: 37.5rem;
5
5
  transition: max-height 300ms;
6
6
  }
@@ -1,8 +1,8 @@
1
1
  <%# Note the style attribute is used for entry animation %>
2
2
  <%= tag.div class: "ui-announcement #{bg_color} #{text_color}", data: { id: "ui-notice" }, style: "max-height: 0; overflow: hidden" do %>
3
3
  <div class="ui-grid-px py-16 max-w-screen-xl mx-auto flex items-start">
4
- <%= content_wrapper class: "font-medium w-full pr-8 text-p3 self-center" do %>
5
- <strong class="font-bold whitespace-nowrap pr-4"><%= @contents[:title] %></strong>
4
+ <%= content_wrapper class: "font-light w-full pr-8 text-p3 self-center" do %>
5
+ <strong class="font-medium whitespace-nowrap pr-4"><%= @contents[:title] %></strong>
6
6
  <span class="pr-4"><%= @contents[:body_text] %></span>
7
7
  <span class="underline cursor-pointer whitespace-nowrap"><%= @contents[:button_label] %></span>
8
8
  <% end %>