ably-ui 8.2.1.dev.611f3bd → 8.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/ably_ui/core/core.rb +0 -4
- data/lib/ably_ui/core/images/blog-thumb1.jpg +0 -0
- data/lib/ably_ui/core/images/blog-thumb2.jpg +0 -0
- data/lib/ably_ui/core/images/blog-thumb3.jpg +0 -0
- data/lib/ably_ui/core/meganav/component.css +1 -11
- data/lib/ably_ui/core/meganav/component.js +1 -1
- data/lib/ably_ui/core/meganav/component.json +4 -4
- data/lib/ably_ui/core/meganav/meganav.rb +4 -8
- data/lib/ably_ui/core/meganav_blog_posts_list/component.js +1 -1
- data/lib/ably_ui/core/meganav_blog_posts_list/meganav_blog_posts_list.html.erb +4 -4
- data/lib/ably_ui/core/meganav_content_developers/meganav_content_developers.html.erb +80 -101
- data/lib/ably_ui/core/meganav_content_platform/meganav_content_platform.html.erb +91 -95
- data/lib/ably_ui/core/meganav_content_use_cases/meganav_content_use_cases.html.erb +83 -112
- data/lib/ably_ui/core/{meganav_content_company → meganav_content_why_ably}/component.js +1 -1
- data/lib/ably_ui/core/meganav_content_why_ably/meganav_content_why_ably.html.erb +70 -0
- data/lib/ably_ui/core/{meganav_content_company/meganav_content_company.rb → meganav_content_why_ably/meganav_content_why_ably.rb} +1 -2
- data/lib/ably_ui/core/meganav_control/component.js +1 -1
- data/lib/ably_ui/core/meganav_control/meganav_control.html.erb +1 -1
- data/lib/ably_ui/core/meganav_control/meganav_control.rb +2 -8
- data/lib/ably_ui/core/meganav_control_mobile_panel_close/meganav_control_mobile_panel_close.html.erb +2 -4
- data/lib/ably_ui/core/meganav_control_mobile_panel_close/meganav_control_mobile_panel_close.rb +1 -4
- data/lib/ably_ui/core/meganav_items_desktop/meganav_items_desktop.html.erb +3 -4
- data/lib/ably_ui/core/meganav_items_desktop/meganav_items_desktop.rb +0 -8
- data/lib/ably_ui/core/meganav_items_mobile/meganav_items_mobile.html.erb +1 -1
- data/lib/ably_ui/core/meganav_items_mobile/meganav_items_mobile.rb +0 -4
- data/lib/ably_ui/core/meganav_items_signed_in/meganav_items_signed_in.html.erb +1 -1
- data/lib/ably_ui/core/sprites.svg +0 -141
- data/lib/ably_ui/core/styles.css +0 -4
- data/lib/ably_ui/version.rb +1 -1
- metadata +15 -15
- data/lib/ably_ui/core/images/icon-tech-aws.svg +0 -4
- data/lib/ably_ui/core/meganav_content_company/meganav_content_company.html.erb +0 -81
- data/lib/ably_ui/react/connect_state_wrapper/component.js +0 -1
- data/lib/ably_ui/react/scripts.js +0 -1
@@ -0,0 +1,70 @@
|
|
1
|
+
<section class="ui-meganav-content ui-grid-gap md:grid-cols-3">
|
2
|
+
<div>
|
3
|
+
<h3 class="ui-meganav-overline" id="meganav-why-ably-panel-list-why-companies">Why companies choose Ably</h3>
|
4
|
+
<ul aria-labelledby="meganav-why-ably-panel-list-why-companies">
|
5
|
+
<li>
|
6
|
+
<%= link_to abs_url("/customers"), class: "group ui-meganav-media py-12" do %>
|
7
|
+
<p class="ui-meganav-media-heading">Customers</p>
|
8
|
+
<% end %>
|
9
|
+
</li>
|
10
|
+
|
11
|
+
<li>
|
12
|
+
<%= link_to abs_url("/case-studies"), class: "group ui-meganav-media py-12" do %>
|
13
|
+
<p class="ui-meganav-media-heading">Case studies</p>
|
14
|
+
<% end %>
|
15
|
+
</li>
|
16
|
+
|
17
|
+
<li>
|
18
|
+
<%= link_to abs_url("/compare"), class: "group ui-meganav-media py-12" do %>
|
19
|
+
<p class="ui-meganav-media-heading">Compare our tech</p>
|
20
|
+
<% end %>
|
21
|
+
</li>
|
22
|
+
|
23
|
+
<li>
|
24
|
+
<%= link_to abs_url("/aws"), class: "group ui-meganav-media py-12" do %>
|
25
|
+
<p class="ui-meganav-media-heading">Ably & AWS</p>
|
26
|
+
<% end %>
|
27
|
+
</li>
|
28
|
+
|
29
|
+
<li>
|
30
|
+
<%= link_to abs_url("/resources"), class: "group ui-meganav-media py-12" do %>
|
31
|
+
<p class="ui-meganav-media-heading">Resources</p>
|
32
|
+
<% end %>
|
33
|
+
</li>
|
34
|
+
</ul>
|
35
|
+
</div>
|
36
|
+
|
37
|
+
<div>
|
38
|
+
<h3 class="ui-meganav-overline" id="meganav-why-ably-panel-list-four-pillars">Four pillars of dependability</h3>
|
39
|
+
<ul class="mb-8" aria-labelledby="meganav-why-ably-panel-list-four-pillars">
|
40
|
+
<li>
|
41
|
+
<%= link_to abs_url("/four-pillars-of-dependability#performance"), class: "ui-meganav-media group" do %>
|
42
|
+
<p class="ui-meganav-media-heading">Predictable performance</p>
|
43
|
+
<p class="ui-meganav-media-copy">A low-latency global edge network across 200+ PoPs.</p>
|
44
|
+
<% end %>
|
45
|
+
</li>
|
46
|
+
<li>
|
47
|
+
<%= link_to abs_url("/four-pillars-of-dependability#integrity"), class: "ui-meganav-media group" do %>
|
48
|
+
<p class="ui-meganav-media-heading">Guaranteed ordering & delivery</p>
|
49
|
+
<p class="ui-meganav-media-copy">We guarantee in-order data delivery, even after disconnections.</p>
|
50
|
+
<% end %>
|
51
|
+
</li>
|
52
|
+
<li>
|
53
|
+
<%= link_to abs_url("/four-pillars-of-dependability#reliability"), class: "ui-meganav-media group" do %>
|
54
|
+
<p class="ui-meganav-media-heading">Fault tolerant infrastructure</p>
|
55
|
+
<p class="ui-meganav-media-copy">Redundant at regional and global levels with 99.999% uptime SLAs.</p>
|
56
|
+
<% end %>
|
57
|
+
</li>
|
58
|
+
<li>
|
59
|
+
<%= link_to abs_url("/four-pillars-of-dependability#availability"), class: "ui-meganav-media group" do %>
|
60
|
+
<p class="ui-meganav-media-heading">High scalability & availability</p>
|
61
|
+
<p class="ui-meganav-media-copy">Elastic, battle-tested global infrastructure for massive scale.</p>
|
62
|
+
<% end %>
|
63
|
+
</li>
|
64
|
+
</ul>
|
65
|
+
|
66
|
+
<%= render(AblyUi::Core::FeaturedLink.new(url: abs_url("/four-pillars-of-dependability"))) do %>Explore our Four Pillars of Dependability<% end %>
|
67
|
+
</div>
|
68
|
+
|
69
|
+
<%= render(AblyUi::Core::MeganavBlogPostsList.new(url_base: url_base)) %>
|
70
|
+
</section>
|
@@ -1 +1 @@
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AblyUi=t():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavControl=t())}(this,(function(){return(()=>{"use strict";var e={9581:(e,t,r)=>{r.d(t,{A:()=>n,n:()=>
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AblyUi=t():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavControl=t())}(this,(function(){return(()=>{"use strict";var e={9581:(e,t,r)=>{r.d(t,{A:()=>n,n:()=>i});var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return t.querySelector("[data-id=".concat(e,"]"))},i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return t.querySelectorAll("[data-id=".concat(e,"]"))}}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};return(()=>{r.d(n,{default:()=>i});var e=r(9581);function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}const i=function(){var r=Array.from((0,e.n)("meganav-control")),n=Array.from((0,e.n)("meganav-panel")),i=getComputedStyle(document.documentElement).getPropertyValue("--bp-md"),o=function(e){return"search"===e.dataset.control},a=function(e,n,o){if(window.matchMedia("(hover: hover) and (pointer: fine) and (min-width: ".concat(i,")")).matches&&!r.some((function(e){return e===document.activeElement}))&&!function(){var e=document.querySelector('[data-id="meganav-panel"]#panel-search');if(e)return!e.classList.contains("invisible")}()){var a,c=["invisible","visible"];(a=n.classList).replace.apply(a,function(e){if(Array.isArray(e))return t(e)}(u=o?c:c.reverse())||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(u)||function(e,r){if(e){if("string"==typeof e)return t(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,r):void 0}}(u)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),e.setAttribute("aria-expanded",o)}var u};return r.map((function(t){var i,c,u=t.parentNode,l=document.querySelector("#".concat(t.getAttribute("aria-controls"))),s=function(t,i){return function(){if(r.forEach((function(e){return e!==t&&e.setAttribute("aria-expanded",!1)})),n.forEach((function(e){return e!==i&&e.classList.replace("visible","invisible")})),"true"===t.getAttribute("aria-expanded")?(t.setAttribute("aria-expanded",!1),i.classList.replace("visible","invisible")):(t.setAttribute("aria-expanded",!0),i.classList.replace("invisible","visible")),o(t)){var a=(0,e.A)("meganav-search-input",i);if(!a)return;a.focus()}else t.focus()}}(t,l);return t.addEventListener("click",s),o(t)||(i=function(e,t){return function(){return a(e,t,!0)}}(t,l),c=function(e,t){return function(){return a(e,t,!1)}}(t,l),u.addEventListener("mouseenter",i),u.addEventListener("mouseleave",c)),[{teardown:function(){i&&c&&(u.removeEventListener("mouseenter",i),u.removeEventListener("mouseleave",c)),t.removeEventListener("click",s)},clear:function(){t.setAttribute("aria-expanded",!1),l.classList.replace("visible","invisible")}}]})).flat()}})(),n.default})()}));
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= button_tag(type: "button",
|
2
2
|
class: ["ui-meganav-link", "h-64", "flex", "items-center", "group", theme(:text_color), additional_css],
|
3
3
|
data: { id: "meganav-control" },
|
4
|
-
aria: { expanded: false, controls: aria_controls, label: "Show #{
|
4
|
+
aria: { expanded: false, controls: aria_controls, label: "Show #{content}" }) do -%>
|
5
5
|
<%= content -%><%= render(AblyUi::Core::Icon.new(name: "icon-gui-disclosure-arrow", size: "1.5rem", color: "text-cool-black", additional_css: "transform rotate-90 group-hover:text-gui-hover group-focus:text-gui-focus")) %>
|
6
6
|
<% end %>
|
@@ -2,16 +2,10 @@ module AblyUi
|
|
2
2
|
module Core
|
3
3
|
class MeganavControl < ViewComponent::Base
|
4
4
|
include AblyUi::Core::MeganavConfig
|
5
|
-
attr_reader :aria_controls, :
|
5
|
+
attr_reader :aria_controls, :additional_css
|
6
6
|
|
7
|
-
def initialize(
|
8
|
-
aria_controls:,
|
9
|
-
aria_label:,
|
10
|
-
theme_name:,
|
11
|
-
additional_css: ''
|
12
|
-
)
|
7
|
+
def initialize(aria_controls:, theme_name:, additional_css: '')
|
13
8
|
@aria_controls = aria_controls
|
14
|
-
@aria_label = aria_label
|
15
9
|
@additional_css = additional_css
|
16
10
|
theme_setup(theme_name)
|
17
11
|
end
|
data/lib/ably_ui/core/meganav_control_mobile_panel_close/meganav_control_mobile_panel_close.html.erb
CHANGED
@@ -2,11 +2,9 @@
|
|
2
2
|
<%= button_tag(type: "button",
|
3
3
|
class: "ui-meganav-mobile-link text-gui-default mb-16",
|
4
4
|
data: { id: "meganav-control-mobile-panel-close" },
|
5
|
-
aria: { expanded: false, controls: aria_controls, label: "Hide panel" }) do -%>
|
5
|
+
aria: { expanded: false, controls: @aria_controls, label: "Hide panel" }) do -%>
|
6
6
|
<%= render(AblyUi::Core::Icon.new(name: "icon-gui-disclosure-arrow", size: "1.5rem", color: "text-cool-black", additional_css: "relative -top-1 transform rotate-180")) %>
|
7
7
|
Back
|
8
8
|
<% end %>
|
9
|
-
|
10
|
-
<hr class="ui-meganav-hr" />
|
11
|
-
<% end %>
|
9
|
+
<hr class="ui-meganav-hr" />
|
12
10
|
</div>
|
data/lib/ably_ui/core/meganav_control_mobile_panel_close/meganav_control_mobile_panel_close.rb
CHANGED
@@ -1,11 +1,8 @@
|
|
1
1
|
module AblyUi
|
2
2
|
module Core
|
3
3
|
class MeganavControlMobilePanelClose < ViewComponent::Base
|
4
|
-
|
5
|
-
|
6
|
-
def initialize(aria_controls:, display_hr: true)
|
4
|
+
def initialize(aria_controls:)
|
7
5
|
@aria_controls = aria_controls
|
8
|
-
@display_hr = display_hr
|
9
6
|
end
|
10
7
|
end
|
11
8
|
end
|
@@ -1,12 +1,11 @@
|
|
1
1
|
<ul class="hidden md:flex" data-id="meganav-items-desktop">
|
2
2
|
<% panels.each do |panel| %>
|
3
3
|
<li class="ui-meganav-item">
|
4
|
-
<%= render(AblyUi::Core::MeganavControl.new(aria_controls: panel[:id],
|
5
|
-
|
6
|
-
<span class="lg:hidden"><%= panel[:short_label] %></span>
|
4
|
+
<%= render(AblyUi::Core::MeganavControl.new(aria_controls: panel[:id], theme_name: @theme_name)) do %>
|
5
|
+
<%= panel[:label] %>
|
7
6
|
<% end %>
|
8
7
|
|
9
|
-
<%= content_tag :div, class:
|
8
|
+
<%= content_tag :div, class: 'ui-meganav-panel invisible', data: { id: "meganav-panel" }, id: panel[:id] do %>
|
10
9
|
<%= render("AblyUi::Core::#{panel[:component]}".constantize.new(url_base: url_base)) %>
|
11
10
|
<% end %>
|
12
11
|
</li>
|
@@ -48,7 +48,7 @@
|
|
48
48
|
<% end %>
|
49
49
|
|
50
50
|
<%= content_tag(:div, class: "ui-meganav-panel-mobile hidden", id: "#{panel[:id]}-mobile", data: { scroll_lock_scrollable: true }) do %>
|
51
|
-
<%= render(AblyUi::Core::MeganavControlMobilePanelClose.new(aria_controls: "#{panel[:id]}-mobile"
|
51
|
+
<%= render(AblyUi::Core::MeganavControlMobilePanelClose.new(aria_controls: "#{panel[:id]}-mobile")) %>
|
52
52
|
<%= render("AblyUi::Core::#{panel[:component]}".constantize.new(url_base: url_base)) %>
|
53
53
|
<% end %>
|
54
54
|
</li>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<ul class="hidden md:flex items-center">
|
2
2
|
<li class="ui-meganav-item relative">
|
3
|
-
<%= render(AblyUi::Core::MeganavControl.new(aria_controls: "account-panel",
|
3
|
+
<%= render(AblyUi::Core::MeganavControl.new(aria_controls: "account-panel", theme_name: @theme_name, additional_css: "mr-0")) do %>
|
4
4
|
<%= account_name %>
|
5
5
|
<% end %>
|
6
6
|
|