ably-ui 4.2.0.dev.1a5533f
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.
- checksums.yaml +7 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +34 -0
- data/LICENSE +13 -0
- data/README.md +419 -0
- data/ably-ui.gemspec +22 -0
- data/lib/ably_ui/core/code/code.html.erb +3 -0
- data/lib/ably_ui/core/code/code.rb +11 -0
- data/lib/ably_ui/core/code/component.css +70 -0
- data/lib/ably_ui/core/code/component.js +1 -0
- data/lib/ably_ui/core/connect_state_wrapper/component.js +1 -0
- data/lib/ably_ui/core/contact_footer/component.css +12 -0
- data/lib/ably_ui/core/contact_footer/component.js +1 -0
- data/lib/ably_ui/core/contact_footer/contact_footer.html.erb +32 -0
- data/lib/ably_ui/core/contact_footer/contact_footer.rb +13 -0
- data/lib/ably_ui/core/cookie_message/component.css +14 -0
- data/lib/ably_ui/core/cookie_message/component.js +1 -0
- data/lib/ably_ui/core/core.rb +65 -0
- data/lib/ably_ui/core/feature_footer/component.css +13 -0
- data/lib/ably_ui/core/feature_footer/component.js +1 -0
- data/lib/ably_ui/core/feature_footer/feature_footer.html.erb +54 -0
- data/lib/ably_ui/core/feature_footer/feature_footer.rb +30 -0
- data/lib/ably_ui/core/featured_link/component.css +17 -0
- data/lib/ably_ui/core/featured_link/component.js +1 -0
- data/lib/ably_ui/core/featured_link/featured_link.html.erb +6 -0
- data/lib/ably_ui/core/featured_link/featured_link.rb +17 -0
- data/lib/ably_ui/core/flash/component.css +30 -0
- data/lib/ably_ui/core/flash/component.js +1 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Light-Italic.eot +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Light-Italic.otf +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Light-Italic.woff +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Light-Italic.woff2 +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Light.eot +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Light.otf +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Light.woff +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Light.woff2 +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Medium-Italic.eot +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Medium-Italic.otf +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Medium-Italic.woff +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Medium-Italic.woff2 +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Medium.eot +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Medium.otf +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Medium.woff +0 -0
- data/lib/ably_ui/core/fonts/NEXT-Book-Medium.woff2 +0 -0
- data/lib/ably_ui/core/fonts/next.css +59 -0
- data/lib/ably_ui/core/footer/component.css +14 -0
- data/lib/ably_ui/core/footer/component.js +1 -0
- data/lib/ably_ui/core/footer/footer.html.erb +190 -0
- data/lib/ably_ui/core/footer/footer.rb +14 -0
- data/lib/ably_ui/core/icon/component.css +1 -0
- data/lib/ably_ui/core/icon/component.js +1 -0
- data/lib/ably_ui/core/icon/icon.html.erb +3 -0
- data/lib/ably_ui/core/icon/icon.rb +25 -0
- data/lib/ably_ui/core/images/ably-logo.svg +15 -0
- data/lib/ably_ui/core/images/ably-stack.svg +14 -0
- 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/images/cust-logo-ao-col-pos.png +0 -0
- data/lib/ably_ui/core/images/cust-logo-ao-col-pos@2x.png +0 -0
- data/lib/ably_ui/core/images/cust-logo-ausopen-col-pos.png +0 -0
- data/lib/ably_ui/core/images/cust-logo-ausopen-col-pos@2x.png +0 -0
- data/lib/ably_ui/core/images/cust-logo-hubspot-col-pos.png +0 -0
- data/lib/ably_ui/core/images/cust-logo-hubspot-col-pos@2x.png +0 -0
- data/lib/ably_ui/core/images/cust-logo-lightspeed-col-pos.png +0 -0
- data/lib/ably_ui/core/images/cust-logo-lightspeed-col-pos@2x.png +0 -0
- data/lib/ably_ui/core/images/cust-logo-lightspeed-syst-col-pos.png +0 -0
- data/lib/ably_ui/core/images/cust-logo-lightspeed-syst-col-pos@2x.png +0 -0
- data/lib/ably_ui/core/images/cust-logo-split-col-pos.png +0 -0
- data/lib/ably_ui/core/images/cust-logo-split-col-pos@2x.png +0 -0
- data/lib/ably_ui/core/images/cust-logo-vitac-col-pos.png +0 -0
- data/lib/ably_ui/core/images/cust-logo-vitac-col-pos@2x.png +0 -0
- data/lib/ably_ui/core/images/cust-photo-hubspot-max-freiert.jpg +0 -0
- data/lib/ably_ui/core/images/cust-photo-split-pato-echague.jpg +0 -0
- data/lib/ably_ui/core/images/cust-photo-vitac-joe-antonio.jpg +0 -0
- data/lib/ably_ui/core/images/flexible-companies.png +0 -0
- data/lib/ably_ui/core/images/rocket-list-2021.png +0 -0
- data/lib/ably_ui/core/images/scale-motif-open-empathetic.svg +1 -0
- data/lib/ably_ui/core/images/technical-support-01-800x533.jpg +0 -0
- data/lib/ably_ui/core/logo/component.js +1 -0
- data/lib/ably_ui/core/logo/logo.html.erb +28 -0
- data/lib/ably_ui/core/logo/logo.rb +19 -0
- data/lib/ably_ui/core/meganav/component.css +103 -0
- data/lib/ably_ui/core/meganav/component.js +1 -0
- data/lib/ably_ui/core/meganav/component.json +37 -0
- data/lib/ably_ui/core/meganav/meganav.html.erb +26 -0
- data/lib/ably_ui/core/meganav/meganav.rb +53 -0
- data/lib/ably_ui/core/meganav_blog_posts_list/component.js +1 -0
- data/lib/ably_ui/core/meganav_blog_posts_list/meganav_blog_posts_list.html.erb +5 -0
- data/lib/ably_ui/core/meganav_blog_posts_list/meganav_blog_posts_list.rb +13 -0
- data/lib/ably_ui/core/meganav_content_developers/component.js +1 -0
- data/lib/ably_ui/core/meganav_content_developers/meganav_content_developers.html.erb +77 -0
- data/lib/ably_ui/core/meganav_content_developers/meganav_content_developers.rb +13 -0
- data/lib/ably_ui/core/meganav_content_platform/component.js +1 -0
- data/lib/ably_ui/core/meganav_content_platform/meganav_content_platform.html.erb +91 -0
- data/lib/ably_ui/core/meganav_content_platform/meganav_content_platform.rb +14 -0
- data/lib/ably_ui/core/meganav_content_use_cases/component.js +1 -0
- data/lib/ably_ui/core/meganav_content_use_cases/meganav_content_use_cases.html.erb +72 -0
- data/lib/ably_ui/core/meganav_content_use_cases/meganav_content_use_cases.rb +13 -0
- data/lib/ably_ui/core/meganav_content_why_ably/component.js +1 -0
- data/lib/ably_ui/core/meganav_content_why_ably/meganav_content_why_ably.html.erb +70 -0
- data/lib/ably_ui/core/meganav_content_why_ably/meganav_content_why_ably.rb +13 -0
- data/lib/ably_ui/core/meganav_control/component.js +1 -0
- data/lib/ably_ui/core/meganav_control/meganav_control.html.erb +6 -0
- data/lib/ably_ui/core/meganav_control/meganav_control.rb +12 -0
- data/lib/ably_ui/core/meganav_control_mobile_dropdown/component.js +1 -0
- data/lib/ably_ui/core/meganav_control_mobile_dropdown/meganav_control_mobile_dropdown.html.erb +7 -0
- data/lib/ably_ui/core/meganav_control_mobile_dropdown/meganav_control_mobile_dropdown.rb +11 -0
- data/lib/ably_ui/core/meganav_control_mobile_panel_close/component.js +1 -0
- data/lib/ably_ui/core/meganav_control_mobile_panel_close/meganav_control_mobile_panel_close.html.erb +10 -0
- data/lib/ably_ui/core/meganav_control_mobile_panel_close/meganav_control_mobile_panel_close.rb +9 -0
- data/lib/ably_ui/core/meganav_control_mobile_panel_open/component.js +1 -0
- data/lib/ably_ui/core/meganav_control_mobile_panel_open/meganav_control_mobile_panel_open.html.erb +7 -0
- data/lib/ably_ui/core/meganav_control_mobile_panel_open/meganav_control_mobile_panel_open.rb +9 -0
- data/lib/ably_ui/core/meganav_items_desktop/component.js +1 -0
- data/lib/ably_ui/core/meganav_items_desktop/meganav_items_desktop.html.erb +16 -0
- data/lib/ably_ui/core/meganav_items_desktop/meganav_items_desktop.rb +15 -0
- data/lib/ably_ui/core/meganav_items_mobile/component.js +1 -0
- data/lib/ably_ui/core/meganav_items_mobile/meganav_items_mobile.html.erb +47 -0
- data/lib/ably_ui/core/meganav_items_mobile/meganav_items_mobile.rb +17 -0
- data/lib/ably_ui/core/meganav_items_signed_in/component.js +1 -0
- data/lib/ably_ui/core/meganav_items_signed_in/meganav_items_signed_in.html.erb +49 -0
- data/lib/ably_ui/core/meganav_items_signed_in/meganav_items_signed_in.rb +33 -0
- data/lib/ably_ui/core/notice/component.css +8 -0
- data/lib/ably_ui/core/notice/component.js +2 -0
- data/lib/ably_ui/core/notice/notice.html.erb +16 -0
- data/lib/ably_ui/core/notice/notice.rb +29 -0
- data/lib/ably_ui/core/scripts.js +1 -0
- data/lib/ably_ui/core/showcase/component.css +31 -0
- data/lib/ably_ui/core/showcase/component.js +1 -0
- data/lib/ably_ui/core/showcase/showcase.html.erb +76 -0
- data/lib/ably_ui/core/showcase/showcase.rb +190 -0
- data/lib/ably_ui/core/sign_out_link/component.js +1 -0
- data/lib/ably_ui/core/sign_out_link/sign_out_link.html.erb +1 -0
- data/lib/ably_ui/core/sign_out_link/sign_out_link.rb +17 -0
- data/lib/ably_ui/core/slider/component.css +9 -0
- data/lib/ably_ui/core/slider/component.js +1 -0
- data/lib/ably_ui/core/slider/slider.html.erb +28 -0
- data/lib/ably_ui/core/slider/slider.rb +38 -0
- data/lib/ably_ui/core/sprites.svg +113 -0
- data/lib/ably_ui/core/styles.css +332 -0
- data/lib/ably_ui/core/uptime/component.css +129 -0
- data/lib/ably_ui/core/uptime/component.js +1 -0
- data/lib/ably_ui/core/uptime/uptime.html.erb +0 -0
- data/lib/ably_ui/core/uptime/uptime.rb +7 -0
- data/lib/ably_ui/reset/scripts.js +1 -0
- data/lib/ably_ui/reset/styles.css +487 -0
- data/lib/ably_ui/version.rb +3 -0
- data/lib/ably_ui.rb +27 -0
- metadata +210 -0
@@ -0,0 +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.Meganav=t())}(this,(function(){return(()=>{var e={2498:(e,t,r)=>{"use strict";r.d(t,{default:()=>l});var n=r(9581);function o(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 l=function(){var e=Array.from((0,n.n)("meganav-control")),t=Array.from((0,n.n)("meganav-panel")),r=getComputedStyle(document.documentElement).getPropertyValue("--bp-md"),l=function(t,n,l){if(window.matchMedia("(hover: hover) and (pointer: fine) and (min-width: ".concat(r,")")).matches&&!e.some((function(e){return e===document.activeElement}))){var i,a=["invisible","visible"];(i=n.classList).replace.apply(i,function(e){if(Array.isArray(e))return o(e)}(c=l?a:a.reverse())||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(c)||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.")}()),t.setAttribute("aria-expanded",l)}var c};return e.map((function(r){var n=r.parentNode,o=document.querySelector("#".concat(r.getAttribute("aria-controls"))),i=function(r,n){return function(){e.forEach((function(e){return e!==r&&e.setAttribute("aria-expanded",!1)})),t.forEach((function(e){return e!==n&&e.classList.replace("visible","invisible")})),r.getAttribute("aria-expanded")?(r.setAttribute("aria-expanded",!0),n.classList.replace("invisible","visible")):(r.setAttribute("aria-expanded",!1),n.classList.replace("visible","invisible"))}}(r,o),a=function(e,t){return function(){return l(e,t,!0)}}(r,o),c=function(e,t){return function(){return l(e,t,!1)}}(r,o);return n.addEventListener("mouseenter",a),n.addEventListener("mouseleave",c),r.addEventListener("click",i),[{teardown:function(){n.removeEventListener("mouseenter",a),n.removeEventListener("mouseleave",c),r.removeEventListener("click",i)},clear:function(){r.setAttribute("aria-expanded",!1),o.classList.replace("visible","invisible")}}]})).flat()}},1792:(e,t,r)=>{"use strict";r.d(t,{default:()=>i});var n=r(6265),o=r.n(n),l=r(9581);const i=function(e){var t=e.clearPanels,r=(0,l.A)("meganav-control-mobile-dropdown"),n=(0,l.A)("meganav-mobile-dropdown"),i=(0,l.A)("meganav-control-mobile-dropdown-menu"),a=(0,l.A)("meganav-control-mobile-dropdown-close"),c=function(){"false"===r.getAttribute("aria-expanded")?(n.classList.replace("invisible","visible"),r.setAttribute("aria-expanded",!0),o().disablePageScroll()):(n.classList.replace("visible","invisible"),r.setAttribute("aria-expanded",!1),o().enablePageScroll(),t()),i.classList.toggle("hidden"),a.classList.toggle("hidden")};return r.addEventListener("click",c),{teardown:function(){r.removeEventListener("click",c),o().enablePageScroll()},clear:function(){n.classList.replace("visible","invisible"),r.setAttribute("aria-expanded",!1),i.classList.remove("hidden"),a.classList.add("hidden"),o().enablePageScroll()}}}},7359:(e,t,r)=>{"use strict";r.d(t,{default:()=>o});var n=r(9581);const o=function(){var e=Array.from((0,n.n)("meganav-control-mobile-panel-close")),t=Array.from((0,n.n)("meganav-control-mobile-panel-open"));return e.map((function(e){var r=t.find((function(t){return t.getAttribute("aria-controls")===e.getAttribute("aria-controls")})),n=document.querySelector("#".concat(e.getAttribute("aria-controls"))),o=function(e,t,r){return function(){e.setAttribute("aria-expanded",!1),t.setAttribute("aria-expanded",!1),r.classList.replace("block","hidden"),r.style.height=null}}(e,r,n);return e.addEventListener("click",o),{teardown:function(){return e.removeEventListener("click",o)},clear:function(){return e.setAttribute("aria-expanded",!1)}}}))}},9552:(e,t,r)=>{"use strict";r.d(t,{default:()=>o});var n=r(9581);const o=function(){var e,t=Array.from((0,n.n)("meganav-control-mobile-panel-close")),r=Array.from((0,n.n)("meganav-control-mobile-panel-open")),o=(0,n.A)("meganav-mobile-dropdown"),l=(e=getComputedStyle(document.documentElement).getPropertyValue("--ui-meganav-height"),parseFloat(e)*parseFloat(getComputedStyle(document.documentElement).fontSize));return r.map((function(e){var r=t.find((function(t){return t.getAttribute("aria-controls")===e.getAttribute("aria-controls")})),n=document.querySelector("#".concat(e.getAttribute("aria-controls"))),i=function(e,t,r){return function(){e.setAttribute("aria-expanded",!0),t.setAttribute("aria-expanded",!0),r.classList.replace("hidden","block"),r.style.height="".concat(window.innerHeight-l>r.offsetHeight?r.offsetHeight:window.innerHeight-l,"px")}}(e,r,n);return e.addEventListener("click",i),{teardown:function(){return e.removeEventListener("click",i)},clear:function(){n.classList.replace("block","hidden"),o.classList.remove("ui-meganav-mobile-dropdown-expand"),e.setAttribute("aria-expanded",!1),n.style.height=null}}}))}},9581:(e,t,r)=>{"use strict";r.d(t,{A:()=>n,n:()=>o});var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return t.querySelector("[data-id=".concat(e,"]"))},o=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return t.querySelectorAll("[data-id=".concat(e,"]"))}},3096:(e,t,r)=>{var n="Expected a function",o=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,a=/^0o[0-7]+$/i,c=parseInt,u="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,s="object"==typeof self&&self&&self.Object===Object&&self,d=u||s||Function("return this")(),f=Object.prototype.toString,p=Math.max,g=Math.min,b=function(){return d.Date.now()};function v(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function m(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==f.call(e)}(e))return NaN;if(v(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=v(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var r=i.test(e);return r||a.test(e)?c(e.slice(2),r?2:8):l.test(e)?NaN:+e}e.exports=function(e,t,r){var o=!0,l=!0;if("function"!=typeof e)throw new TypeError(n);return v(r)&&(o="leading"in r?!!r.leading:o,l="trailing"in r?!!r.trailing:l),function(e,t,r){var o,l,i,a,c,u,s=0,d=!1,f=!1,h=!0;if("function"!=typeof e)throw new TypeError(n);function y(t){var r=o,n=l;return o=l=void 0,s=t,a=e.apply(n,r)}function S(e){return s=e,c=setTimeout(A,t),d?y(e):a}function w(e){var r=e-u;return void 0===u||r>=t||r<0||f&&e-s>=i}function A(){var e=b();if(w(e))return k(e);c=setTimeout(A,function(e){var r=t-(e-u);return f?g(r,i-(e-s)):r}(e))}function k(e){return c=void 0,h&&o?y(e):(o=l=void 0,a)}function L(){var e=b(),r=w(e);if(o=arguments,l=this,u=e,r){if(void 0===c)return S(u);if(f)return c=setTimeout(A,t),y(u)}return void 0===c&&(c=setTimeout(A,t)),a}return t=m(t)||0,v(r)&&(d=!!r.leading,i=(f="maxWait"in r)?p(m(r.maxWait)||0,t):i,h="trailing"in r?!!r.trailing:h),L.cancel=function(){void 0!==c&&clearTimeout(c),s=0,o=u=l=c=void 0},L.flush=function(){return void 0===c?a:k(b())},L}(e,t,{leading:o,maxWait:t,trailing:l})}},6265:function(e){var t;t=function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t);var n=function(e){return Array.isArray(e)?e:[e]},o=function(e){return e instanceof Node},l=function(e,t){if(e&&t){e=function(e){return e instanceof NodeList}(e)?e:[e];for(var r=0;r<e.length&&!0!==t(e[r],r,e.length);r++);}},i=function(e){return console.error("[scroll-lock] ".concat(e))},a=function(e){if(Array.isArray(e))return e.join(", ")},c=function(e){var t=[];return l(e,(function(e){return t.push(e)})),t},u=function(e,t){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:document;if(r&&-1!==c(n.querySelectorAll(t)).indexOf(e))return e;for(;(e=e.parentElement)&&-1===c(n.querySelectorAll(t)).indexOf(e););return e},s=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:document,n=-1!==c(r.querySelectorAll(t)).indexOf(e);return n},d=function(e){if(e)return"hidden"===getComputedStyle(e).overflow},f=function(e){if(e)return!!d(e)||e.scrollTop<=0},p=function(e){if(e){if(d(e))return!0;var t=e.scrollTop,r=e.scrollHeight;return t+e.offsetHeight>=r}},g=function(e){if(e)return!!d(e)||e.scrollLeft<=0},b=function(e){if(e){if(d(e))return!0;var t=e.scrollLeft,r=e.scrollWidth;return t+e.offsetWidth>=r}},v=function(e){return s(e,'textarea, [contenteditable="true"]')},m=function(e){return s(e,'input[type="range"]')};function h(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}r.d(t,"disablePageScroll",(function(){return w})),r.d(t,"enablePageScroll",(function(){return A})),r.d(t,"getScrollState",(function(){return k})),r.d(t,"clearQueueScrollLocks",(function(){return L})),r.d(t,"getTargetScrollBarWidth",(function(){return x})),r.d(t,"getCurrentTargetScrollBarWidth",(function(){return E})),r.d(t,"getPageScrollBarWidth",(function(){return T})),r.d(t,"getCurrentPageScrollBarWidth",(function(){return j})),r.d(t,"addScrollableTarget",(function(){return O})),r.d(t,"removeScrollableTarget",(function(){return G})),r.d(t,"addScrollableSelector",(function(){return W})),r.d(t,"removeScrollableSelector",(function(){return F})),r.d(t,"addLockableTarget",(function(){return P})),r.d(t,"addLockableSelector",(function(){return Y})),r.d(t,"setFillGapMethod",(function(){return q})),r.d(t,"addFillGapTarget",(function(){return M})),r.d(t,"removeFillGapTarget",(function(){return C})),r.d(t,"addFillGapSelector",(function(){return N})),r.d(t,"removeFillGapSelector",(function(){return U})),r.d(t,"refillGaps",(function(){return B}));var y=["padding","margin","width","max-width","none"],S={scroll:!0,queue:0,scrollableSelectors:["[data-scroll-lock-scrollable]"],lockableSelectors:["body","[data-scroll-lock-lockable]"],fillGapSelectors:["body","[data-scroll-lock-fill-gap]","[data-scroll-lock-lockable]"],fillGapMethod:y[0],startTouchY:0,startTouchX:0},w=function(e){S.queue<=0&&(S.scroll=!1,K(),$()),O(e),S.queue++},A=function(e){S.queue>0&&S.queue--,S.queue<=0&&(S.scroll=!0,R(),D()),G(e)},k=function(){return S.scroll},L=function(){S.queue=0},x=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(o(e)){var r=e.style.overflowY;t?k()||(e.style.overflowY=e.getAttribute("data-scroll-lock-saved-overflow-y-property")):e.style.overflowY="scroll";var n=E(e);return e.style.overflowY=r,n}return 0},E=function(e){if(o(e)){if(e===document.body){var t=document.documentElement.clientWidth;return window.innerWidth-t}var r=e.style.borderLeftWidth,n=e.style.borderRightWidth;e.style.borderLeftWidth="0px",e.style.borderRightWidth="0px";var l=e.offsetWidth-e.clientWidth;return e.style.borderLeftWidth=r,e.style.borderRightWidth=n,l}return 0},T=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return x(document.body,e)},j=function(){return E(document.body)},O=function(e){e&&n(e).map((function(e){l(e,(function(e){o(e)?e.setAttribute("data-scroll-lock-scrollable",""):i('"'.concat(e,'" is not a Element.'))}))}))},G=function(e){e&&n(e).map((function(e){l(e,(function(e){o(e)?e.removeAttribute("data-scroll-lock-scrollable"):i('"'.concat(e,'" is not a Element.'))}))}))},W=function(e){e&&n(e).map((function(e){S.scrollableSelectors.push(e)}))},F=function(e){e&&n(e).map((function(e){S.scrollableSelectors=S.scrollableSelectors.filter((function(t){return t!==e}))}))},P=function(e){e&&(n(e).map((function(e){l(e,(function(e){o(e)?e.setAttribute("data-scroll-lock-lockable",""):i('"'.concat(e,'" is not a Element.'))}))})),k()||K())},Y=function(e){e&&(n(e).map((function(e){S.lockableSelectors.push(e)})),k()||K(),N(e))},q=function(e){if(e)if(-1!==y.indexOf(e))S.fillGapMethod=e,B();else{var t=y.join(", ");i('"'.concat(e,'" method is not available!\nAvailable fill gap methods: ').concat(t,"."))}},M=function(e){e&&n(e).map((function(e){l(e,(function(e){o(e)?(e.setAttribute("data-scroll-lock-fill-gap",""),S.scroll||z(e)):i('"'.concat(e,'" is not a Element.'))}))}))},C=function(e){e&&n(e).map((function(e){l(e,(function(e){o(e)?(e.removeAttribute("data-scroll-lock-fill-gap"),S.scroll||J(e)):i('"'.concat(e,'" is not a Element.'))}))}))},N=function(e){e&&n(e).map((function(e){-1===S.fillGapSelectors.indexOf(e)&&(S.fillGapSelectors.push(e),S.scroll||Q(e))}))},U=function(e){e&&n(e).map((function(e){S.fillGapSelectors=S.fillGapSelectors.filter((function(t){return t!==e})),S.scroll||V(e)}))},B=function(){S.scroll||$()},K=function(){var e=a(S.lockableSelectors);_(e)},R=function(){var e=a(S.lockableSelectors);I(e)},_=function(e){var t=document.querySelectorAll(e);l(t,(function(e){H(e)}))},I=function(e){var t=document.querySelectorAll(e);l(t,(function(e){X(e)}))},H=function(e){if(o(e)&&"true"!==e.getAttribute("data-scroll-lock-locked")){var t=window.getComputedStyle(e);e.setAttribute("data-scroll-lock-saved-overflow-y-property",t.overflowY),e.setAttribute("data-scroll-lock-saved-inline-overflow-property",e.style.overflow),e.setAttribute("data-scroll-lock-saved-inline-overflow-y-property",e.style.overflowY),e.style.overflow="hidden",e.setAttribute("data-scroll-lock-locked","true")}},X=function(e){o(e)&&"true"===e.getAttribute("data-scroll-lock-locked")&&(e.style.overflow=e.getAttribute("data-scroll-lock-saved-inline-overflow-property"),e.style.overflowY=e.getAttribute("data-scroll-lock-saved-inline-overflow-y-property"),e.removeAttribute("data-scroll-lock-saved-overflow-property"),e.removeAttribute("data-scroll-lock-saved-inline-overflow-property"),e.removeAttribute("data-scroll-lock-saved-inline-overflow-y-property"),e.removeAttribute("data-scroll-lock-locked"))},$=function(){S.fillGapSelectors.map((function(e){Q(e)}))},D=function(){S.fillGapSelectors.map((function(e){V(e)}))},Q=function(e){var t=document.querySelectorAll(e),r=-1!==S.lockableSelectors.indexOf(e);l(t,(function(e){z(e,r)}))},z=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(o(e)){var r;if(""===e.getAttribute("data-scroll-lock-lockable")||t)r=x(e,!0);else{var n=u(e,a(S.lockableSelectors));r=x(n,!0)}"true"===e.getAttribute("data-scroll-lock-filled-gap")&&J(e);var l=window.getComputedStyle(e);if(e.setAttribute("data-scroll-lock-filled-gap","true"),e.setAttribute("data-scroll-lock-current-fill-gap-method",S.fillGapMethod),"margin"===S.fillGapMethod){var i=parseFloat(l.marginRight);e.style.marginRight="".concat(i+r,"px")}else if("width"===S.fillGapMethod)e.style.width="calc(100% - ".concat(r,"px)");else if("max-width"===S.fillGapMethod)e.style.maxWidth="calc(100% - ".concat(r,"px)");else if("padding"===S.fillGapMethod){var c=parseFloat(l.paddingRight);e.style.paddingRight="".concat(c+r,"px")}}},V=function(e){var t=document.querySelectorAll(e);l(t,(function(e){J(e)}))},J=function(e){if(o(e)&&"true"===e.getAttribute("data-scroll-lock-filled-gap")){var t=e.getAttribute("data-scroll-lock-current-fill-gap-method");e.removeAttribute("data-scroll-lock-filled-gap"),e.removeAttribute("data-scroll-lock-current-fill-gap-method"),"margin"===t?e.style.marginRight="":"width"===t?e.style.width="":"max-width"===t?e.style.maxWidth="":"padding"===t&&(e.style.paddingRight="")}};"undefined"!=typeof window&&window.addEventListener("resize",(function(e){B()})),"undefined"!=typeof document&&(document.addEventListener("touchstart",(function(e){S.scroll||(S.startTouchY=e.touches[0].clientY,S.startTouchX=e.touches[0].clientX)})),document.addEventListener("touchmove",(function(e){if(!S.scroll){var t=S.startTouchY,r=S.startTouchX,n=e.touches[0].clientY,o=e.touches[0].clientX;if(e.touches.length<2){var l=a(S.scrollableSelectors),i={up:t<n,down:t>n,left:r<o,right:r>o},c={up:t+3<n,down:t-3>n,left:r+3<o,right:r-3>o};!function t(r){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(r){var o=u(r,l,!1);if(m(r))return!1;if(n||v(r)&&u(r,l)||s(r,l)){var a=!1;g(r)&&b(r)?(i.up&&f(r)||i.down&&p(r))&&(a=!0):f(r)&&p(r)?(i.left&&g(r)||i.right&&b(r))&&(a=!0):(c.up&&f(r)||c.down&&p(r)||c.left&&g(r)||c.right&&b(r))&&(a=!0),a&&(o?t(o,!0):e.cancelable&&e.preventDefault())}else t(o)}else e.cancelable&&e.preventDefault()}(e.target)}}}),{passive:!1}),document.addEventListener("touchend",(function(e){S.scroll||(S.startTouchY=0,S.startTouchX=0)})));var Z={hide:function(e){i('"hide" is deprecated! Use "disablePageScroll" instead. \n https://github.com/FL3NKEY/scroll-lock#disablepagescrollscrollabletarget'),w(e)},show:function(e){i('"show" is deprecated! Use "enablePageScroll" instead. \n https://github.com/FL3NKEY/scroll-lock#enablepagescrollscrollabletarget'),A(e)},toggle:function(e){i('"toggle" is deprecated! Do not use it.'),k()?w():A(e)},getState:function(){return i('"getState" is deprecated! Use "getScrollState" instead. \n https://github.com/FL3NKEY/scroll-lock#getscrollstate'),k()},getWidth:function(){return i('"getWidth" is deprecated! Use "getPageScrollBarWidth" instead. \n https://github.com/FL3NKEY/scroll-lock#getpagescrollbarwidth'),T()},getCurrentWidth:function(){return i('"getCurrentWidth" is deprecated! Use "getCurrentPageScrollBarWidth" instead. \n https://github.com/FL3NKEY/scroll-lock#getcurrentpagescrollbarwidth'),j()},setScrollableTargets:function(e){i('"setScrollableTargets" is deprecated! Use "addScrollableTarget" instead. \n https://github.com/FL3NKEY/scroll-lock#addscrollabletargetscrollabletarget'),O(e)},setFillGapSelectors:function(e){i('"setFillGapSelectors" is deprecated! Use "addFillGapSelector" instead. \n https://github.com/FL3NKEY/scroll-lock#addfillgapselectorfillgapselector'),N(e)},setFillGapTargets:function(e){i('"setFillGapTargets" is deprecated! Use "addFillGapTarget" instead. \n https://github.com/FL3NKEY/scroll-lock#addfillgaptargetfillgaptarget'),M(e)},clearQueue:function(){i('"clearQueue" is deprecated! Use "clearQueueScrollLocks" instead. \n https://github.com/FL3NKEY/scroll-lock#clearqueuescrolllocks'),L()}},ee=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){h(e,t,r[t])}))}return e}({disablePageScroll:w,enablePageScroll:A,getScrollState:k,clearQueueScrollLocks:L,getTargetScrollBarWidth:x,getCurrentTargetScrollBarWidth:E,getPageScrollBarWidth:T,getCurrentPageScrollBarWidth:j,addScrollableSelector:W,removeScrollableSelector:F,addScrollableTarget:O,removeScrollableTarget:G,addLockableSelector:Y,addLockableTarget:P,addFillGapSelector:N,removeFillGapSelector:U,addFillGapTarget:M,removeFillGapTarget:C,setFillGapMethod:q,refillGaps:B,_state:S},Z);t.default=ee}]).default},e.exports=t()}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var l=t[n]={exports:{}};return e[n].call(l.exports,l,l.exports,r),l.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},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.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};return(()=>{"use strict";r.d(n,{default:()=>g});var e=r(3096),t=r.n(e),o=r(9581),l=r(2498),i=r(1792),a=r(9552),c=r(7359);function u(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,t):void 0}}(e)||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.")}()}function s(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}var d=function(e){return window.onblur=function(){return e()},{teardown:function(){return window.onblur=null}}},f=function(e){var t=(0,o.A)("meganav"),r=function(r){t.contains(r.target)||e()};return document.addEventListener("click",r),{teardown:function(){return document.removeEventListener("click",r)}}},p=function(e){if("transparentToWhite"!==e)return{teardown:function(){}};var r=(0,o.A)("meganav"),n=(0,o.n)("meganav-link"),l=(0,o.A)("meganav-control-mobile-dropdown-menu"),i=(0,o.A)("meganav-control-mobile-dropdown-close"),a=(0,o.n)("meganav-control"),c=(0,o.A)("meganav-sign-up-btn"),s=[].concat(u(Array.from(a)),u(Array.from(n)),[(0,o.A)("meganav-logo")]),d=function(e){var t,r,n,o,a=["ui-icon-white","ui-icon-cool-black"],c=[].concat(a).reverse();e?(null==l||(t=l.classList).replace.apply(t,a),null==i||(r=i.classList).replace.apply(r,a)):(null==l||(n=l.classList).replace.apply(n,u(c)),null==i||(o=i.classList).replace.apply(o,u(c)))},f=function(e){e?(null==c||c.classList.replace("bg-white","bg-cool-black"),null==c||c.classList.replace("text-cool-black","text-white")):(null==c||c.classList.replace("bg-cool-black","bg-white"),null==c||c.classList.replace("text-white","text-cool-black"))},p=t()((function(){window.scrollY>5?(r.classList.replace("bg-transparent","bg-white"),f(!0),d(!0),s.forEach((function(e){return e.classList.replace("text-white","text-cool-black")}))):(r.classList.replace("bg-white","bg-transparent"),f(!1),d(!1),s.forEach((function(e){return e.classList.replace("text-cool-black","text-white")})))}),150);return document.addEventListener("scroll",p),{teardown:function(){return document.removeEventListener("scroll",p)}}};function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{themeName:null},t=e.themeName,r=(0,l.default)(),n=(0,a.default)(),o=(0,c.default)(),s=(0,i.default)({clearPanels:function(){return[].concat(u(n),u(o)).forEach((function(e){return e.clear()}))}}),g=function(){return[s].concat(u(n),u(o),u(r)).forEach((function(e){return e.clear()}))},b=[p(t),f(g),d(g),s].concat(u(r),u(n),u(o)).map((function(e){return e.teardown}));return function(){return b.forEach((function(e){return e()}))}}})(),n.default})()}));
|
@@ -0,0 +1,37 @@
|
|
1
|
+
{
|
2
|
+
"themes": {
|
3
|
+
"white": {
|
4
|
+
"backgroundColor": "bg-white",
|
5
|
+
"textColor": "text-cool-black",
|
6
|
+
"buttonBackgroundColor": "",
|
7
|
+
"buttonTextColor": "",
|
8
|
+
"mobileMenuColor": "text-cool-black",
|
9
|
+
"logoTextColor": "text-cool-black",
|
10
|
+
"barShadow": "shadow-subtle"
|
11
|
+
},
|
12
|
+
"black": {
|
13
|
+
"backgroundColor": "bg-cool-black",
|
14
|
+
"textColor": "text-white",
|
15
|
+
"buttonBackgroundColor": "bg-white",
|
16
|
+
"buttonTextColor": "text-cool-black",
|
17
|
+
"mobileMenuColor": "text-white",
|
18
|
+
"logoTextColor": "text-white",
|
19
|
+
"barShadow": ""
|
20
|
+
},
|
21
|
+
"transparentToWhite": {
|
22
|
+
"backgroundColor": "bg-transparent",
|
23
|
+
"textColor": "text-white",
|
24
|
+
"buttonBackgroundColor": "bg-white",
|
25
|
+
"buttonTextColor": "text-cool-black",
|
26
|
+
"mobileMenuColor": "text-white",
|
27
|
+
"logoTextColor": "text-white",
|
28
|
+
"barShadow": ""
|
29
|
+
}
|
30
|
+
},
|
31
|
+
"panels": [
|
32
|
+
{ "label": "Platform", "id": "platform-panel", "component": "MeganavContentPlatform" },
|
33
|
+
{ "label": "Use Cases", "id": "use-cases-panel", "component": "MeganavContentUseCases" },
|
34
|
+
{ "label": "Why Ably", "id": "why-ably-panel", "component": "MeganavContentWhyAbly" },
|
35
|
+
{ "label": "Developers", "id": "developers-panel", "component": "MeganavContentDevelopers" }
|
36
|
+
]
|
37
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<%= tag.nav(class: ["ui-meganav-wrapper", theme(:background_color), theme(:bar_shadow)], data: { id: "meganav" }, aria: { label: "Main" }) do %>
|
2
|
+
<%= notice %>
|
3
|
+
|
4
|
+
<div class="ui-meganav ui-grid-px">
|
5
|
+
<%= render(AblyUi::Core::Logo.new(theme_name: @theme_name, data_id: "meganav-logo", href: url_base)) %>
|
6
|
+
<%= render(AblyUi::Core::MeganavItemsDesktop.new(theme_name: @theme_name, url_base: url_base)) %>
|
7
|
+
|
8
|
+
<% if @session_data[:signedIn] %>
|
9
|
+
<%= render(AblyUi::Core::MeganavItemsSignedIn.new(session_data: @session_data, theme_name: @theme_name, url_base: url_base)) %>
|
10
|
+
<% else %>
|
11
|
+
<ul class="hidden md:flex items-center">
|
12
|
+
<li>
|
13
|
+
<%= link_to "Contact us", abs_url("/contact"), data: { id: "meganav-link" }, class: ["ui-meganav-link", theme(:text_color)] %>
|
14
|
+
</li>
|
15
|
+
<li>
|
16
|
+
<%= link_to "Login", abs_url(login_link), data: { id: "meganav-link" }, class: ["ui-meganav-link", theme(:text_color)] %>
|
17
|
+
</li>
|
18
|
+
<li class="ml-16">
|
19
|
+
<%= link_to "Sign up free", abs_url("/sign-up"), data: { id: "meganav-sign-up-btn" }, class: ["ui-btn", "p-btn-small", theme(:button_background_color), theme(:button_text_color)] %>
|
20
|
+
</li>
|
21
|
+
</ul>
|
22
|
+
<% end %>
|
23
|
+
|
24
|
+
<%= render(AblyUi::Core::MeganavItemsMobile.new(session_data: @session_data, theme_name: @theme_name, login_link: login_link, url_base: url_base)) %>
|
25
|
+
</div>
|
26
|
+
<% end %>
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'json'
|
2
|
+
require_relative '../notice/notice.rb'
|
3
|
+
|
4
|
+
module AblyUi
|
5
|
+
module Core
|
6
|
+
class Meganav < ViewComponent::Base
|
7
|
+
include MeganavConfig
|
8
|
+
include Util
|
9
|
+
attr_reader :options, :login_link, :url_base
|
10
|
+
|
11
|
+
renders_one :notice, AblyUi::Core::Notice
|
12
|
+
|
13
|
+
def initialize(
|
14
|
+
session_data: {},
|
15
|
+
theme_name: :white,
|
16
|
+
login_link: '/login',
|
17
|
+
url_base: AblyUi::Core::Util::DEFAULT_URL_BASE
|
18
|
+
)
|
19
|
+
@session_data = session_data
|
20
|
+
@theme_name = theme_name
|
21
|
+
@options = options
|
22
|
+
@login_link = login_link
|
23
|
+
@url_base = url_base
|
24
|
+
theme_setup(theme_name)
|
25
|
+
end
|
26
|
+
|
27
|
+
def panels
|
28
|
+
[
|
29
|
+
{
|
30
|
+
label: 'Platform',
|
31
|
+
id: 'platform-panel',
|
32
|
+
class: 'AblyUi::Core::MeganavContentPlatform'
|
33
|
+
},
|
34
|
+
{
|
35
|
+
label: 'Use Cases',
|
36
|
+
id: 'use-cases-panel',
|
37
|
+
class: 'AblyUi::Core::MeganavContentUseCases'
|
38
|
+
},
|
39
|
+
{
|
40
|
+
label: 'Why Ably',
|
41
|
+
id: 'why-ably-panel',
|
42
|
+
class: 'AblyUi::Core::MeganavContentWhyAbly'
|
43
|
+
},
|
44
|
+
{
|
45
|
+
label: 'Developers',
|
46
|
+
id: 'developers-panel',
|
47
|
+
class: 'AblyUi::Core::MeganavContentDevelopers'
|
48
|
+
}
|
49
|
+
]
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
!function(t,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.AblyUi=r():(t.AblyUi=t.AblyUi||{},t.AblyUi.Core=t.AblyUi.Core||{},t.AblyUi.Core.MeganavBlogPostsList=r())}(this,(function(){return(()=>{var t={7757:(t,r,e)=>{e(5666)},5666:t=>{var r=function(t){"use strict";var r,e=Object.prototype,n=e.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(t,r,e){return Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[r]}try{u({},"")}catch(t){u=function(t,r,e){return t[r]=e}}function l(t,r,e,n){var o=r&&r.prototype instanceof v?r:v,i=Object.create(o.prototype),a=new S(n||[]);return i._invoke=function(t,r,e){var n=s;return function(o,i){if(n===p)throw new Error("Generator is already running");if(n===y){if("throw"===o)throw i;return C()}for(e.method=o,e.arg=i;;){var a=e.delegate;if(a){var c=E(a,e);if(c){if(c===d)continue;return c}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if(n===s)throw n=y,e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);n=p;var u=f(t,r,e);if("normal"===u.type){if(n=e.done?y:h,u.arg===d)continue;return{value:u.arg,done:e.done}}"throw"===u.type&&(n=y,e.method="throw",e.arg=u.arg)}}}(t,e,a),i}function f(t,r,e){try{return{type:"normal",arg:t.call(r,e)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var s="suspendedStart",h="suspendedYield",p="executing",y="completed",d={};function v(){}function g(){}function m(){}var b={};b[i]=function(){return this};var w=Object.getPrototypeOf,x=w&&w(w(_([])));x&&x!==e&&n.call(x,i)&&(b=x);var O=m.prototype=v.prototype=Object.create(b);function L(t){["next","throw","return"].forEach((function(r){u(t,r,(function(t){return this._invoke(r,t)}))}))}function j(t,r){function e(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var l=u.arg,s=l.value;return s&&"object"==typeof s&&n.call(s,"__await")?r.resolve(s.__await).then((function(t){e("next",t,a,c)}),(function(t){e("throw",t,a,c)})):r.resolve(s).then((function(t){l.value=t,a(l)}),(function(t){return e("throw",t,a,c)}))}c(u.arg)}var o;this._invoke=function(t,n){function i(){return new r((function(r,o){e(t,n,r,o)}))}return o=o?o.then(i,i):i()}}function E(t,e){var n=t.iterator[e.method];if(n===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=r,E(t,e),"throw"===e.method))return d;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var o=f(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,d;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=r),e.delegate=null,d):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function A(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]),2 in t&&(r.finallyLoc=t[2],r.afterLoc=t[3]),this.tryEntries.push(r)}function P(t){var r=t.completion||{};r.type="normal",delete r.arg,t.completion=r}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(A,this),this.reset(!0)}function _(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function e(){for(;++o<t.length;)if(n.call(t,o))return e.value=t[o],e.done=!1,e;return e.value=r,e.done=!0,e};return a.next=a}}return{next:C}}function C(){return{value:r,done:!0}}return g.prototype=O.constructor=m,m.constructor=g,g.displayName=u(m,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===g||"GeneratorFunction"===(r.displayName||r.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,m):(t.__proto__=m,u(t,c,"GeneratorFunction")),t.prototype=Object.create(O),t},t.awrap=function(t){return{__await:t}},L(j.prototype),j.prototype[a]=function(){return this},t.AsyncIterator=j,t.async=function(r,e,n,o,i){void 0===i&&(i=Promise);var a=new j(l(r,e,n,o),i);return t.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},L(O),u(O,c,"Generator"),O[i]=function(){return this},O.toString=function(){return"[object Generator]"},t.keys=function(t){var r=[];for(var e in t)r.push(e);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=_,S.prototype={constructor:S,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=r,this.done=!1,this.delegate=null,this.method="next",this.arg=r,this.tryEntries.forEach(P),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=r)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function o(n,o){return c.type="throw",c.arg=t,e.next=n,o&&(e.method="next",e.arg=r),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,r){for(var e=this.tryEntries.length-1;e>=0;--e){var o=this.tryEntries[e];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(a)},complete:function(t,r){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&r&&(this.next=r),d},finish:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),P(e),d}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var o=n.arg;P(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:_(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=r),d}},t}(t.exports);try{regeneratorRuntime=r}catch(t){Function("r","regeneratorRuntime = r")(r)}}},r={};function e(n){var o=r[n];if(void 0!==o)return o.exports;var i=r[n]={exports:{}};return t[n](i,i.exports,e),i.exports}e.d=(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.o=(t,r)=>Object.prototype.hasOwnProperty.call(t,r);var n={};return(()=>{"use strict";e.d(n,{default:()=>l});var t=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return r.querySelectorAll("[data-id=".concat(t,"]"))};function r(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function o(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?r(Object(n),!0).forEach((function(r){i(t,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))}))}return t}function i(t,r,e){return r in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}e(7757);var a={recent:null},c=(i({},"blogPosts",(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,r=arguments.length>1?arguments[1]:void 0;switch(r.type){case"blog/loaded":return o(o({},t),{},{recent:r.payload});default:return t}})),function(t){var r;return null===(r=t.getState().blogPosts)||void 0===r?void 0:r.recent});function u(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}const l=function(){var r,e,n,o;r=c,e=function(r){if(Array.isArray(r)&&r.length>0){var e=t("meganav-why-ably-panel-blog-section"),n=t("meganav-why-ably-panel-recent-blog-posts");Array.from(n).forEach((function(t){var e=document.createDocumentFragment();r.forEach((function(t){return e.appendChild((i=(r=t).link,a=r.title,c=r.pubDate,n=["li","a","p","p"].map((function(t){return document.createElement(t)})),o=4,l=function(t){if(Array.isArray(t))return t}(n)||function(t,r){var e=t&&("undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"]);if(null!=e){var n,o,i=[],a=!0,c=!1;try{for(e=e.call(t);!(a=(n=e.next()).done)&&(i.push(n.value),!r||i.length!==r);a=!0);}catch(t){c=!0,o=t}finally{try{a||null==e.return||e.return()}finally{if(c)throw o}}return i}}(n,o)||function(t,r){if(t){if("string"==typeof t)return u(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?u(t,r):void 0}}(n,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),f=l[0],s=l[1],h=l[2],p=l[3],s.href=i,s.classList.add("ui-meganav-media","group"),h.textContent=a,h.classList.add("ui-meganav-media-heading"),p.textContent=c,p.classList.add("ui-meganav-media-copy"),s.appendChild(h),s.appendChild(p),f.appendChild(s),f));var r,n,o,i,a,c,l,f,s,h,p})),t.appendChild(e)})),Array.from(e).forEach((function(t){return t.classList.remove("hidden")}))}},n=function(){if(!window.AblyUi.RemoteDataStore)throw new Error("Remote store was called before one was created");return window.AblyUi.RemoteDataStore}(),o=r(n),n.subscribe((function(){var t=r(n);t!==o&&(o=t,e(t))}))}})(),n.default})()}));
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<div class="hidden" data-id="meganav-why-ably-panel-blog-section">
|
2
|
+
<h3 class="ui-meganav-overline" id="meganav-why-ably-panel-recent-blog-posts">Blog</h3>
|
3
|
+
<ul class="mb-8" aria-labelledby="meganav-why-ably-panel-recent-blog-posts" data-id="meganav-why-ably-panel-recent-blog-posts"></ul>
|
4
|
+
<%= render(AblyUi::Core::FeaturedLink.new(url: abs_url("/blog"))) do %>More from our Blog<% end %>
|
5
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
!function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.AblyUi=o():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavContentDevelopers=o())}(this,(function(){return{}.default}));
|
@@ -0,0 +1,77 @@
|
|
1
|
+
<section class="ui-meganav-content ui-grid-gap md:grid-cols-3">
|
2
|
+
<div>
|
3
|
+
<h3 class="ui-meganav-overline md:mb-8">Documentation</h3>
|
4
|
+
<div class="relative mb-16">
|
5
|
+
<%= tag.form class: "relative", action: abs_url("/search"), method: "get" do %>
|
6
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-gui-search", size: "1.5rem", color: "text-cool-black", additional_css: "absolute top-8 left-8 pt-1 mt-1")) %>
|
7
|
+
<input type="search" name="q" class="ui-input pl-48" placeholder="Search docs" />
|
8
|
+
<% end %>
|
9
|
+
</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
|
+
|
14
|
+
<%= render(AblyUi::Core::FeaturedLink.new(url: abs_url("/documentation"))) do %>Visit Documentation<% end %>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div>
|
18
|
+
<h3 class="ui-meganav-overline uppercase" id="meganav-developers-panel-explore">Explore</h3>
|
19
|
+
<ul aria-labelledby="meganav-developers-panel-explore">
|
20
|
+
<li>
|
21
|
+
<%= link_to abs_url("/integrations"), class: "ui-meganav-media group" do %>
|
22
|
+
<p class="ui-meganav-media-heading">Third-party integrations & plugins</p>
|
23
|
+
<p class="ui-meganav-media-copy">Integrate and extend Ably with cloud services like AWS Kinesis.</p>
|
24
|
+
<% end %>
|
25
|
+
</li>
|
26
|
+
<li>
|
27
|
+
<%= link_to abs_url("/protocols"), class: "ui-meganav-media group" do %>
|
28
|
+
<p class="ui-meganav-media-heading">Multi-protocol messaging</p>
|
29
|
+
<p class="ui-meganav-media-copy">We support pub/sub over WebSockets, MQTT, SSE, and more.</p>
|
30
|
+
<% end %>
|
31
|
+
</li>
|
32
|
+
<li>
|
33
|
+
<%= link_to abs_url("/hub"), class: "ui-meganav-media group" do %>
|
34
|
+
<p class="ui-meganav-media-heading">Streaming data sources</p>
|
35
|
+
<p class="ui-meganav-media-copy">Augment your apps with realtime updates like weather or transit.</p>
|
36
|
+
<% end %>
|
37
|
+
</li>
|
38
|
+
</ul>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div>
|
42
|
+
<h3 class="ui-meganav-overline uppercase" id="meganav-developers-panel-quick-links">Quick links</h3>
|
43
|
+
<ul aria-labelledby="meganav-developers-panel-quick-links">
|
44
|
+
<li>
|
45
|
+
<%= link_to abs_url("/download"), class: "group ui-meganav-media py-12" do %>
|
46
|
+
<p class="ui-meganav-media-heading">Download an SDK</p>
|
47
|
+
<% end %>
|
48
|
+
</li>
|
49
|
+
|
50
|
+
<li>
|
51
|
+
<a href="https://changelog.ably.com/" class="group ui-meganav-media py-12">
|
52
|
+
<p class="ui-meganav-media-heading">Platform changelog</p>
|
53
|
+
</a>
|
54
|
+
</li>
|
55
|
+
|
56
|
+
<li>
|
57
|
+
<%= link_to abs_url("/support"), class: "group ui-meganav-media py-12" do %>
|
58
|
+
<p class="ui-meganav-media-heading">Support & FAQs</p>
|
59
|
+
<% end %>
|
60
|
+
</li>
|
61
|
+
|
62
|
+
<li>
|
63
|
+
<a href="http://status.ably.com/" class="group ui-meganav-media py-12">
|
64
|
+
<p class="ui-meganav-media-heading">
|
65
|
+
Status<iframe
|
66
|
+
src="https://status.ably.com/embed/icon"
|
67
|
+
allowtransparency="true"
|
68
|
+
frameborder="0"
|
69
|
+
scrolling="no"
|
70
|
+
class="w-24 h-24 ml-4 border-none pointer-events-none align-middle"
|
71
|
+
></iframe>
|
72
|
+
</p>
|
73
|
+
</a>
|
74
|
+
</li>
|
75
|
+
</ul>
|
76
|
+
</div>
|
77
|
+
</section>
|
@@ -0,0 +1 @@
|
|
1
|
+
!function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.AblyUi=o():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavContentPlatform=o())}(this,(function(){return{}.default}));
|
@@ -0,0 +1,91 @@
|
|
1
|
+
<section class="ui-meganav-content ui-grid-gap sm:grid-cols-2 md:grid-cols-3">
|
2
|
+
<div class="sm:col-span-full md:col-span-1">
|
3
|
+
<div class="flex mb-20">
|
4
|
+
<%= image_tag(ably_stack_path, alt: "Ably homepage") %>
|
5
|
+
<h3 class="ui-meganav-overline ml-24">The Ably Platform</h3>
|
6
|
+
</div>
|
7
|
+
|
8
|
+
<p class="text-p2 font-medium text-cool-black mb-8">
|
9
|
+
Easily power any realtime experience in your application. No complex infrastructure to manage or provision. Just a simple API that handles everything
|
10
|
+
realtime, and lets you focus on your code.
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<%= render(AblyUi::Core::FeaturedLink.new(url: abs_url("/platform"))) do %>Explore how it works<% end %>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<div>
|
17
|
+
<h3 class="ui-meganav-overline" id="meganav-platform-panel-list-our-features">Our features</h3>
|
18
|
+
<ul aria-labelledby="meganav-platform-panel-list-our-features">
|
19
|
+
<li>
|
20
|
+
<%= link_to abs_url("/pub-sub-messaging"), class: "ui-meganav-media group" do %>
|
21
|
+
<p class="ui-meganav-media-heading">Publish/subscribe messaging</p>
|
22
|
+
<p class="ui-meganav-media-copy">Feature-rich pub/sub messaging to power any realtime requirement.</p>
|
23
|
+
<% end %>
|
24
|
+
</li>
|
25
|
+
<li>
|
26
|
+
<%= link_to abs_url("/push-notifications"), class: "ui-meganav-media group" do %>
|
27
|
+
<p class="ui-meganav-media-heading">Push notifications</p>
|
28
|
+
<p class="ui-meganav-media-copy">Deliver native notifications at scale with our unified API.</p>
|
29
|
+
<% end %>
|
30
|
+
</li>
|
31
|
+
<li>
|
32
|
+
<%= link_to abs_url("/integrations"), class: "ui-meganav-media group" do %>
|
33
|
+
<p class="ui-meganav-media-heading">Third-party integrations</p>
|
34
|
+
<p class="ui-meganav-media-copy">Integrate and extend Ably with cloud services like AWS Kinesis.</p>
|
35
|
+
<% end %>
|
36
|
+
</li>
|
37
|
+
<li>
|
38
|
+
<%= link_to abs_url("/protocols"), class: "ui-meganav-media group" do %>
|
39
|
+
<p class="ui-meganav-media-heading">Multi-protocol messaging</p>
|
40
|
+
<p class="ui-meganav-media-copy">We support pub/sub over WebSockets, MQTT, SSE, and more.</p>
|
41
|
+
<% end %>
|
42
|
+
</li>
|
43
|
+
<li>
|
44
|
+
<%= link_to abs_url("/hub"), class: "ui-meganav-media group" do %>
|
45
|
+
<p class="ui-meganav-media-heading">Streaming data sources</p>
|
46
|
+
<p class="ui-meganav-media-copy">Augment your apps with realtime updates like weather or transit.</p>
|
47
|
+
<% end %>
|
48
|
+
</li>
|
49
|
+
</ul>
|
50
|
+
|
51
|
+
<%= render(AblyUi::Core::FeaturedLink.new(url: abs_url("/platform"))) do %>Explore all platform features<% end %>
|
52
|
+
</div>
|
53
|
+
|
54
|
+
<div>
|
55
|
+
<h3 class="ui-meganav-overline" id="meganav-platform-panel-list-our-technology">Our technology</h3>
|
56
|
+
<ul class="mb-8" aria-labelledby="meganav-platform-panel-list-our-technology">
|
57
|
+
<li>
|
58
|
+
<%= link_to abs_url("/four-pillars-of-dependability#performance"), class: "ui-meganav-media group" do %>
|
59
|
+
<p class="ui-meganav-media-heading">Predictable performance</p>
|
60
|
+
<p class="ui-meganav-media-copy">We provide predictability so you can be confident your realtime application will always perform as expected.</p>
|
61
|
+
<% end %>
|
62
|
+
</li>
|
63
|
+
<li>
|
64
|
+
<%= link_to abs_url("/four-pillars-of-dependability#integrity"), class: "ui-meganav-media group" do %>
|
65
|
+
<p class="ui-meganav-media-heading">Guaranteed ordering & delivery</p>
|
66
|
+
<p class="ui-meganav-media-copy">We guarantee in-order data delivery, even after disconnections.</p>
|
67
|
+
<% end %>
|
68
|
+
</li>
|
69
|
+
<li>
|
70
|
+
<%= link_to abs_url("/four-pillars-of-dependability#reliability"), class: "ui-meganav-media group" do %>
|
71
|
+
<p class="ui-meganav-media-heading">Fault tolerant infrastructure</p>
|
72
|
+
<p class="ui-meganav-media-copy">Redundant at regional and global levels with 99.999% uptime SLAs.</p>
|
73
|
+
<% end %>
|
74
|
+
</li>
|
75
|
+
<li>
|
76
|
+
<%= link_to abs_url("/four-pillars-of-dependability#availability"), class: "ui-meganav-media group" do %>
|
77
|
+
<p class="ui-meganav-media-heading">High scalability & availability</p>
|
78
|
+
<p class="ui-meganav-media-copy">Elastic, battle-tested global infrastructure for massive scale.</p>
|
79
|
+
<% end %>
|
80
|
+
</li>
|
81
|
+
<li>
|
82
|
+
<%= link_to abs_url("/network"), class: "ui-meganav-media group" do %>
|
83
|
+
<p class="ui-meganav-media-heading">Global edge network</p>
|
84
|
+
<p class="ui-meganav-media-copy">An edge network of 15 core routing datacenters and 200+ PoPs.</p>
|
85
|
+
<% end %>
|
86
|
+
</li>
|
87
|
+
</ul>
|
88
|
+
|
89
|
+
<%= render(AblyUi::Core::FeaturedLink.new(url: abs_url("/four-pillars-of-dependability"))) do %>Explore our technology<% end %>
|
90
|
+
</div>
|
91
|
+
</section>
|
@@ -0,0 +1 @@
|
|
1
|
+
!function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.AblyUi=o():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavContentUseCases=o())}(this,(function(){return{}.default}));
|
@@ -0,0 +1,72 @@
|
|
1
|
+
<section class="ui-meganav-content ui-grid-gap md:grid-cols-2 gap-y-0 md:gap-y-32">
|
2
|
+
<div>
|
3
|
+
<h3 class="ui-meganav-overline" id="meganav-use-cases-panel-industry-use-cases">By industry use case</h3>
|
4
|
+
<ul aria-labelledby="meganav-use-cases-panel-industry-use-cases">
|
5
|
+
<li>
|
6
|
+
<%= link_to abs_url("/solutions/edtech"), class: "ui-meganav-media group" do %>
|
7
|
+
<p class="ui-meganav-media-heading">EdTech</p>
|
8
|
+
<p class="ui-meganav-media-copy">Deliver interactive learning experiences like multi-user classrooms with chat.</p>
|
9
|
+
<% end %>
|
10
|
+
</li>
|
11
|
+
<li>
|
12
|
+
<%= link_to abs_url("/solutions/automotive-logistics-and-mobility"), class: "ui-meganav-media group" do %>
|
13
|
+
<p class="ui-meganav-media-heading">Automotive, Logistics, & Mobility</p>
|
14
|
+
<p class="ui-meganav-media-copy">Power asset tracking, live transit updates, race-critical diagnostics, and more.</p>
|
15
|
+
<% end %>
|
16
|
+
</li>
|
17
|
+
<li>
|
18
|
+
<%= link_to abs_url("/solutions/b2b-platforms"), class: "ui-meganav-media group" do %>
|
19
|
+
<p class="ui-meganav-media-heading">B2B Platforms</p>
|
20
|
+
<p class="ui-meganav-media-copy">Empower customers with realtime technology that gives them a competitive edge.</p>
|
21
|
+
<% end %>
|
22
|
+
</li>
|
23
|
+
<li>
|
24
|
+
<%= link_to abs_url("/solutions/healthcare"), class: "ui-meganav-media group" do %>
|
25
|
+
<p class="ui-meganav-media-heading">Healthcare</p>
|
26
|
+
<p class="ui-meganav-media-copy">Provide HIPAA-compliant realtime apps healthcare professionals can depend on.</p>
|
27
|
+
<% end %>
|
28
|
+
</li>
|
29
|
+
<li>
|
30
|
+
<%= link_to abs_url("/solutions/virtual-events"), class: "ui-meganav-media group" do %>
|
31
|
+
<p class="ui-meganav-media-heading">Virtual Events</p>
|
32
|
+
<p class="ui-meganav-media-copy">Power engaging virtual events with interactive realtime features.</p>
|
33
|
+
<% end %>
|
34
|
+
</li>
|
35
|
+
</ul>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
<div>
|
39
|
+
<ul class="md:mt-40" aria-labelledby="meganav-use-cases-panel-industry-use-cases">
|
40
|
+
<li>
|
41
|
+
<%= link_to abs_url("/solutions/iot-and-connected-devices"), class: "ui-meganav-media group" do %>
|
42
|
+
<p class="ui-meganav-media-heading">IoT & Connected Devices</p>
|
43
|
+
<p class="ui-meganav-media-copy">Monitor and control global IoT deployments of any kind in realtime.</p>
|
44
|
+
<% end %>
|
45
|
+
</li>
|
46
|
+
<li>
|
47
|
+
<%= link_to abs_url("/solutions/sports-and-media"), class: "ui-meganav-media group" do %>
|
48
|
+
<p class="ui-meganav-media-heading">Sports & Media</p>
|
49
|
+
<p class="ui-meganav-media-copy">Deliver global realtime experiences to keep fans informed, engaged, entertained.</p>
|
50
|
+
<% end %>
|
51
|
+
</li>
|
52
|
+
<li>
|
53
|
+
<%= link_to abs_url("/solutions/gaming"), class: "ui-meganav-media group" do %>
|
54
|
+
<p class="ui-meganav-media-heading">Gaming</p>
|
55
|
+
<p class="ui-meganav-media-copy">Power interactive gaming experiences that are wicked fast and utterly reliable.</p>
|
56
|
+
<% end %>
|
57
|
+
</li>
|
58
|
+
<li>
|
59
|
+
<%= link_to abs_url("/solutions/ecommerce-and-retail"), class: "ui-meganav-media group" do %>
|
60
|
+
<p class="ui-meganav-media-heading">eCommerce & Retail</p>
|
61
|
+
<p class="ui-meganav-media-copy">Enable realtime pricing, inventory, and transactions to enrich user experiences.</p>
|
62
|
+
<% end %>
|
63
|
+
</li>
|
64
|
+
<li>
|
65
|
+
<%= link_to abs_url("/solutions/asset-tracking"), class: "ui-meganav-media group" do %>
|
66
|
+
<p class="ui-meganav-media-heading">Asset Tracking</p>
|
67
|
+
<p class="ui-meganav-media-copy">Track assets in realtime with a solution optimized for last mile logistics, food delivery applications, and urban mobility services.</p>
|
68
|
+
<% end %>
|
69
|
+
</li>
|
70
|
+
</ul>
|
71
|
+
</div>
|
72
|
+
</section>
|
@@ -0,0 +1 @@
|
|
1
|
+
!function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.AblyUi=o():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavContentWhyAbly=o())}(this,(function(){return{}.default}));
|
@@ -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/datasheets"), 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>
|
@@ -0,0 +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,{n:()=>n});var n=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,n,o){if(window.matchMedia("(hover: hover) and (pointer: fine) and (min-width: ".concat(i,")")).matches&&!r.some((function(e){return e===document.activeElement}))){var a,u=["invisible","visible"];(a=n.classList).replace.apply(a,function(e){if(Array.isArray(e))return t(e)}(c=o?u:u.reverse())||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||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}}(c)||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 c};return r.map((function(e){var t=e.parentNode,i=document.querySelector("#".concat(e.getAttribute("aria-controls"))),a=function(e,t){return function(){r.forEach((function(t){return t!==e&&t.setAttribute("aria-expanded",!1)})),n.forEach((function(e){return e!==t&&e.classList.replace("visible","invisible")})),e.getAttribute("aria-expanded")?(e.setAttribute("aria-expanded",!0),t.classList.replace("invisible","visible")):(e.setAttribute("aria-expanded",!1),t.classList.replace("visible","invisible"))}}(e,i),u=function(e,t){return function(){return o(e,t,!0)}}(e,i),c=function(e,t){return function(){return o(e,t,!1)}}(e,i);return t.addEventListener("mouseenter",u),t.addEventListener("mouseleave",c),e.addEventListener("click",a),[{teardown:function(){t.removeEventListener("mouseenter",u),t.removeEventListener("mouseleave",c),e.removeEventListener("click",a)},clear:function(){e.setAttribute("aria-expanded",!1),i.classList.replace("visible","invisible")}}]})).flat()}})(),n.default})()}));
|