@ably/ui 8.2.1 → 8.3.0
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.
- package/core/Meganav/component.css +11 -1
- package/core/Meganav/component.js +1 -1
- package/core/Meganav/component.json +4 -4
- package/core/Meganav.jsx +494 -346
- package/core/MeganavBlogPostsList/component.js +1 -1
- package/core/MeganavBlogPostsList.jsx +7 -4
- package/core/{MeganavContentWhyAbly → MeganavContentCompany}/component.js +1 -1
- package/core/{MeganavContentWhyAbly.jsx → MeganavContentCompany.jsx} +102 -59
- package/core/MeganavContentDevelopers.jsx +80 -102
- package/core/MeganavContentPlatform.jsx +34 -17
- package/core/MeganavContentUseCases.jsx +128 -36
- package/core/MeganavControl/component.js +1 -1
- package/core/MeganavControl.jsx +3 -1
- package/core/MeganavControlMobilePanelClose.jsx +7 -4
- package/core/MeganavItemsDesktop.jsx +13 -5
- package/core/MeganavItemsMobile.jsx +11 -6
- package/core/MeganavItemsSignedIn.jsx +4 -1
- package/core/images/icon-tech-aws.svg +4 -0
- package/core/sprites.svg +150 -0
- package/core/styles.css +4 -0
- package/package.json +1 -1
- package/src/core/Meganav/component.css +11 -1
- package/src/core/Meganav/component.json +4 -4
- package/src/core/Meganav/component.jsx +2 -2
- package/src/core/Meganav/component.rb +8 -4
- package/src/core/MeganavBlogPostsList/component.html.erb +4 -4
- package/src/core/MeganavBlogPostsList/component.js +2 -2
- package/src/core/MeganavBlogPostsList/component.jsx +6 -4
- package/src/core/MeganavContentCompany/component.html.erb +81 -0
- package/src/core/{MeganavContentWhyAbly → MeganavContentCompany}/component.js +0 -0
- package/src/core/MeganavContentCompany/component.jsx +108 -0
- package/src/core/{MeganavContentWhyAbly → MeganavContentCompany}/component.rb +2 -1
- package/src/core/MeganavContentDevelopers/component.html.erb +101 -80
- package/src/core/MeganavContentDevelopers/component.jsx +102 -83
- package/src/core/MeganavContentPlatform/component.html.erb +95 -91
- package/src/core/MeganavContentPlatform/component.jsx +105 -97
- package/src/core/MeganavContentUseCases/component.html.erb +112 -83
- package/src/core/MeganavContentUseCases/component.jsx +114 -87
- package/src/core/MeganavControl/component.html.erb +1 -1
- package/src/core/MeganavControl/component.js +9 -1
- package/src/core/MeganavControl/component.jsx +3 -2
- package/src/core/MeganavControl/component.rb +8 -2
- package/src/core/MeganavControlMobilePanelClose/component.html.erb +4 -2
- package/src/core/MeganavControlMobilePanelClose/component.jsx +3 -2
- package/src/core/MeganavControlMobilePanelClose/component.rb +4 -1
- package/src/core/MeganavItemsDesktop/component.html.erb +4 -3
- package/src/core/MeganavItemsDesktop/component.jsx +5 -3
- package/src/core/MeganavItemsDesktop/component.rb +8 -0
- package/src/core/MeganavItemsMobile/component.html.erb +1 -1
- package/src/core/MeganavItemsMobile/component.jsx +2 -1
- package/src/core/MeganavItemsMobile/component.rb +4 -0
- package/src/core/MeganavItemsSignedIn/component.html.erb +1 -1
- package/src/core/MeganavItemsSignedIn/component.jsx +1 -1
- package/src/core/core.rb +4 -0
- package/src/core/icons/icon-display-about-ably-col.svg +4 -0
- package/src/core/icons/icon-display-careers-col.svg +9 -0
- package/src/core/icons/icon-display-case-studies-col.svg +5 -0
- package/src/core/icons/icon-display-chat-stack-col.svg +4 -0
- package/src/core/icons/icon-display-chat-stack.svg +4 -0
- package/src/core/icons/icon-display-compare-tech-col.svg +9 -0
- package/src/core/icons/icon-display-customers-col.svg +15 -0
- package/src/core/icons/icon-display-docs-col.svg +7 -0
- package/src/core/icons/icon-display-lightbulb-col.svg +10 -0
- package/src/core/icons/icon-display-quickstart-guides-col.svg +8 -0
- package/src/core/icons/icon-display-resources-col.svg +21 -0
- package/src/core/icons/icon-display-sdks-col.svg +11 -0
- package/src/core/icons/icon-display-tutorials-demos-col.svg +25 -0
- package/src/core/icons/icon-display-virtual-events-col.svg +12 -0
- package/src/core/icons/icon-display-virtual-events.svg +12 -0
- package/src/core/icons/icon-gui-copy.svg +10 -0
- package/src/core/images/icon-tech-aws.svg +4 -0
- package/src/core/styles/layout.css +4 -0
- package/core/images/blog-thumb1.jpg +0 -0
- package/core/images/blog-thumb2.jpg +0 -0
- package/core/images/blog-thumb3.jpg +0 -0
- package/src/core/MeganavContentWhyAbly/component.html.erb +0 -70
- package/src/core/MeganavContentWhyAbly/component.jsx +0 -95
- package/src/core/images/blog-thumb1.jpg +0 -0
- package/src/core/images/blog-thumb2.jpg +0 -0
- package/src/core/images/blog-thumb3.jpg +0 -0
package/core/styles.css
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ably/ui",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.3.0",
|
|
4
4
|
"description": "Home of the Ably design system library ([design.ably.com](https://design.ably.com)). It provides a showcase, development/test environment and a publishing pipeline for different distributables.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -46,6 +46,10 @@
|
|
|
46
46
|
@apply bg-white rounded-t-none;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
.ui-meganav-panel-split-bg {
|
|
50
|
+
background: linear-gradient(to right, #fafafb 33%, white 33%, white 100%);
|
|
51
|
+
}
|
|
52
|
+
|
|
49
53
|
.ui-meganav-link {
|
|
50
54
|
@apply text-menu2 font-medium block;
|
|
51
55
|
@apply mr-12 lg:mr-24 px-0 py-20;
|
|
@@ -74,6 +78,12 @@
|
|
|
74
78
|
@apply px-24 md:px-32 lg:px-32 xl:px-64;
|
|
75
79
|
}
|
|
76
80
|
|
|
81
|
+
/* This is implemented not as padding so we can change the color of just this space, while keeping the grid
|
|
82
|
+
as close to the designs as possible */
|
|
83
|
+
.ui-meganav-content-spacer {
|
|
84
|
+
@apply hidden md:block md:w-32 lg:w-32 xl:w-64 self-stretch flex-shrink-0 flex-grow-0;
|
|
85
|
+
}
|
|
86
|
+
|
|
77
87
|
.ui-meganav-media {
|
|
78
88
|
@apply block px-8 py-8 hover:bg-light-grey rounded relative -left-8 w-extend-8;
|
|
79
89
|
}
|
|
@@ -83,7 +93,7 @@
|
|
|
83
93
|
grid-template-rows: min-content 1fr;
|
|
84
94
|
|
|
85
95
|
@apply block px-8 py-8 hover:bg-light-grey rounded relative -left-8 w-extend-8;
|
|
86
|
-
@apply grid gap-x-
|
|
96
|
+
@apply grid gap-x-8;
|
|
87
97
|
}
|
|
88
98
|
|
|
89
99
|
.ui-meganav-media-heading {
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"panels": [
|
|
32
|
-
{ "label": "Platform", "id": "platform-panel", "component": "MeganavContentPlatform" },
|
|
33
|
-
{ "label": "Use Cases", "id": "use-cases-panel", "component": "MeganavContentUseCases" },
|
|
34
|
-
{ "label": "
|
|
35
|
-
{ "label": "Developers", "id": "developers-panel", "component": "MeganavContentDevelopers" }
|
|
32
|
+
{ "label": "Platform", "shortLabel": "Platform", "id": "platform-panel", "component": "MeganavContentPlatform" },
|
|
33
|
+
{ "label": "Use Cases & Solutions", "shortLabel": "Use Cases", "id": "use-cases-panel", "component": "MeganavContentUseCases" },
|
|
34
|
+
{ "label": "Company", "shortLabel": "Company", "id": "company-panel", "component": "MeganavContentCompany" },
|
|
35
|
+
{ "label": "Developers", "shortLabel": "Developers", "id": "developers-panel", "component": "MeganavContentDevelopers" }
|
|
36
36
|
]
|
|
37
37
|
}
|
|
@@ -16,7 +16,7 @@ import _absUrl from "../url-base";
|
|
|
16
16
|
|
|
17
17
|
import MeganavContentPlatform from "../MeganavContentPlatform/component.jsx";
|
|
18
18
|
import MeganavContentUseCases from "../MeganavContentUseCases/component.jsx";
|
|
19
|
-
import
|
|
19
|
+
import MeganavContentCompany from "../MeganavContentCompany/component.jsx";
|
|
20
20
|
import MeganavContentDevelopers from "../MeganavContentDevelopers/component.jsx";
|
|
21
21
|
import MeganavSearch from "../MeganavSearch/component.jsx";
|
|
22
22
|
|
|
@@ -60,7 +60,7 @@ const SignInPlaceholder = () => <div />;
|
|
|
60
60
|
const panels = {
|
|
61
61
|
MeganavContentPlatform: MeganavContentPlatform,
|
|
62
62
|
MeganavContentUseCases: MeganavContentUseCases,
|
|
63
|
-
|
|
63
|
+
MeganavContentCompany: MeganavContentCompany,
|
|
64
64
|
MeganavContentDevelopers: MeganavContentDevelopers,
|
|
65
65
|
};
|
|
66
66
|
|
|
@@ -30,21 +30,25 @@ module AblyUi
|
|
|
30
30
|
[
|
|
31
31
|
{
|
|
32
32
|
label: 'Platform',
|
|
33
|
+
short_label: 'Platform',
|
|
33
34
|
id: 'platform-panel',
|
|
34
35
|
class: 'AblyUi::Core::MeganavContentPlatform'
|
|
35
36
|
},
|
|
36
37
|
{
|
|
37
|
-
label: 'Use Cases',
|
|
38
|
+
label: 'Use Cases & Solutions',
|
|
39
|
+
short_label: 'Use Cases',
|
|
38
40
|
id: 'use-cases-panel',
|
|
39
41
|
class: 'AblyUi::Core::MeganavContentUseCases'
|
|
40
42
|
},
|
|
41
43
|
{
|
|
42
|
-
label: '
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
label: 'Company',
|
|
45
|
+
short_label: 'Company',
|
|
46
|
+
id: 'company-panel',
|
|
47
|
+
class: 'AblyUi::Core::MeganavContentCompany'
|
|
45
48
|
},
|
|
46
49
|
{
|
|
47
50
|
label: 'Developers',
|
|
51
|
+
short_label: 'Developers',
|
|
48
52
|
id: 'developers-panel',
|
|
49
53
|
class: 'AblyUi::Core::MeganavContentDevelopers'
|
|
50
54
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<div class="hidden" data-id="meganav-
|
|
2
|
-
<h3 class="ui-meganav-overline" id="meganav-
|
|
3
|
-
<ul class="mb-8" aria-labelledby="meganav-
|
|
4
|
-
<%= render(AblyUi::Core::FeaturedLink.new(url: abs_url("/blog"))) do %>More from our Blog<% end %>
|
|
1
|
+
<div class="hidden 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" data-id="meganav-company-panel-blog-section">
|
|
2
|
+
<h3 class="ui-meganav-overline" id="meganav-company-panel-recent-blog-posts">Blog</h3>
|
|
3
|
+
<ul class="mb-8" aria-labelledby="meganav-company-panel-recent-blog-posts" data-id="meganav-company-panel-recent-blog-posts"></ul>
|
|
4
|
+
<%= render(AblyUi::Core::FeaturedLink.new(url: abs_url("/blog"), text_size: 'text-p3')) do %>More from our Blog<% end %>
|
|
5
5
|
</div>
|
|
@@ -26,8 +26,8 @@ const template = ({ link, title, pubDate }) => {
|
|
|
26
26
|
export default () => {
|
|
27
27
|
connectState(selectRecentBlogPosts, (recentBlogPosts) => {
|
|
28
28
|
if (Array.isArray(recentBlogPosts) && recentBlogPosts.length > 0) {
|
|
29
|
-
const sections = queryIdAll("meganav-
|
|
30
|
-
const containers = queryIdAll("meganav-
|
|
29
|
+
const sections = queryIdAll("meganav-company-panel-blog-section");
|
|
30
|
+
const containers = queryIdAll("meganav-company-panel-recent-blog-posts");
|
|
31
31
|
|
|
32
32
|
Array.from(containers).forEach((container) => {
|
|
33
33
|
const fragment = document.createDocumentFragment();
|
|
@@ -5,11 +5,11 @@ import FeaturedLink from "../FeaturedLink/component.jsx";
|
|
|
5
5
|
|
|
6
6
|
const MeganavBlogPostsList = ({ recentBlogPosts, absUrl }) =>
|
|
7
7
|
recentBlogPosts ? (
|
|
8
|
-
<div>
|
|
9
|
-
<h3 className="ui-meganav-overline" id="meganav-
|
|
8
|
+
<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">
|
|
9
|
+
<h3 className="ui-meganav-overline" id="meganav-company-panel-list-blog">
|
|
10
10
|
Blog
|
|
11
11
|
</h3>
|
|
12
|
-
<ul className="mb-8" aria-labelledby="meganav-
|
|
12
|
+
<ul className="mb-8" aria-labelledby="meganav-company-panel-list-blog">
|
|
13
13
|
{recentBlogPosts.map((post) => (
|
|
14
14
|
<li key={post.link}>
|
|
15
15
|
<a href={post.link} className="ui-meganav-media group">
|
|
@@ -20,7 +20,9 @@ const MeganavBlogPostsList = ({ recentBlogPosts, absUrl }) =>
|
|
|
20
20
|
))}
|
|
21
21
|
</ul>
|
|
22
22
|
|
|
23
|
-
<FeaturedLink url={absUrl("/blog")}
|
|
23
|
+
<FeaturedLink url={absUrl("/blog")} textSize="text-p3">
|
|
24
|
+
More from our Blog
|
|
25
|
+
</FeaturedLink>
|
|
24
26
|
</div>
|
|
25
27
|
) : null;
|
|
26
28
|
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<div class="flex max-w-screen-xl mx-auto">
|
|
2
|
+
<div class="ui-meganav-content-spacer"></div>
|
|
3
|
+
<section class="grid grid-cols-12 ui-grid-gap-x w-full">
|
|
4
|
+
<div class="col-span-full md:col-span-4 pt-24 md:py-24 lg:py-32 px-24 sm:px-32 md:pl-0 md:pr-24">
|
|
5
|
+
<h3 class="ui-meganav-overline" id="meganav-company-panel-list-why-companies">Why companies choose Ably</h3>
|
|
6
|
+
<ul aria-labelledby="meganav-company-panel-list-why-companies">
|
|
7
|
+
<li>
|
|
8
|
+
<%= link_to abs_url("/customers"), class: "ui-meganav-media-with-image group" do %>
|
|
9
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-customers-col", size: "2.5rem")) %>
|
|
10
|
+
<div class="flex flex-col justify-center">
|
|
11
|
+
<p class="ui-meganav-media-heading">Customers</p>
|
|
12
|
+
<p class="ui-meganav-media-copy">Ably supports customers across multiple industries.</p>
|
|
13
|
+
</div>
|
|
14
|
+
<% end %>
|
|
15
|
+
</li>
|
|
16
|
+
<li>
|
|
17
|
+
<%= link_to abs_url("/case-studies"), class: "ui-meganav-media-with-image group" do %>
|
|
18
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-case-studies-col", size: "2.5rem")) %>
|
|
19
|
+
<div class="flex flex-col justify-center">
|
|
20
|
+
<p class="ui-meganav-media-heading">Case studies</p>
|
|
21
|
+
<p class="ui-meganav-media-copy">Discover how customers are benefiting from Ably.</p>
|
|
22
|
+
</div>
|
|
23
|
+
<% end %>
|
|
24
|
+
</li>
|
|
25
|
+
<li>
|
|
26
|
+
<%= link_to abs_url("/compare"), class: "ui-meganav-media-with-image group" do %>
|
|
27
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-compare-tech-col", size: "2.5rem")) %>
|
|
28
|
+
<div class="flex flex-col justify-center">
|
|
29
|
+
<p class="ui-meganav-media-heading">Compare our tech</p>
|
|
30
|
+
<p class="ui-meganav-media-copy">Choose the right realtime service.</p>
|
|
31
|
+
</div>
|
|
32
|
+
<% end %>
|
|
33
|
+
</li>
|
|
34
|
+
<li>
|
|
35
|
+
<%= link_to abs_url("/aws"), class: "ui-meganav-media-with-image group" do %>
|
|
36
|
+
<%= image_tag(aws_logo_path, alt: "AWS logo") %>
|
|
37
|
+
<div class="flex flex-col justify-center">
|
|
38
|
+
<p class="ui-meganav-media-heading">Partners</p>
|
|
39
|
+
<p class="ui-meganav-media-copy">Ably collaborates and integrates with AWS.</p>
|
|
40
|
+
</div>
|
|
41
|
+
<% end %>
|
|
42
|
+
</li>
|
|
43
|
+
</ul>
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
<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">
|
|
47
|
+
<ul class="md:mt-40" aria-labelledby="meganav-company-panel-list-why-companies">
|
|
48
|
+
<li>
|
|
49
|
+
<%= link_to abs_url("/resources"), class: "ui-meganav-media-with-image group" do %>
|
|
50
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-resources-col", size: "2.5rem")) %>
|
|
51
|
+
<div class="flex flex-col justify-center">
|
|
52
|
+
<p class="ui-meganav-media-heading">Resources</p>
|
|
53
|
+
<p class="ui-meganav-media-copy">Learn more about realtime with our handy resources.</p>
|
|
54
|
+
</div>
|
|
55
|
+
<% end %>
|
|
56
|
+
</li>
|
|
57
|
+
<li>
|
|
58
|
+
<%= link_to abs_url("/about"), class: "ui-meganav-media-with-image group" do %>
|
|
59
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-about-ably-col", size: "2.5rem")) %>
|
|
60
|
+
<div class="flex flex-col justify-center">
|
|
61
|
+
<p class="ui-meganav-media-heading">About Ably</p>
|
|
62
|
+
<p class="ui-meganav-media-copy">Find out more about Ably’s mission.</p>
|
|
63
|
+
</div>
|
|
64
|
+
<% end %>
|
|
65
|
+
</li>
|
|
66
|
+
<li>
|
|
67
|
+
<%= link_to abs_url("/careers"), class: "ui-meganav-media-with-image group" do %>
|
|
68
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-careers-col", size: "2.5rem")) %>
|
|
69
|
+
<div class="flex flex-col justify-center">
|
|
70
|
+
<p class="ui-meganav-media-heading">Careers</p>
|
|
71
|
+
<p class="ui-meganav-media-copy">Discover our open roles and core Ably values.</p>
|
|
72
|
+
</div>
|
|
73
|
+
<% end %>
|
|
74
|
+
</li>
|
|
75
|
+
</ul>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
<%= render(AblyUi::Core::MeganavBlogPostsList.new(url_base: url_base)) %>
|
|
79
|
+
</section>
|
|
80
|
+
<div class="ui-meganav-content-spacer"></div>
|
|
81
|
+
</div>
|
|
File without changes
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import T from "prop-types";
|
|
3
|
+
|
|
4
|
+
import MeganavBlogPostsList from "../MeganavBlogPostsList/component.jsx";
|
|
5
|
+
import ConnectStateWrapper from "../ConnectStateWrapper/component.jsx";
|
|
6
|
+
|
|
7
|
+
import { selectRecentBlogPosts } from "../remote-blogs-posts";
|
|
8
|
+
|
|
9
|
+
import Icon from "../Icon/component.jsx";
|
|
10
|
+
|
|
11
|
+
const MeganavContentCompany = ({ paths, absUrl }) => {
|
|
12
|
+
const BlogPostsList = ConnectStateWrapper(MeganavBlogPostsList, { recentBlogPosts: selectRecentBlogPosts });
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<div className="flex max-w-screen-xl mx-auto">
|
|
16
|
+
<div className="ui-meganav-content-spacer"></div>
|
|
17
|
+
<section className="grid grid-cols-12 ui-grid-gap-x w-full">
|
|
18
|
+
<div className="col-span-full md:col-span-4 pt-24 md:py-24 lg:py-32 px-24 sm:px-32 md:pl-0 md:pr-24">
|
|
19
|
+
<h3 className="ui-meganav-overline" id="meganav-company-panel-list-why-companies">
|
|
20
|
+
Why companies choose Ably
|
|
21
|
+
</h3>
|
|
22
|
+
<ul aria-labelledby="meganav-company-panel-list-why-companies">
|
|
23
|
+
<li>
|
|
24
|
+
<a href={absUrl("/customers")} className="ui-meganav-media-with-image group">
|
|
25
|
+
<Icon name="icon-display-customers-col" size="2.5rem" />
|
|
26
|
+
<div className="flex flex-col justify-center">
|
|
27
|
+
<p className="ui-meganav-media-heading">Customers</p>
|
|
28
|
+
<p className="ui-meganav-media-copy">Ably supports customers across multiple industries.</p>
|
|
29
|
+
</div>
|
|
30
|
+
</a>
|
|
31
|
+
</li>
|
|
32
|
+
<li>
|
|
33
|
+
<a href={absUrl("/case-studies")} className="ui-meganav-media-with-image group">
|
|
34
|
+
<Icon name="icon-display-case-studies-col" size="2.5rem" />
|
|
35
|
+
<div className="flex flex-col justify-center">
|
|
36
|
+
<p className="ui-meganav-media-heading">Case studies</p>
|
|
37
|
+
<p className="ui-meganav-media-copy">Discover how customers are benefiting from Ably.</p>
|
|
38
|
+
</div>
|
|
39
|
+
</a>
|
|
40
|
+
</li>
|
|
41
|
+
<li>
|
|
42
|
+
<a href={absUrl("/compare")} className="ui-meganav-media-with-image group">
|
|
43
|
+
<Icon name="icon-display-compare-tech-col" size="2.5rem" />
|
|
44
|
+
<div className="flex flex-col justify-center">
|
|
45
|
+
<p className="ui-meganav-media-heading">Compare our tech</p>
|
|
46
|
+
<p className="ui-meganav-media-copy">Choose the right realtime service.</p>
|
|
47
|
+
</div>
|
|
48
|
+
</a>
|
|
49
|
+
</li>
|
|
50
|
+
<li>
|
|
51
|
+
<a href={absUrl("/aws")} className="ui-meganav-media-with-image group">
|
|
52
|
+
<img src={paths.awsLogo} alt="AWS logo" />
|
|
53
|
+
<div className="flex flex-col justify-center">
|
|
54
|
+
<p className="ui-meganav-media-heading">Partners</p>
|
|
55
|
+
<p className="ui-meganav-media-copy">Ably collaborates and integrates with AWS.</p>
|
|
56
|
+
</div>
|
|
57
|
+
</a>
|
|
58
|
+
</li>
|
|
59
|
+
</ul>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div className="col-span-full md:col-span-4 pb-8 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0">
|
|
63
|
+
<ul className="md:mt-40" aria-labelledby="meganav-company-panel-list-why-companies">
|
|
64
|
+
<li>
|
|
65
|
+
<a href={absUrl("/resources")} className="ui-meganav-media-with-image group">
|
|
66
|
+
<Icon name="icon-display-resources-col" size="2.5rem" />
|
|
67
|
+
<div className="flex flex-col justify-center">
|
|
68
|
+
<p className="ui-meganav-media-heading">Resources</p>
|
|
69
|
+
<p className="ui-meganav-media-copy">Learn more about realtime with our handy resources.</p>
|
|
70
|
+
</div>
|
|
71
|
+
</a>
|
|
72
|
+
</li>
|
|
73
|
+
<li>
|
|
74
|
+
<a href={absUrl("/about")} className="ui-meganav-media-with-image group">
|
|
75
|
+
<Icon name="icon-display-about-ably-col" size="2.5rem" />
|
|
76
|
+
<div className="flex flex-col justify-center">
|
|
77
|
+
<p className="ui-meganav-media-heading">About Ably</p>
|
|
78
|
+
<p className="ui-meganav-media-copy">Find out more about Ably’s mission.</p>
|
|
79
|
+
</div>
|
|
80
|
+
</a>
|
|
81
|
+
</li>
|
|
82
|
+
<li>
|
|
83
|
+
<a href={absUrl("/careers")} className="ui-meganav-media-with-image group">
|
|
84
|
+
<Icon name="icon-display-careers-col" size="2.5rem" />
|
|
85
|
+
<div className="flex flex-col justify-center">
|
|
86
|
+
<p className="ui-meganav-media-heading">Careers</p>
|
|
87
|
+
<p className="ui-meganav-media-copy">Discover our open roles and core Ably values.</p>
|
|
88
|
+
</div>
|
|
89
|
+
</a>
|
|
90
|
+
</li>
|
|
91
|
+
</ul>
|
|
92
|
+
</div>
|
|
93
|
+
|
|
94
|
+
<BlogPostsList absUrl={absUrl} />
|
|
95
|
+
</section>
|
|
96
|
+
<div className="ui-meganav-content-spacer"></div>
|
|
97
|
+
</div>
|
|
98
|
+
);
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
MeganavContentCompany.propTypes = {
|
|
102
|
+
absUrl: T.func,
|
|
103
|
+
paths: T.shape({
|
|
104
|
+
awsLogo: T.string,
|
|
105
|
+
}),
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export default MeganavContentCompany;
|
|
@@ -1,83 +1,104 @@
|
|
|
1
|
-
<
|
|
2
|
-
<div>
|
|
3
|
-
|
|
4
|
-
<div class="
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
<div class="flex max-w-screen-xl mx-auto">
|
|
2
|
+
<div class="ui-meganav-content-spacer"></div>
|
|
3
|
+
<section class="grid grid-cols-12 ui-grid-gap-x w-full">
|
|
4
|
+
<div class="col-span-full md:col-span-4 pt-24 md:py-24 lg:py-32 px-24 sm:px-32 md:pl-0 md:pr-24">
|
|
5
|
+
<h3 class="ui-meganav-overline uppercase" id="meganav-developers-panel-explore">
|
|
6
|
+
Explore
|
|
7
|
+
</h3>
|
|
8
|
+
<ul aria-labelledby="meganav-developers-panel-explore">
|
|
9
|
+
<li>
|
|
10
|
+
<%= link_to abs_url("/docs"), class: "ui-meganav-media-with-image group" do %>
|
|
11
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-docs-col", size: "2.5rem")) %>
|
|
12
|
+
<div class="flex flex-col justify-center">
|
|
13
|
+
<p class="ui-meganav-media-heading">Documentation</p>
|
|
14
|
+
<p class="ui-meganav-media-copy">Technical guides to help you build with Ably.</p>
|
|
15
|
+
</div>
|
|
16
|
+
<% end %>
|
|
17
|
+
</li>
|
|
18
|
+
<li>
|
|
19
|
+
<%= link_to abs_url("/docs/key-concepts"), class: "ui-meganav-media-with-image group" do %>
|
|
20
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-lightbulb-col", size: "2.5rem")) %>
|
|
21
|
+
<div class="flex flex-col justify-center">
|
|
22
|
+
<p class="ui-meganav-media-heading">Concepts</p>
|
|
23
|
+
<p class="ui-meganav-media-copy">Read about core Ably platform concepts.</p>
|
|
24
|
+
</div>
|
|
25
|
+
<% end %>
|
|
26
|
+
</li>
|
|
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")) %>
|
|
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>
|
|
33
|
+
</div>
|
|
34
|
+
<% end %>
|
|
35
|
+
</li>
|
|
36
|
+
</ul>
|
|
9
37
|
</div>
|
|
10
|
-
<p class="text-p1 font-medium text-cool-black mb-20">
|
|
11
|
-
Docs, quick start guides, tutorials, and API reference to help you start building with Ably’s platform and APIs.
|
|
12
|
-
</p>
|
|
13
38
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
<% end %>
|
|
37
|
-
</li>
|
|
38
|
-
<li>
|
|
39
|
-
<%= link_to abs_url("/periodic-table-of-realtime"), class: "ui-meganav-media group" do %>
|
|
40
|
-
<p class="ui-meganav-media-heading">The Periodic Table of Realtime</p>
|
|
41
|
-
<p class="ui-meganav-media-copy">A compendium for all things realtime and event-driven.</p>
|
|
42
|
-
<% end %>
|
|
43
|
-
</li>
|
|
44
|
-
</ul>
|
|
45
|
-
</div>
|
|
46
|
-
|
|
47
|
-
<div>
|
|
48
|
-
<h3 class="ui-meganav-overline uppercase" id="meganav-developers-panel-quick-links">Quick links</h3>
|
|
49
|
-
<ul aria-labelledby="meganav-developers-panel-quick-links">
|
|
50
|
-
<li>
|
|
51
|
-
<%= link_to abs_url("/download"), class: "group ui-meganav-media py-12" do %>
|
|
52
|
-
<p class="ui-meganav-media-heading">Download an SDK</p>
|
|
53
|
-
<% end %>
|
|
54
|
-
</li>
|
|
55
|
-
|
|
56
|
-
<li>
|
|
57
|
-
<a href="https://changelog.ably.com/" class="group ui-meganav-media py-12">
|
|
58
|
-
<p class="ui-meganav-media-heading">Platform changelog</p>
|
|
59
|
-
</a>
|
|
60
|
-
</li>
|
|
61
|
-
|
|
62
|
-
<li>
|
|
63
|
-
<%= link_to abs_url("/support"), class: "group ui-meganav-media py-12" do %>
|
|
64
|
-
<p class="ui-meganav-media-heading">Support & FAQs</p>
|
|
65
|
-
<% end %>
|
|
66
|
-
</li>
|
|
39
|
+
<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">
|
|
40
|
+
<ul class="md:mt-40" aria-labelledby="meganav-developers-panel-explore">
|
|
41
|
+
<li>
|
|
42
|
+
<%= link_to abs_url("/download"), class: "ui-meganav-media-with-image group" do %>
|
|
43
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-sdks-col", size: "2.5rem")) %>
|
|
44
|
+
<div class="flex flex-col justify-center">
|
|
45
|
+
<p class="ui-meganav-media-heading">SDKs</p>
|
|
46
|
+
<p class="ui-meganav-media-copy">Download an SDK to help you build realtime apps faster.</p>
|
|
47
|
+
</div>
|
|
48
|
+
<% end %>
|
|
49
|
+
</li>
|
|
50
|
+
<li>
|
|
51
|
+
<%= link_to abs_url("/tutorials"), class: "ui-meganav-media-with-image group" do %>
|
|
52
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-tutorials-demos-col", size: "2.5rem")) %>
|
|
53
|
+
<div class="flex flex-col justify-center">
|
|
54
|
+
<p class="ui-meganav-media-heading">Tutorials & Demos</p>
|
|
55
|
+
<p class="ui-meganav-media-copy">Get stuck in with our hands-on resources. </p>
|
|
56
|
+
</div>
|
|
57
|
+
<% end %>
|
|
58
|
+
</li>
|
|
59
|
+
</ul>
|
|
60
|
+
</div>
|
|
67
61
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
62
|
+
<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">
|
|
63
|
+
<h3 class="ui-meganav-overline uppercase" id="meganav-developers-panel-quick-links">
|
|
64
|
+
Quick links
|
|
65
|
+
</h3>
|
|
66
|
+
<ul aria-labelledby="meganav-developers-panel-quick-links">
|
|
67
|
+
<li>
|
|
68
|
+
<%= link_to "https://discord.gg/jwBPhEZ9g5", class: "group ui-meganav-media py-12" do %>
|
|
69
|
+
<p class="ui-meganav-media-heading">Discord</p>
|
|
70
|
+
<% end %>
|
|
71
|
+
</li>
|
|
72
|
+
<li>
|
|
73
|
+
<%= link_to "https://github.com/ably", class: "group ui-meganav-media py-12" do %>
|
|
74
|
+
<p class="ui-meganav-media-heading">Github</p>
|
|
75
|
+
<% end %>
|
|
76
|
+
</li>
|
|
77
|
+
<li>
|
|
78
|
+
<%= link_to "https://changelog.ably.com/", class: "group ui-meganav-media py-12" do %>
|
|
79
|
+
<p class="ui-meganav-media-heading">Changelog</p>
|
|
80
|
+
<% end %>
|
|
81
|
+
</li>
|
|
82
|
+
<li>
|
|
83
|
+
<a href="https://status.ably.com/" class="group ui-meganav-media py-12">
|
|
84
|
+
<p class="ui-meganav-media-heading">
|
|
85
|
+
Status<iframe
|
|
86
|
+
src="https://status.ably.com/embed/icon"
|
|
87
|
+
allowtransparency="true"
|
|
88
|
+
frameborder="0"
|
|
89
|
+
scrolling="no"
|
|
90
|
+
class="w-24 h-24 ml-4 border-none pointer-events-none align-middle"
|
|
91
|
+
></iframe>
|
|
92
|
+
</p>
|
|
93
|
+
</a>
|
|
94
|
+
</li>
|
|
95
|
+
<li>
|
|
96
|
+
<%= link_to abs_url("/support"), class: "group ui-meganav-media py-12" do %>
|
|
97
|
+
<p class="ui-meganav-media-heading">Support & FAQs</p>
|
|
98
|
+
<% end %>
|
|
99
|
+
</li>
|
|
100
|
+
</ul>
|
|
101
|
+
</div>
|
|
102
|
+
</section>
|
|
103
|
+
<div class="ui-meganav-content-spacer"></div>
|
|
104
|
+
</div>
|