@ably/ui 8.7.0-dev.7706f12 → 8.7.0-dev.779bcfa
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/README.md +7 -3
- package/core/Code/component.css +2 -0
- package/core/Code/component.js +1 -1
- package/core/Code.jsx +108 -88
- package/core/CompanyAutocomplete/component.js +1 -1
- package/core/ConnectStateWrapper/component.js +1 -1
- package/core/ConnectStateWrapper.jsx +7 -7
- package/core/ContactFooter/component.js +1 -1
- package/core/ContactFooter.jsx +12 -12
- package/core/CookieMessage/component.js +1 -1
- package/core/CookieMessage.jsx +10 -10
- package/core/CustomerLogos/component.js +1 -1
- package/core/CustomerLogos.jsx +7 -7
- package/core/DropdownMenu/component.js +1 -1
- package/core/DropdownMenu.jsx +11 -11
- package/core/FeatureFooter/component.js +1 -1
- package/core/FeaturedLink/component.css +1 -1
- package/core/FeaturedLink/component.js +1 -1
- package/core/FeaturedLink.jsx +10 -10
- package/core/Flash/component.js +1 -1
- package/core/Flash.jsx +19 -19
- package/core/Footer/component.css +2 -2
- package/core/Footer/component.js +1 -1
- package/core/Footer.jsx +44 -44
- package/core/Icon/component.js +1 -1
- package/core/Icon.jsx +7 -7
- package/core/Loader/component.js +1 -1
- package/core/Loader.jsx +7 -7
- package/core/Logo/component.js +1 -1
- package/core/Logo.jsx +7 -7
- package/core/Meganav/component.css +8 -10
- package/core/Meganav/component.js +1 -1
- package/core/Meganav.jsx +223 -190
- package/core/MeganavBlogPostsList/component.js +1 -1
- package/core/MeganavBlogPostsList.jsx +13 -13
- package/core/MeganavContentCompany/component.js +1 -1
- package/core/MeganavContentCompany.jsx +39 -27
- package/core/MeganavContentDevelopers/component.js +1 -1
- package/core/MeganavContentDevelopers.jsx +30 -17
- package/core/MeganavContentPlatform/component.js +1 -1
- package/core/MeganavContentPlatform.jsx +23 -23
- package/core/MeganavContentUseCases/component.js +1 -1
- package/core/MeganavContentUseCases.jsx +62 -54
- package/core/MeganavContentWhyAbly/component.js +22 -0
- package/core/MeganavContentWhyAbly.jsx +3279 -0
- package/core/MeganavControl/component.js +1 -1
- package/core/MeganavControl.jsx +10 -10
- package/core/MeganavControlMobileDropdown/component.js +1 -1
- package/core/MeganavControlMobileDropdown.jsx +11 -11
- package/core/MeganavControlMobilePanelClose/component.js +1 -1
- package/core/MeganavControlMobilePanelClose.jsx +10 -10
- package/core/MeganavControlMobilePanelOpen/component.js +1 -1
- package/core/MeganavControlMobilePanelOpen.jsx +10 -10
- package/core/MeganavItemsDesktop/component.js +1 -1
- package/core/MeganavItemsDesktop.jsx +16 -16
- package/core/MeganavItemsMobile/component.js +1 -1
- package/core/MeganavItemsMobile.jsx +39 -39
- package/core/MeganavItemsSignedIn/component.js +1 -1
- package/core/MeganavItemsSignedIn.jsx +33 -33
- package/core/MeganavSearch/component.js +1 -1
- package/core/MeganavSearch.jsx +23 -23
- package/core/MeganavSearchAutocomplete/component.js +1 -1
- package/core/MeganavSearchAutocomplete.jsx +4 -4
- package/core/MeganavSearchPanel/component.js +1 -1
- package/core/MeganavSearchPanel.jsx +19 -19
- package/core/MeganavSearchSuggestions/component.js +1 -1
- package/core/MeganavSearchSuggestions.jsx +13 -13
- package/core/Notice/component.css +1 -1
- package/core/Notice/component.js +1 -1
- package/core/Notice.jsx +32 -32
- package/core/Showcase/component.js +1 -1
- package/core/Showcase.jsx +1 -1
- package/core/SignOutLink/component.js +1 -1
- package/core/SignOutLink.jsx +7 -7
- package/core/Slider/component.js +1 -1
- package/core/Slider.jsx +14 -14
- package/core/Uptime/component.js +1 -1
- package/core/Uptime.jsx +15 -15
- package/core/fonts/jetBrains-mono.css +3 -0
- package/core/fonts/manrope.css +3 -0
- package/core/scripts.js +1 -1
- package/core/sprites.svg +64 -0
- package/core/styles.css +122 -94
- package/package.json +1 -1
- package/reset/scripts.js +1 -1
- package/reset/styles.css +1 -11
- package/src/core/FeaturedLink/component.css +1 -1
- package/src/core/Footer/component.css +2 -2
- package/src/core/Footer/component.html.erb +22 -22
- package/src/core/Footer/component.jsx +26 -26
- package/src/core/Meganav/component.css +8 -8
- package/src/core/MeganavContentCompany/component.html.erb +9 -0
- package/src/core/MeganavContentCompany/component.jsx +9 -0
- package/src/core/MeganavContentDevelopers/component.html.erb +10 -3
- package/src/core/MeganavContentDevelopers/component.jsx +11 -1
- package/src/core/MeganavContentPlatform/component.html.erb +6 -6
- package/src/core/MeganavContentPlatform/component.jsx +7 -7
- package/src/core/MeganavContentUseCases/component.html.erb +42 -38
- package/src/core/MeganavContentUseCases/component.jsx +41 -38
- package/src/core/Notice/component.css +1 -1
- package/src/core/Notice/component.html.erb +2 -2
- package/src/core/Notice/component.jsx +2 -2
- package/src/core/fonts/jetBrains-mono.css +3 -0
- package/src/core/fonts/manrope.css +3 -0
- package/src/core/icons/icon-display-data-broadcast-col.svg +26 -0
- package/src/core/icons/icon-display-data-synchronization-col.svg +14 -0
- package/src/core/icons/icon-display-events-col.svg +13 -0
- package/src/core/icons/icon-display-kafka-at-the-edge-col.svg +8 -0
- package/src/core/icons/icon-display-push-notifications-col.svg +6 -0
- package/src/core/icons/icon-tech-apachekafka.svg +3 -0
- package/src/core/styles/buttons.css +5 -5
- package/src/core/styles/forms.css +5 -5
- package/src/core/styles/properties.css +47 -31
- package/src/core/styles/text.css +65 -47
- package/src/core/utils/syntax-highlighter-registry.js +2 -0
- package/src/core/utils/syntax-highlighter.css +2 -0
- package/src/core/utils/syntax-highlighter.js +5 -0
- package/tailwind.config.js +42 -26
- package/core/.DS_Store +0 -0
- package/core/DropdownMenuPreview/component.js +0 -6
- package/core/DropdownMenuPreview.jsx +0 -6
- package/src/.DS_Store +0 -0
- package/src/core/.DS_Store +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<footer class="bg-light-grey font-
|
|
1
|
+
<footer class="bg-light-grey font-manrope 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">
|
|
@@ -87,9 +87,9 @@
|
|
|
87
87
|
<li class="p-menu-row-snug">
|
|
88
88
|
<%= link_to 'SDKs', abs_url("/download"), class: "ui-footer-menu-row-link" %>
|
|
89
89
|
</li>
|
|
90
|
-
<li class="p-menu-row-snug flex items-center">
|
|
90
|
+
<li class="p-menu-row-snug flex items-center -mt-4">
|
|
91
91
|
<a class="pr-8 ui-footer-menu-row-link" href="https://status.ably.com/">System status</a>
|
|
92
|
-
<iframe class="w-
|
|
92
|
+
<iframe class="w-20 h-20 mb-2" src="https://status.ably.com/embed/icon" allowtransparency="true" frameborder="0" scrolling="no"></iframe>
|
|
93
93
|
</li>
|
|
94
94
|
</ul>
|
|
95
95
|
</div>
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
<hr class="border-t border-mid-grey my-0"/>
|
|
148
148
|
</div>
|
|
149
149
|
<%# Twitter + Glassdoor SM * above + Glassdoor XS + Badges %>
|
|
150
|
-
<div class="max-w-screen-xl mx-auto py-
|
|
150
|
+
<div class="max-w-screen-xl mx-auto py-16 grid ui-grid-gap ui-grid-px sm:grid-cols-2">
|
|
151
151
|
<div class="md:flex md:items-center">
|
|
152
152
|
<div class="flex flex-col md:flex-row flex-auto ml-8 sm:col-span-1 md:col-span-2">
|
|
153
153
|
<div class="">
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
>
|
|
181
181
|
<%= render(AblyUi::Core::Icon.new(name: "glassdoor", size: "1.5rem")) %>
|
|
182
182
|
</a>
|
|
183
|
-
<div class="pl-16 text-menu3 font-
|
|
183
|
+
<div class="pl-16 text-menu3 font-manrope font-medium">
|
|
184
184
|
<strong class="block font-medium">We're hiring!</strong>
|
|
185
185
|
<a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" class="ui-footer-link">
|
|
186
186
|
Learn more at Glassdoor
|
|
@@ -194,13 +194,13 @@
|
|
|
194
194
|
<div class="border-t border-mid-grey w-full"></div>
|
|
195
195
|
<div class="flex py-24">
|
|
196
196
|
<a
|
|
197
|
-
class="h-24 pr-
|
|
197
|
+
class="h-24 pr-16 text-cool-black hover:text-icon-glassdoor"
|
|
198
198
|
href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm"
|
|
199
199
|
title="Ably reviews on glassdoor"
|
|
200
200
|
>
|
|
201
201
|
<%= render(AblyUi::Core::Icon.new(name: "glassdoor", size: "1.5rem")) %>
|
|
202
202
|
</a>
|
|
203
|
-
<div class="text-menu3 font-
|
|
203
|
+
<div class="text-menu3 font-manrope font-medium">
|
|
204
204
|
<strong class="block font-medium">We're hiring!</strong>
|
|
205
205
|
<a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" class="ui-footer-link">
|
|
206
206
|
Learn more at Glassdoor
|
|
@@ -210,9 +210,9 @@
|
|
|
210
210
|
</div>
|
|
211
211
|
</div>
|
|
212
212
|
<div class="col-span-full sm:col-span-1 inline-flex sm:ml-auto sm:items-center">
|
|
213
|
-
<%= image_tag(highest_user_adoption, alt: "Highest User Adoption 2022", class: "mr-24
|
|
214
|
-
<%= image_tag(users_love_us, alt: "Users Love Us", class: "mr-24
|
|
215
|
-
<%= image_tag(highest_performer, alt: "High Performer 2022", class: "mr-24
|
|
213
|
+
<%= image_tag(highest_user_adoption, alt: "Highest User Adoption 2022", class: "mr-24 h-80") %>
|
|
214
|
+
<%= image_tag(users_love_us, alt: "Users Love Us", class: "mr-24 h-80") %>
|
|
215
|
+
<%= image_tag(highest_performer, alt: "High Performer 2022", class: "mr-24 h-80") %>
|
|
216
216
|
</div>
|
|
217
217
|
</div>
|
|
218
218
|
<div class="max-w-screen-xl ui-grid-px mx-auto">
|
|
@@ -227,33 +227,33 @@
|
|
|
227
227
|
<%= link_to 'Privacy', abs_url("/privacy"), class: "ui-footer-link" %>
|
|
228
228
|
</div>
|
|
229
229
|
</div>
|
|
230
|
-
<div class="xs:grid xs:grid-cols-2 sm:grid-cols-4 xs:pl-16 sm:pl-
|
|
230
|
+
<div class="xs:grid xs:grid-cols-2 sm:grid-cols-4 xs:pl-16 sm:pl-8 md:justify-items-end">
|
|
231
231
|
<div class="flex mr-24">
|
|
232
232
|
<%= 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
233
|
<div>
|
|
234
|
-
<p class="ui-footer-compliance-text font-
|
|
235
|
-
<p class="ui-footer-compliance-text font-
|
|
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>
|
|
236
236
|
</div>
|
|
237
237
|
</div>
|
|
238
238
|
<div class="flex mr-24 md:col-start-2">
|
|
239
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", color: "text-active-orange", size: "1.5rem", additional_css:"bg-white rounded-full mr-12")) %>
|
|
239
|
+
<%= 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
240
|
<div>
|
|
241
|
-
<p class="ui-footer-compliance-text font-
|
|
242
|
-
<p class="ui-footer-compliance-text font-
|
|
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>
|
|
243
243
|
</div>
|
|
244
244
|
</div>
|
|
245
245
|
<div class="flex mr-24 md:col-start-3">
|
|
246
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", color: "text-active-orange", size: "1.5rem", additional_css:"bg-white rounded-full mr-12")) %>
|
|
246
|
+
<%= 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
247
|
<div>
|
|
248
|
-
<p class="ui-footer-compliance-text font-
|
|
249
|
-
<p class="ui-footer-compliance-text font-
|
|
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>
|
|
250
250
|
</div>
|
|
251
251
|
</div>
|
|
252
252
|
<div class="flex mr-24 md:col-start-4">
|
|
253
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", color: "text-active-orange", size: "1.5rem", additional_css:"bg-white rounded-full mr-12")) %>
|
|
253
|
+
<%= 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
254
|
<div>
|
|
255
|
-
<p class="ui-footer-compliance-text font-
|
|
256
|
-
<p class="ui-footer-compliance-text font-
|
|
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>
|
|
257
257
|
</div>
|
|
258
258
|
</div>
|
|
259
259
|
</div>
|
|
@@ -8,15 +8,15 @@ 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-
|
|
11
|
+
<footer className="bg-light-grey font-manrope 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 col-span-full
|
|
16
|
+
<h2 className="text-overline2 font-jetbrains_mono font-bold col-span-full uppercase tracking-widen-0.16">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="text-p3 py-16 font-
|
|
19
|
+
<p className="font-manrope text-p3 py-16 font-bold 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>
|
|
@@ -144,12 +144,12 @@ export default function Footer({ paths, urlBase }) {
|
|
|
144
144
|
SDKs
|
|
145
145
|
</a>
|
|
146
146
|
</li>
|
|
147
|
-
<li className="p-menu-row-snug flex items-center">
|
|
147
|
+
<li className="p-menu-row-snug flex items-center -mt-4">
|
|
148
148
|
<a className="pr-8 ui-footer-menu-row-link" href="https://status.ably.com/">
|
|
149
149
|
System status
|
|
150
150
|
</a>
|
|
151
151
|
<iframe
|
|
152
|
-
className="w-
|
|
152
|
+
className="w-20 h-20 mb-2"
|
|
153
153
|
src="https://status.ably.com/embed/icon"
|
|
154
154
|
allowtransparency="true"
|
|
155
155
|
frameBorder="0"
|
|
@@ -240,8 +240,8 @@ export default function Footer({ paths, urlBase }) {
|
|
|
240
240
|
<div className="max-w-screen-xl ui-grid-px mx-auto">
|
|
241
241
|
<hr className="border-t border-mid-grey my-0" />
|
|
242
242
|
</div>
|
|
243
|
-
{/* Twitter + Glassdoor SM
|
|
244
|
-
<div className="max-w-screen-xl mx-auto py-
|
|
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
245
|
<div className="md:flex md:items-center">
|
|
246
246
|
<div className="flex flex-col md:flex-row flex-auto ml-8 sm:col-span-1 md:col-span-2">
|
|
247
247
|
<div className="">
|
|
@@ -274,7 +274,7 @@ export default function Footer({ paths, urlBase }) {
|
|
|
274
274
|
>
|
|
275
275
|
<Icon name="glassdoor" size="1.5rem" />
|
|
276
276
|
</a>
|
|
277
|
-
<div className="pl-16 text-menu3 font-
|
|
277
|
+
<div className="pl-16 text-menu3 font-manrope font-medium">
|
|
278
278
|
<strong className="block font-medium">We're hiring!</strong>
|
|
279
279
|
<a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" className="ui-footer-link">
|
|
280
280
|
Learn more at Glassdoor
|
|
@@ -288,13 +288,13 @@ export default function Footer({ paths, urlBase }) {
|
|
|
288
288
|
<div className="border-t border-mid-grey w-full"></div>
|
|
289
289
|
<div className="flex py-24">
|
|
290
290
|
<a
|
|
291
|
-
className="h-24 pr-
|
|
291
|
+
className="h-24 pr-16 text-cool-black hover:text-icon-glassdoor"
|
|
292
292
|
href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm"
|
|
293
293
|
title="Ably reviews on glassdoor"
|
|
294
294
|
>
|
|
295
295
|
<Icon name="glassdoor" size="1.5rem" />
|
|
296
296
|
</a>
|
|
297
|
-
<div className="text-menu3 font-
|
|
297
|
+
<div className="text-menu3 font-manrope font-medium">
|
|
298
298
|
<strong className="block font-medium">We're hiring!</strong>
|
|
299
299
|
<a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" className="ui-footer-link">
|
|
300
300
|
Learn more at Glassdoor
|
|
@@ -304,10 +304,10 @@ export default function Footer({ paths, urlBase }) {
|
|
|
304
304
|
</div>
|
|
305
305
|
</div>
|
|
306
306
|
|
|
307
|
-
<div className="col-span-full sm:col-span-1 inline-flex sm:ml-auto">
|
|
308
|
-
<img className="mr-24
|
|
309
|
-
<img className="mr-24
|
|
310
|
-
<img className="mr-24
|
|
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
311
|
</div>
|
|
312
312
|
</div>
|
|
313
313
|
|
|
@@ -331,33 +331,33 @@ export default function Footer({ paths, urlBase }) {
|
|
|
331
331
|
</a>
|
|
332
332
|
</div>
|
|
333
333
|
</div>
|
|
334
|
-
<div className="xs:grid xs:grid-cols-2 sm:grid-cols-4 xs:pl-16
|
|
334
|
+
<div className="xs:grid xs:grid-cols-2 sm:grid-cols-4 xs:pl-16 sm:pl-8 md:justify-items-end">
|
|
335
335
|
<div className="flex mr-24">
|
|
336
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
337
|
<div>
|
|
338
|
-
<p className="ui-footer-compliance-text font-
|
|
339
|
-
<p className="ui-footer-compliance-text font-
|
|
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>
|
|
340
340
|
</div>
|
|
341
341
|
</div>
|
|
342
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" />
|
|
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
344
|
<div>
|
|
345
|
-
<p className="ui-footer-compliance-text font-
|
|
346
|
-
<p className="ui-footer-compliance-text font-
|
|
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>
|
|
347
347
|
</div>
|
|
348
348
|
</div>
|
|
349
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" />
|
|
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
351
|
<div>
|
|
352
|
-
<p className="ui-footer-compliance-text font-
|
|
353
|
-
<p className="ui-footer-compliance-text font-
|
|
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>
|
|
354
354
|
</div>
|
|
355
355
|
</div>
|
|
356
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" />
|
|
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
358
|
<div>
|
|
359
|
-
<p className="ui-footer-compliance-text font-
|
|
360
|
-
<p className="ui-footer-compliance-text font-
|
|
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>
|
|
361
361
|
</div>
|
|
362
362
|
</div>
|
|
363
363
|
</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-
|
|
10
|
+
@apply antialiased font-manrope 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-
|
|
54
|
+
@apply text-menu2 font-bold block font-manrope;
|
|
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-medium block text-cool-black text-left;
|
|
66
|
+
@apply text-menu2 font-bold font-jetbrains_mono 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-
|
|
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;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
.ui-meganav-content {
|
|
@@ -93,19 +93,19 @@
|
|
|
93
93
|
grid-template-rows: min-content 1fr;
|
|
94
94
|
|
|
95
95
|
@apply block px-8 py-8 hover:bg-light-grey rounded relative -left-8 w-extend-8;
|
|
96
|
-
@apply grid gap-x-
|
|
96
|
+
@apply grid gap-x-16;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
.ui-meganav-media-heading {
|
|
100
|
-
@apply text-menu3 text-cool-black font-
|
|
100
|
+
@apply text-menu3 text-cool-black font-bold font-manrope group-hover:text-gui-hover group-focus:text-gui-focus;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
.ui-meganav-media-copy {
|
|
104
|
-
@apply text-p3 text-dark-grey
|
|
104
|
+
@apply text-p3 font-manrope font-medium text-dark-grey;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
.ui-meganav-overline {
|
|
108
|
-
@apply text-overline2 text-cool-black uppercase font-
|
|
108
|
+
@apply text-overline2 text-cool-black uppercase font-bold font-jetbrains_mono tracking-widen-0.16 p-overline;
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
.ui-meganav-hr {
|
|
@@ -72,6 +72,15 @@
|
|
|
72
72
|
</div>
|
|
73
73
|
<% end %>
|
|
74
74
|
</li>
|
|
75
|
+
<li>
|
|
76
|
+
<%= link_to abs_url("/events"), class: "ui-meganav-media-with-image group" do %>
|
|
77
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-events-col", size: "2.5rem")) %>
|
|
78
|
+
<div class="flex flex-col justify-center">
|
|
79
|
+
<p class="ui-meganav-media-heading">Events</p>
|
|
80
|
+
<p class="ui-meganav-media-copy">Join Ably at upcoming events.</p>
|
|
81
|
+
</div>
|
|
82
|
+
<% end %>
|
|
83
|
+
</li>
|
|
75
84
|
</ul>
|
|
76
85
|
</div>
|
|
77
86
|
|
|
@@ -88,6 +88,15 @@ const MeganavContentCompany = ({ paths, absUrl }) => {
|
|
|
88
88
|
</div>
|
|
89
89
|
</a>
|
|
90
90
|
</li>
|
|
91
|
+
<li>
|
|
92
|
+
<a href={absUrl("/events")} className="ui-meganav-media-with-image group">
|
|
93
|
+
<Icon name="icon-display-events-col" size="2.5rem" />
|
|
94
|
+
<div className="flex flex-col justify-center">
|
|
95
|
+
<p className="ui-meganav-media-heading">Events</p>
|
|
96
|
+
<p className="ui-meganav-media-copy">Join Ably at upcoming events.</p>
|
|
97
|
+
</div>
|
|
98
|
+
</a>
|
|
99
|
+
</li>
|
|
91
100
|
</ul>
|
|
92
101
|
</div>
|
|
93
102
|
|
|
@@ -35,7 +35,6 @@
|
|
|
35
35
|
</li>
|
|
36
36
|
</ul>
|
|
37
37
|
</div>
|
|
38
|
-
|
|
39
38
|
<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
39
|
<ul class="md:mt-40" aria-labelledby="meganav-developers-panel-explore">
|
|
41
40
|
<li>
|
|
@@ -65,11 +64,19 @@
|
|
|
65
64
|
</div>
|
|
66
65
|
<% end %>
|
|
67
66
|
</li>
|
|
67
|
+
<li>
|
|
68
|
+
<%= link_to abs_url("/reference-guide-multiplayer"), class: "ui-meganav-media-with-image group" do %>
|
|
69
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-multi-user-spaces-col", size: "2.5rem")) %>
|
|
70
|
+
<div class="flex flex-col justify-center">
|
|
71
|
+
<p class="ui-meganav-media-heading">Multiplayer reference guide</p>
|
|
72
|
+
<p class="ui-meganav-media-copy">Learn how to build collaborative features with Ably.</p>
|
|
73
|
+
</div>
|
|
74
|
+
<% end %>
|
|
75
|
+
</li>
|
|
68
76
|
</ul>
|
|
69
77
|
</div>
|
|
70
|
-
|
|
71
78
|
<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">
|
|
72
|
-
<h3 class="ui-meganav-overline uppercase" id=
|
|
79
|
+
<h3 class="ui-meganav-overline uppercase" id=meganav-developers-panel-quick-links">
|
|
73
80
|
Quick links
|
|
74
81
|
</h3>
|
|
75
82
|
<ul aria-labelledby="meganav-developers-panel-quick-links">
|
|
@@ -58,7 +58,7 @@ const MeganavContentDevelopers = ({ absUrl }) => (
|
|
|
58
58
|
<Icon name="icon-display-tutorials-demos-col" size="2.5rem" />
|
|
59
59
|
<div className="flex flex-col justify-center">
|
|
60
60
|
<p className="ui-meganav-media-heading">Tutorials & Demos</p>
|
|
61
|
-
<p className="ui-meganav-media-copy">Get stuck in with our hands-on resources
|
|
61
|
+
<p className="ui-meganav-media-copy">Get stuck in with our hands-on resources.</p>
|
|
62
62
|
</div>
|
|
63
63
|
</a>
|
|
64
64
|
</li>
|
|
@@ -71,6 +71,15 @@ const MeganavContentDevelopers = ({ absUrl }) => (
|
|
|
71
71
|
</div>
|
|
72
72
|
</a>
|
|
73
73
|
</li>
|
|
74
|
+
<li>
|
|
75
|
+
<a href={absUrl("/reference-guide-multiplayer")} className="ui-meganav-media-with-image group">
|
|
76
|
+
<Icon name="icon-multi-user-spaces-col" size="2.5rem" />
|
|
77
|
+
<div className="flex flex-col justify-center">
|
|
78
|
+
<p className="ui-meganav-media-heading">Multiplayer reference guide</p>
|
|
79
|
+
<p className="ui-meganav-media-copy">Learn how to build collaborative features with Ably.</p>
|
|
80
|
+
</div>
|
|
81
|
+
</a>
|
|
82
|
+
</li>
|
|
74
83
|
</ul>
|
|
75
84
|
</div>
|
|
76
85
|
|
|
@@ -99,6 +108,7 @@ const MeganavContentDevelopers = ({ absUrl }) => (
|
|
|
99
108
|
<p className="ui-meganav-media-heading">
|
|
100
109
|
Status
|
|
101
110
|
<iframe
|
|
111
|
+
title="Ably status"
|
|
102
112
|
src="https://status.ably.com/embed/icon"
|
|
103
113
|
allowtransparency="true"
|
|
104
114
|
frameBorder="0"
|
|
@@ -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 %>
|
|
@@ -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-
|
|
15
|
+
<p className="text-p2 font-bold 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>
|
|
@@ -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,49 +3,68 @@
|
|
|
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
|
-
|
|
6
|
+
Solutions
|
|
7
7
|
</h3>
|
|
8
8
|
<ul aria-labelledby="meganav-use-cases-panel-industry-use-cases">
|
|
9
|
+
|
|
9
10
|
<li>
|
|
10
|
-
<%= link_to abs_url("/solutions/
|
|
11
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-
|
|
11
|
+
<%= link_to abs_url("/solutions/chat"), class: "ui-meganav-media-with-image group" do %>
|
|
12
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-chat-stack-col", size: "2.5rem")) %>
|
|
12
13
|
<div class="flex flex-col justify-center">
|
|
13
|
-
<p class="ui-meganav-media-heading">Live
|
|
14
|
-
<p class="ui-meganav-media-copy">Deliver
|
|
14
|
+
<p class="ui-meganav-media-heading">Live Chat</p>
|
|
15
|
+
<p class="ui-meganav-media-copy">Deliver highly reliable chat experiences at scale.</p>
|
|
15
16
|
</div>
|
|
16
17
|
<% end %>
|
|
17
18
|
</li>
|
|
18
19
|
<li>
|
|
19
|
-
<%= link_to abs_url("/solutions/
|
|
20
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-
|
|
20
|
+
<%= link_to abs_url("/solutions/multiplayer-collaboration"), class: "ui-meganav-media-with-image group" do %>
|
|
21
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-multi-user-spaces-col", size: "2.5rem")) %>
|
|
21
22
|
<div class="flex flex-col justify-center">
|
|
22
|
-
<p class="ui-meganav-media-heading">
|
|
23
|
-
<p class="ui-meganav-media-copy">
|
|
23
|
+
<p class="ui-meganav-media-heading">Multiplayer Collaboration</p>
|
|
24
|
+
<p class="ui-meganav-media-copy">Bring collaborative multiplayer experiences to your users.</p>
|
|
24
25
|
</div>
|
|
25
26
|
<% end %>
|
|
26
27
|
</li>
|
|
27
28
|
<li>
|
|
28
|
-
<%= link_to abs_url("/solutions/
|
|
29
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-display-
|
|
29
|
+
<%= link_to abs_url("/solutions/data-broadcast"), class: "ui-meganav-media-with-image group" do %>
|
|
30
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-data-broadcast-col", size: "2.5rem")) %>
|
|
30
31
|
<div class="flex flex-col justify-center">
|
|
31
|
-
<p class="ui-meganav-media-heading">
|
|
32
|
-
<p class="ui-meganav-media-copy">
|
|
32
|
+
<p class="ui-meganav-media-heading">Data Broadcast</p>
|
|
33
|
+
<p class="ui-meganav-media-copy">Broadcast realtime event data to millions of devices around the globe.</p>
|
|
33
34
|
</div>
|
|
34
35
|
<% end %>
|
|
35
36
|
</li>
|
|
36
37
|
<li>
|
|
37
|
-
<%= link_to abs_url("/solutions/
|
|
38
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-
|
|
38
|
+
<%= link_to abs_url("/solutions/data-synchronization"), class: "ui-meganav-media-with-image group" do %>
|
|
39
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-data-synchronization-col", size: "2.5rem")) %>
|
|
39
40
|
<div class="flex flex-col justify-center">
|
|
40
|
-
<p class="ui-meganav-media-heading">
|
|
41
|
-
<p class="ui-meganav-media-copy">
|
|
41
|
+
<p class="ui-meganav-media-heading">Data Synchronization</p>
|
|
42
|
+
<p class="ui-meganav-media-copy">Keep your frontend and backend in realtime sync, at global scale.</p>
|
|
43
|
+
</div>
|
|
44
|
+
<% end %>
|
|
45
|
+
</li>
|
|
46
|
+
<li>
|
|
47
|
+
<%= link_to abs_url("/push-notifications"), class: "ui-meganav-media-with-image group" do %>
|
|
48
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-push-notifications-col", size: "2.5rem")) %>
|
|
49
|
+
<div class="flex flex-col justify-center">
|
|
50
|
+
<p class="ui-meganav-media-heading">Notifications</p>
|
|
51
|
+
<p class="ui-meganav-media-copy">Deliver cross-platform push notifications with a simple unified API.</p>
|
|
52
|
+
</div>
|
|
53
|
+
<% end %>
|
|
54
|
+
</li>
|
|
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")) %>
|
|
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>
|
|
42
61
|
</div>
|
|
43
62
|
<% end %>
|
|
44
63
|
</li>
|
|
45
64
|
</ul>
|
|
46
65
|
</div>
|
|
47
66
|
|
|
48
|
-
<div class="col-span-full md:col-span-4 pt-24 pb-
|
|
67
|
+
<div class="col-span-full md:col-span-4 pt-24 pb-0 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white">
|
|
49
68
|
<h3 class="ui-meganav-overline" id="meganav-use-cases-panel-industry">
|
|
50
69
|
Industry
|
|
51
70
|
</h3>
|
|
@@ -80,6 +99,11 @@
|
|
|
80
99
|
<p class="ui-meganav-media-copy">Provide trustworthy, HIPAA-compliant realtime apps.</p>
|
|
81
100
|
<% end %>
|
|
82
101
|
</li>
|
|
102
|
+
</ul>
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
<div class="col-span-full md:col-span-4 pt-0 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white">
|
|
106
|
+
<ul aria-labelledby="meganav-use-cases-panel-solutions" class="mt-0 md:mt-40">
|
|
83
107
|
<li>
|
|
84
108
|
<%= link_to abs_url("/solutions/ecommerce-and-retail"), class: "ui-meganav-media group" do %>
|
|
85
109
|
<p class="ui-meganav-media-heading">eCommerce & Retail</p>
|
|
@@ -106,26 +130,6 @@
|
|
|
106
130
|
</li>
|
|
107
131
|
</ul>
|
|
108
132
|
</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
133
|
</section>
|
|
130
134
|
<div class="ui-meganav-content-spacer"></div>
|
|
131
135
|
</div>
|