@ably/ui 14.5.1 → 14.6.0-dev.5cd05dc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/core/.DS_Store +0 -0
  2. package/core/Accordion/.DS_Store +0 -0
  3. package/core/Accordion/types.js +1 -0
  4. package/core/Accordion.js +1 -1
  5. package/core/Code/.DS_Store +0 -0
  6. package/core/ContactFooter/.DS_Store +0 -0
  7. package/core/CookieMessage/.DS_Store +0 -0
  8. package/core/CustomerLogos/.DS_Store +0 -0
  9. package/core/DropdownMenu/.DS_Store +0 -0
  10. package/core/FeaturedLink/.DS_Store +0 -0
  11. package/core/Flash/.DS_Store +0 -0
  12. package/core/Flash.js +1 -1
  13. package/core/Footer/.DS_Store +0 -0
  14. package/core/Footer.js +1 -1
  15. package/core/Icon/.DS_Store +0 -0
  16. package/core/Icon/secondary-colors.js +1 -1
  17. package/core/Icon/types.js +1 -0
  18. package/core/Icon.js +1 -1
  19. package/core/Loader/.DS_Store +0 -0
  20. package/core/Logo/.DS_Store +0 -0
  21. package/core/Meganav/.DS_Store +0 -0
  22. package/core/MeganavBlogPostsList/.DS_Store +0 -0
  23. package/core/MeganavControl/.DS_Store +0 -0
  24. package/core/MeganavControlMobileDropdown/.DS_Store +0 -0
  25. package/core/MeganavControlMobilePanelClose/.DS_Store +0 -0
  26. package/core/MeganavControlMobilePanelOpen/.DS_Store +0 -0
  27. package/core/MeganavSearchAutocomplete/.DS_Store +0 -0
  28. package/core/MeganavSearchSuggestions/.DS_Store +0 -0
  29. package/core/Notice/.DS_Store +0 -0
  30. package/core/Slider/.DS_Store +0 -0
  31. package/core/Table/.DS_Store +0 -0
  32. package/core/Tooltip/.DS_Store +0 -0
  33. package/core/icons/.DS_Store +0 -0
  34. package/core/icons/icon-display-custom.svg +7 -0
  35. package/core/icons/icon-display-integrations.svg +8 -0
  36. package/core/sprites.svg +1 -1
  37. package/core/styles/colors/types.js +1 -0
  38. package/core/styles/properties.css +3 -3
  39. package/index.d.ts +103 -24
  40. package/package.json +2 -2
  41. /package/core/icons/{quote.svg → icon-other-quote.svg} +0 -0
  42. /package/core/icons/{discord.svg → icon-social-discord.svg} +0 -0
  43. /package/core/icons/{facebook.svg → icon-social-facebook.svg} +0 -0
  44. /package/core/icons/{github.svg → icon-social-github.svg} +0 -0
  45. /package/core/icons/{glassdoor.svg → icon-social-glassdoor.svg} +0 -0
  46. /package/core/icons/{google.svg → icon-social-google.svg} +0 -0
  47. /package/core/icons/{linkedin.svg → icon-social-linkedin.svg} +0 -0
  48. /package/core/icons/{stackoverflow.svg → icon-social-stackoverflow.svg} +0 -0
  49. /package/core/icons/{twitter.svg → icon-social-twitter.svg} +0 -0
  50. /package/core/icons/{youtube.svg → icon-social-youtube.svg} +0 -0
package/core/.DS_Store ADDED
Binary file
Binary file
@@ -0,0 +1 @@
1
+ export const accordionThemes=["dark","light","transparent"];
package/core/Accordion.js CHANGED
@@ -1 +1 @@
1
- import React,{useState}from"react";import Icon from"./Icon";const AccordionRow=({name,children,index,setActiveIndex,active,topBorder,bottomBorder,last,arrowIcon})=>{let iconActive,iconInactive;const handleSetIndex=()=>{setActiveIndex(index)};if(arrowIcon){iconActive=/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-disclosure-arrow",color:"text-dark-grey",size:"1.5rem",additionalCSS:"-rotate-90"});iconInactive=/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-disclosure-arrow",color:"text-dark-grey",size:"1.5rem",additionalCSS:"rotate-90"})}else{iconActive=/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-minus",color:"text-dark-grey",size:"1.5rem"});iconInactive=/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-plus",color:"text-dark-grey",size:"1.5rem"})}return /*#__PURE__*/React.createElement("div",{className:`border-mid-grey ${last&&!bottomBorder?"":"border-b"} ${topBorder?"border-t":""}`},/*#__PURE__*/React.createElement("button",{type:"button",onClick:handleSetIndex,className:`flex w-full px-0 focus:outline-none py-20`},/*#__PURE__*/React.createElement("span",{className:"ui-text-p1 font-bold text-left mr-8"},name),/*#__PURE__*/React.createElement("span",{className:"ml-auto"},active?iconActive:iconInactive)),/*#__PURE__*/React.createElement("section",{className:"ui-text-p2 transition-all overflow-hidden",style:{maxHeight:active?"500px":"0",paddingBottom:active?"1.5rem":"0"}},children))};const Accordion=({data,id="id-accordion",topBorder,bottomBorder,arrowIcon,autoClose,className})=>{const[activeIndexes,setActiveIndexes]=useState([]);const handleSetIndex=index=>{const currentIndexIsActive=activeIndexes.includes(index);if(autoClose){setActiveIndexes(currentIndexIsActive?[]:[index])}else{setActiveIndexes(currentIndexIsActive?activeIndexes.filter(i=>i!==index):[...activeIndexes,index])}};return /*#__PURE__*/React.createElement("div",{className:className,id:id},data.map((item,currentIndex)=>{return /*#__PURE__*/React.createElement(AccordionRow,{key:item.name,name:item.name,arrowIcon:arrowIcon,index:currentIndex,last:data.length===currentIndex+1,topBorder:topBorder&&currentIndex===0,bottomBorder:bottomBorder&&data.length===currentIndex+1,active:activeIndexes.includes(currentIndex),setActiveIndex:handleSetIndex},item.content)}))};export default Accordion;
1
+ import React,{useState,useRef,useEffect}from"react";import Icon from"./Icon";import throttle from"lodash.throttle";const themeClasses={dark:{bg:"bg-neutral-1200",hoverBg:"hover:bg-neutral-1100",text:"text-white",toggleIconColor:"text-orange-600",selectableBg:"bg-neutral-300",selectableText:"text-neutral-1300"},light:{bg:"bg-neutral-200",hoverBg:"hover:bg-neutral-300",text:"text-neutral-1300",toggleIconColor:"text-neutral-1000",selectableBg:"bg-neutral-1200",selectableText:"text-white"},transparent:{bg:"bg-white",hoverBg:"hover:bg-white",text:"text-neutral-1000",toggleIconColor:"text-dark-grey"}};const isNonTransparentTheme=theme=>theme!=="transparent";const AccordionRow=({name,children,onClick,open,rowIcon,options,toggleIcons,theme})=>{const rowRef=useRef(null);const[contentHeight,setContentHeight]=useState(0);useEffect(()=>{const handleHeight=throttle(()=>{if(rowRef.current){setContentHeight(rowRef.current.scrollHeight+16)}},250);handleHeight();window.addEventListener("resize",handleHeight);return()=>window.removeEventListener("resize",handleHeight)},[]);const{selectable,sticky}=options||{};const{text,bg,hoverBg,toggleIconColor,selectableBg,selectableText}=themeClasses[theme];const bgClasses=selectable&&open&&selectableBg||`${bg} ${hoverBg}`;const textClass=selectable&&open&&selectableText||text;return /*#__PURE__*/React.createElement("div",{className:`border-mid-grey border-b last:border-none ${isNonTransparentTheme(theme)?"border-none":""}`},/*#__PURE__*/React.createElement("button",{type:"button",onClick:onClick,className:`flex w-full ${sticky?"sticky top-0":""} focus:outline-none py-16 rounded-lg ui-text-p1 font-bold text-left items-center gap-12 ${isNonTransparentTheme(theme)?"px-16":""} transition-colors ${bgClasses} ${textClass}`},rowIcon?/*#__PURE__*/React.createElement(Icon,{name:rowIcon,color:textClass,size:"32"}):null,/*#__PURE__*/React.createElement("span",null,name),!selectable?/*#__PURE__*/React.createElement("span",{className:"flex-1 justify-end flex items-center"},/*#__PURE__*/React.createElement(Icon,{name:open?toggleIcons.open.name:toggleIcons.closed.name,color:toggleIconColor,size:"16"})," "):null),/*#__PURE__*/React.createElement("div",{className:`ui-text-p2 transition-[max-height] duration-500 overflow-hidden ${isNonTransparentTheme(theme)?"pt-16 px-16":"px-0"}`,style:{maxHeight:open?contentHeight:0},ref:rowRef},/*#__PURE__*/React.createElement("div",{className:"pb-16"},children)))};const Accordion=({data,theme="transparent",id="id-accordion",className="",icons={closed:{name:"icon-gui-plus"},open:{name:"icon-gui-minus"}},options})=>{const{defaultOpenIndexes,autoClose}=options||{};const[openIndexes,setOpenIndexes]=useState(defaultOpenIndexes??[]);const handleSetIndex=index=>{const currentIndexIsOpen=openIndexes.includes(index);if(autoClose){setOpenIndexes(currentIndexIsOpen?[]:[index])}else{setOpenIndexes(currentIndexIsOpen?openIndexes.filter(i=>i!==index):[...openIndexes,index])}};return /*#__PURE__*/React.createElement("div",{className:className,id:id},data.map((item,currentIndex)=>{return /*#__PURE__*/React.createElement(AccordionRow,{key:item.name,name:item.name,rowIcon:item.icon,open:openIndexes.includes(currentIndex),onClick:()=>handleSetIndex(currentIndex),toggleIcons:icons,theme:theme,options:options},item.content)}))};export default Accordion;
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/core/Flash.js CHANGED
@@ -1 +1 @@
1
- import React,{useEffect,useState,useRef}from"react";import DOMPurify from"dompurify";import{getRemoteDataStore}from"./remote-data-store.js";import ConnectStateWrapper from"./ConnectStateWrapper";import Icon from"./Icon";const REDUCER_KEY="flashes";const FLASH_DATA_ID="ui-flashes";const initialState={items:[]};const reducerFlashes={[REDUCER_KEY]:(state=initialState,action)=>{switch(action.type){case"flash/push":{const flashes=Array.isArray(action.payload)?action.payload:[action.payload];return{items:[...state.items,...flashes]}}default:return state}}};const selectFlashes=store=>store.getState()[REDUCER_KEY];const FLASH_BG_COLOR={error:"bg-gui-error",success:"bg-zingy-green",notice:"bg-electric-cyan",info:"bg-electric-cyan",alert:"bg-active-orange"};const FLASH_TEXT_COLOR={error:"text-white",success:"text-cool-black",notice:"text-cool-black",info:"text-cool-black",alert:"text-white"};const AUTO_HIDE=["success","info","notice"];const AUTO_HIDE_TIME=8e3;const useAutoHide=(type,closeFlash)=>{const timeoutId=useRef(null);useEffect(()=>{if(AUTO_HIDE.includes(type)){timeoutId.current=setTimeout(()=>{closeFlash()},AUTO_HIDE_TIME)}return()=>{if(timeoutId.current){clearTimeout(timeoutId.current)}}},[])};const Flash=({id,type,content,removeFlash})=>{const ref=useRef(null);const[closed,setClosed]=useState(false);const[flashHeight,setFlashHeight]=useState(0);const[triggerEntryAnimation,setTriggerEntryAnimation]=useState(false);const closeFlash=()=>{if(ref.current){setFlashHeight(ref.current.getBoundingClientRect().height)}setClosed(true);setTimeout(()=>{id&&removeFlash(id)},100)};useEffect(()=>setTriggerEntryAnimation(true),[]);useAutoHide(type,closeFlash);const animateEntry=triggerEntryAnimation&&!closed;let style;if(flashHeight&&!closed){style={height:`${flashHeight}px`}}else if(closed){style={height:0,marginTop:0,zIndex:-1}}else{style={}}const safeContent=DOMPurify.sanitize(content,{ALLOWED_TAGS:["a"],ALLOWED_ATTR:["href","data-method","rel"]});const withIcons={notice:"icon-gui-ably-badge",success:"icon-gui-tick",error:"icon-gui-warning",alert:"icon-gui-warning",info:""};const iconColor={notice:"text-cool-black",success:"text-cool-black",error:"text-white",alert:"text-white",info:""};return /*#__PURE__*/React.createElement("div",{className:`ui-flash-message ui-grid-px ${animateEntry?"ui-flash-message-enter":""}`,style:style,ref:ref,"data-id":"ui-flash"},/*#__PURE__*/React.createElement("div",{className:`${FLASH_BG_COLOR[type]} p-32 flex align-center rounded shadow-container-subtle`},withIcons[type]&&/*#__PURE__*/React.createElement(Icon,{name:withIcons[type],color:iconColor[type],size:"1.5rem",additionalCSS:"mr-16 self-baseline"}),/*#__PURE__*/React.createElement("p",{className:`ui-text-p1 mr-16 ${FLASH_TEXT_COLOR[type]}`,dangerouslySetInnerHTML:{__html:safeContent}}),/*#__PURE__*/React.createElement("button",{type:"button",className:"p-0 ml-auto self-start focus:outline-none",onClick:closeFlash},/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-close",color:iconColor[type],size:"1.5rem",additionalCSS:"transition-colors"}))))};const Flashes=({flashes})=>{const[flashesWithIds,setFlashesWithIds]=useState([]);const removeFlash=flashId=>setFlashesWithIds(items=>items.filter(item=>item.id!==flashId));useEffect(()=>{setFlashesWithIds(state=>{return[...state,...(flashes?.items??[]).map(flash=>({...flash,id:Math.random().toString(36).slice(2),removed:false}))]})},[flashes]);return /*#__PURE__*/React.createElement("div",{className:"ui-flash","data-id":FLASH_DATA_ID},flashesWithIds.filter(item=>!item.removed).map(flash=>/*#__PURE__*/React.createElement(Flash,{key:flash.id,...flash,removeFlash:removeFlash})))};const BackendFlashes=({flashes})=>{useEffect(()=>{const transformedFlashes=flashes.map(flash=>{const[type,content]=flash;return{type,content}})||[];if(transformedFlashes.length>0){const store=getRemoteDataStore();store.dispatch({type:"flash/push",payload:transformedFlashes})}},[]);const WrappedFlashes=ConnectStateWrapper(Flashes,{flashes:selectFlashes});return /*#__PURE__*/React.createElement(WrappedFlashes,null)};export{reducerFlashes,FLASH_DATA_ID,Flashes};export default BackendFlashes;
1
+ import React,{useEffect,useState,useRef}from"react";import DOMPurify from"dompurify";import{getRemoteDataStore}from"./remote-data-store.js";import ConnectStateWrapper from"./ConnectStateWrapper";import Icon from"./Icon";const REDUCER_KEY="flashes";const FLASH_DATA_ID="ui-flashes";const initialState={items:[]};const reducerFlashes={[REDUCER_KEY]:(state=initialState,action)=>{switch(action.type){case"flash/push":{const flashes=Array.isArray(action.payload)?action.payload:[action.payload];return{items:[...state.items,...flashes]}}default:return state}}};const selectFlashes=store=>store.getState()[REDUCER_KEY];const FLASH_BG_COLOR={error:"bg-gui-error",success:"bg-zingy-green",notice:"bg-electric-cyan",info:"bg-electric-cyan",alert:"bg-active-orange"};const FLASH_TEXT_COLOR={error:"text-white",success:"text-cool-black",notice:"text-cool-black",info:"text-cool-black",alert:"text-white"};const AUTO_HIDE=["success","info","notice"];const AUTO_HIDE_TIME=8e3;const useAutoHide=(type,closeFlash)=>{const timeoutId=useRef(null);useEffect(()=>{if(AUTO_HIDE.includes(type)){timeoutId.current=setTimeout(()=>{closeFlash()},AUTO_HIDE_TIME)}return()=>{if(timeoutId.current){clearTimeout(timeoutId.current)}}},[])};const Flash=({id,type,content,removeFlash})=>{const ref=useRef(null);const[closed,setClosed]=useState(false);const[flashHeight,setFlashHeight]=useState(0);const[triggerEntryAnimation,setTriggerEntryAnimation]=useState(false);const closeFlash=()=>{if(ref.current){setFlashHeight(ref.current.getBoundingClientRect().height)}setClosed(true);setTimeout(()=>{id&&removeFlash(id)},100)};useEffect(()=>setTriggerEntryAnimation(true),[]);useAutoHide(type,closeFlash);const animateEntry=triggerEntryAnimation&&!closed;let style;if(flashHeight&&!closed){style={height:`${flashHeight}px`}}else if(closed){style={height:0,marginTop:0,zIndex:-1}}else{style={}}const safeContent=DOMPurify.sanitize(content,{ALLOWED_TAGS:["a"],ALLOWED_ATTR:["href","data-method","rel"]});const withIcons={notice:"icon-gui-ably-badge",success:"icon-gui-tick",error:"icon-gui-warning",alert:"icon-gui-warning",info:""};const iconColor={notice:"text-cool-black",success:"text-cool-black",error:"text-white",alert:"text-white",info:""};return /*#__PURE__*/React.createElement("div",{className:`ui-flash-message ui-grid-px ${animateEntry?"ui-flash-message-enter":""}`,style:style,ref:ref,"data-id":"ui-flash"},/*#__PURE__*/React.createElement("div",{className:`${FLASH_BG_COLOR[type]} p-32 flex align-center rounded shadow-container-subtle`},withIcons[type]&&iconColor[type]&&/*#__PURE__*/React.createElement(Icon,{name:withIcons[type],color:iconColor[type],size:"1.5rem",additionalCSS:"mr-16 self-baseline"}),/*#__PURE__*/React.createElement("p",{className:`ui-text-p1 mr-16 ${FLASH_TEXT_COLOR[type]}`,dangerouslySetInnerHTML:{__html:safeContent}}),/*#__PURE__*/React.createElement("button",{type:"button",className:"p-0 ml-auto self-start focus:outline-none",onClick:closeFlash},iconColor[type]&&/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-close",color:iconColor[type],size:"1.5rem",additionalCSS:"transition-colors"}))))};const Flashes=({flashes})=>{const[flashesWithIds,setFlashesWithIds]=useState([]);const removeFlash=flashId=>setFlashesWithIds(items=>items.filter(item=>item.id!==flashId));useEffect(()=>{setFlashesWithIds(state=>{return[...state,...(flashes?.items??[]).map(flash=>({...flash,id:Math.random().toString(36).slice(2),removed:false}))]})},[flashes]);return /*#__PURE__*/React.createElement("div",{className:"ui-flash","data-id":FLASH_DATA_ID},flashesWithIds.filter(item=>!item.removed).map(flash=>/*#__PURE__*/React.createElement(Flash,{key:flash.id,...flash,removeFlash:removeFlash})))};const BackendFlashes=({flashes})=>{useEffect(()=>{const transformedFlashes=flashes.map(flash=>{const[type,content]=flash;return{type,content}})||[];if(transformedFlashes.length>0){const store=getRemoteDataStore();store.dispatch({type:"flash/push",payload:transformedFlashes})}},[]);const WrappedFlashes=ConnectStateWrapper(Flashes,{flashes:selectFlashes});return /*#__PURE__*/React.createElement(WrappedFlashes,null)};export{reducerFlashes,FLASH_DATA_ID,Flashes};export default BackendFlashes;
Binary file
package/core/Footer.js CHANGED
@@ -1 +1 @@
1
- import React from"react";import Icon from"./Icon";import _absUrl from"./url-base.js";import Status from"./Status.js";const Footer=({paths,urlBase,statusUrl})=>{const absUrl=path=>_absUrl(path,urlBase);return /*#__PURE__*/React.createElement("footer",{className:"bg-light-grey font-sans antialiased leading-normal","data-id":"footer"},/*#__PURE__*/React.createElement("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"},/*#__PURE__*/React.createElement("div",{className:"col-span-full md:col-span-2"},/*#__PURE__*/React.createElement("div",{className:"flex flex-row p-menu-row-snug"},/*#__PURE__*/React.createElement("img",{className:"mr-24 -mt-16",src:paths.ablyStack,alt:"Ably homepage"}),/*#__PURE__*/React.createElement("h2",{className:"ui-text-overline2 col-span-full"},"The Ably Platform")),/*#__PURE__*/React.createElement("div",{className:"md:col-span-4 md:w-3/4 xs:w-3/5 w-full"},/*#__PURE__*/React.createElement("p",{className:"ui-text-p3 font-bold py-16 p-menu-row-snug"},"Easily power any realtime experience in your application via a simple API that handles everything realtime.")),/*#__PURE__*/React.createElement("ul",{className:"grid grid-cols-1"},/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/pubsub"),className:"ui-footer-menu-row-link"},"Pub/sub messaging")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/push-notifications"),className:"ui-footer-menu-row-link"},"Push notifications")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/integrations"),className:"ui-footer-menu-row-link"},"Third-party integrations")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/protocols"),className:"ui-footer-menu-row-link"},"Multiple protocol messaging")))),/*#__PURE__*/React.createElement("div",{className:"col-span-full xs:col-span-3 md:col-span-1"},/*#__PURE__*/React.createElement("h2",{className:"ui-footer-col-title"},"Ably is for"),/*#__PURE__*/React.createElement("ul",null,/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/asset-tracking"),className:"ui-footer-menu-row-link"},"Ably Asset Tracking")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/extend-kafka-to-the-edge"),className:"ui-footer-menu-row-link"},"Extend Kafka to the edge")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/edtech"),className:"ui-footer-menu-row-link"},"EdTech")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/automotive-logistics-and-mobility"),className:"ui-footer-menu-row-link"},"Automotive, Logistics, & Mobility")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/b2b-platforms"),className:"ui-footer-menu-row-link"},"B2B Platforms")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/healthcare"),className:"ui-footer-menu-row-link"},"Healthcare")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/ecommerce-and-retail"),className:"ui-footer-menu-row-link"},"eCommerce & Retail")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/sports-and-media"),className:"ui-footer-menu-row-link"},"Sports & Media")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/gaming"),className:"ui-footer-menu-row-link"},"Gaming")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/iot-and-connected-devices"),className:"ui-footer-menu-row-link"},"IoT & Connected Devices")))),/*#__PURE__*/React.createElement("div",{className:"col-span-full xs:col-span-3 md:col-span-1"},/*#__PURE__*/React.createElement("h2",{className:"ui-footer-col-title"},"Developers"),/*#__PURE__*/React.createElement("ul",null,/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/docs/quick-start-guide"),className:"ui-footer-menu-row-link"},"Start in 5 minutes")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/docs/"),className:"ui-footer-menu-row-link"},"Documentation")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/tutorials"),className:"ui-footer-menu-row-link"},"Tutorials")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:"https://changelog.ably.com/",className:"ui-footer-menu-row-link"},"Changelog")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/support"),className:"ui-footer-menu-row-link"},"Support & FAQs")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/docs/sdks"),className:"ui-footer-menu-row-link"},"SDKs")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug flex items-center -mt-4"},/*#__PURE__*/React.createElement("a",{className:"pr-8 ui-footer-menu-row-link",href:"https://status.ably.com/"},"System status"),/*#__PURE__*/React.createElement(Status,{statusUrl:statusUrl})))),/*#__PURE__*/React.createElement("div",{className:"col-span-full xs:col-span-3 md:col-span-1"},/*#__PURE__*/React.createElement("h2",{className:"ui-footer-col-title"},"WHY ABLY"),/*#__PURE__*/React.createElement("ul",null,/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/customers"),className:"ui-footer-menu-row-link"},"Customers")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/case-studies"),className:"ui-footer-menu-row-link"},"Case Studies")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/four-pillars-of-dependability"),className:"ui-footer-menu-row-link"},"Four Pillars of Dependability")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/compare"),className:"ui-footer-menu-row-link"},"Compare our tech")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/protocols"),className:"ui-footer-menu-row-link"},"Multi protocol support")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/integrations"),className:"ui-footer-menu-row-link"},"Third-party integrations")))),/*#__PURE__*/React.createElement("div",{className:"col-span-full xs:col-span-3 md:col-span-1"},/*#__PURE__*/React.createElement("h2",{className:"ui-footer-col-title"},"ABOUT"),/*#__PURE__*/React.createElement("ul",null,/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/about"),className:"ui-footer-menu-row-link"},"About Ably")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/pricing"),className:"ui-footer-menu-row-link"},"Pricing")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/blog"),className:"ui-footer-menu-row-link"},"Blog")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/careers"),className:"ui-footer-menu-row-link"},"Careers")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/open-policy"),className:"ui-footer-menu-row-link"},"Open protocol policy")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/press-center"),className:"ui-footer-menu-row-link"},"Press & Media")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/contact"),className:"ui-footer-menu-row-link"},"Contact us"))))),/*#__PURE__*/React.createElement("div",{className:"max-w-screen-xl ui-grid-px mx-auto"},/*#__PURE__*/React.createElement("hr",{className:"border-t border-mid-grey my-0"})),/*#__PURE__*/React.createElement("div",{className:"max-w-screen-xl mx-auto py-16 grid ui-grid-gap ui-grid-px sm:grid-cols-2"},/*#__PURE__*/React.createElement("div",{className:"md:flex md:items-center"},/*#__PURE__*/React.createElement("div",{className:"flex flex-col md:flex-row flex-auto ml-8 sm:col-span-1 md:col-span-2"},/*#__PURE__*/React.createElement("div",{className:""},/*#__PURE__*/React.createElement("div",{className:"flex pb-24"},/*#__PURE__*/React.createElement("a",{className:"h-24 pr-24 text-cool-black hover:text-icon-twitter",href:"https://twitter.com/ablyrealtime",title:"Ably on X"},/*#__PURE__*/React.createElement(Icon,{name:"icon-social-x",size:"1.5rem"})),/*#__PURE__*/React.createElement("a",{className:"h-24 pr-24 text-cool-black hover:text-icon-linkedin",href:"https://www.linkedin.com/company/ably-realtime",title:"Ably on LinkedIn"},/*#__PURE__*/React.createElement(Icon,{name:"linkedin",size:"1.5rem"})),/*#__PURE__*/React.createElement("a",{className:"h-24 pr-24 text-cool-black hover:text-icon-github",href:"https://github.com/ably/",title:"Ably on Github"},/*#__PURE__*/React.createElement(Icon,{name:"github",size:"1.5rem"})),/*#__PURE__*/React.createElement("a",{className:"h-24 pr-24 text-cool-black hover:text-icon-discord",href:"https://discord.gg/jwBPhEZ9g5",title:"Ably on Discord"},/*#__PURE__*/React.createElement(Icon,{name:"discord",size:"1.5rem"})))),/*#__PURE__*/React.createElement("div",{className:"xs:hidden sm:block ui-footer-glassdoor"},/*#__PURE__*/React.createElement("div",{className:"flex sm:pt-24 md:pt-0 sm:border-t sm:border-l-0 md:border-t-0 md:border-l sm:border-mid-grey sm:w-3/4 md:w-full md:pl-24"},/*#__PURE__*/React.createElement("a",{href:"https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",className:"h-24 text-cool-black hover:text-icon-glassdoor",title:"Ably reviews on glassdoor"},/*#__PURE__*/React.createElement(Icon,{name:"glassdoor",size:"1.5rem"})),/*#__PURE__*/React.createElement("div",{className:"pl-16 text-menu3 font-sans font-medium"},/*#__PURE__*/React.createElement("strong",{className:"block font-medium"},"We're hiring!"),/*#__PURE__*/React.createElement("a",{href:"https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",className:"ui-footer-link"},"Learn more at Glassdoor"))))),/*#__PURE__*/React.createElement("div",{className:"xs:block sm:hidden"},/*#__PURE__*/React.createElement("div",{className:"border-t border-mid-grey w-full"}),/*#__PURE__*/React.createElement("div",{className:"flex py-24"},/*#__PURE__*/React.createElement("a",{className:"h-24 pr-16 text-cool-black hover:text-icon-glassdoor",href:"https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",title:"Ably reviews on glassdoor"},/*#__PURE__*/React.createElement(Icon,{name:"glassdoor",size:"1.5rem"})),/*#__PURE__*/React.createElement("div",{className:"text-menu3 font-sans font-medium"},/*#__PURE__*/React.createElement("strong",{className:"block font-medium"},"We're hiring!"),/*#__PURE__*/React.createElement("a",{href:"https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",className:"ui-footer-link"},"Learn more at Glassdoor"))))),/*#__PURE__*/React.createElement("div",{className:"col-span-full sm:col-span-1 inline-flex sm:ml-auto sm:items-center"},/*#__PURE__*/React.createElement("img",{className:"mr-24 h-80",src:paths.highestUserAdoption,alt:"Highest User Adoption 2023"}),/*#__PURE__*/React.createElement("img",{className:"mr-24 h-80",src:paths.bestSupport,alt:"Best Support 2023"}),/*#__PURE__*/React.createElement("img",{className:"mr-24 h-80",src:paths.fastestImplementation,alt:"Fastest Implementation 2023"}),/*#__PURE__*/React.createElement("img",{className:"mr-24 h-80",src:paths.highestPerformer,alt:"High Performer 2023"}))),/*#__PURE__*/React.createElement("div",{className:"max-w-screen-xl ui-grid-px mx-auto"},/*#__PURE__*/React.createElement("hr",{className:"border-t border-mid-grey my-0"})),/*#__PURE__*/React.createElement("div",{className:"max-w-screen-xl mx-auto py-24 sm:py-40 md:py-32 md:grid md:grid-cols-2 ui-grid-gap ui-grid-px"},/*#__PURE__*/React.createElement("div",{className:"flex ml-8 col-span-full sm:col-span-1 md:pb-16 items-center ui-footer-bottom-links"},/*#__PURE__*/React.createElement("div",{className:"flex"},/*#__PURE__*/React.createElement("a",{href:absUrl("/privacy"),className:"pr-24 ui-footer-link"},"Cookies"),/*#__PURE__*/React.createElement("a",{href:absUrl("/legals"),className:"pr-24 ui-footer-link"},"Legals"),/*#__PURE__*/React.createElement("a",{href:absUrl("/data-protection"),className:"pr-24 ui-footer-link"},"Data Protection"),/*#__PURE__*/React.createElement("a",{href:absUrl("/privacy"),className:"ui-footer-link"},"Privacy"))),/*#__PURE__*/React.createElement("div",{className:"xs:grid xs:grid-cols-2 sm:grid-cols-4 xs:pl-16 sm:pl-8 md:justify-items-end"},/*#__PURE__*/React.createElement("div",{className:"flex mr-24"},/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-tick",color:"text-active-orange",size:"1.5rem",additionalCSS:"bg-white rounded-full mr-12 ui-footer-tick-icon"}),/*#__PURE__*/React.createElement("div",null,/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-bold whitespace-nowrap"},"SOC 2 Type 2"),/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-medium mb-24"},"Certified"))),/*#__PURE__*/React.createElement("div",{className:"flex mr-24 md:col-start-2"},/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-tick",color:"text-active-orange",size:"1.5rem",additionalCSS:"bg-white rounded-full mr-12 ui-footer-tick-icon"}),/*#__PURE__*/React.createElement("div",null,/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-bold whitespace-nowrap"},"HIPAA"),/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-medium mb-24"},"Compliant"))),/*#__PURE__*/React.createElement("div",{className:"flex mr-24 md:col-start-3"},/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-tick",color:"text-active-orange",size:"1.5rem",additionalCSS:"bg-white rounded-full mr-12 ui-footer-tick-icon"}),/*#__PURE__*/React.createElement("div",null,/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-bold whitespace-nowrap"},"EU GDPR"),/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-medium mb-24"},"Certified"))),/*#__PURE__*/React.createElement("div",{className:"flex mr-24 md:col-start-4"},/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-tick",color:"text-active-orange",size:"1.5rem",additionalCSS:"bg-white rounded-full mr-12 ui-footer-tick-icon"}),/*#__PURE__*/React.createElement("div",null,/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-bold whitespace-nowrap"},"256-bit AES"),/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-medium mb-24"},"Encryption"))))))};export default Footer;
1
+ import React from"react";import Icon from"./Icon";import _absUrl from"./url-base.js";import Status from"./Status.js";const Footer=({paths,urlBase,statusUrl})=>{const absUrl=path=>_absUrl(path,urlBase);return /*#__PURE__*/React.createElement("footer",{className:"bg-light-grey font-sans antialiased leading-normal","data-id":"footer"},/*#__PURE__*/React.createElement("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"},/*#__PURE__*/React.createElement("div",{className:"col-span-full md:col-span-2"},/*#__PURE__*/React.createElement("div",{className:"flex flex-row p-menu-row-snug"},/*#__PURE__*/React.createElement("img",{className:"mr-24 -mt-16",src:paths.ablyStack,alt:"Ably homepage"}),/*#__PURE__*/React.createElement("h2",{className:"ui-text-overline2 col-span-full"},"The Ably Platform")),/*#__PURE__*/React.createElement("div",{className:"md:col-span-4 md:w-3/4 xs:w-3/5 w-full"},/*#__PURE__*/React.createElement("p",{className:"ui-text-p3 font-bold py-16 p-menu-row-snug"},"Easily power any realtime experience in your application via a simple API that handles everything realtime.")),/*#__PURE__*/React.createElement("ul",{className:"grid grid-cols-1"},/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/pubsub"),className:"ui-footer-menu-row-link"},"Pub/sub messaging")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/push-notifications"),className:"ui-footer-menu-row-link"},"Push notifications")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/integrations"),className:"ui-footer-menu-row-link"},"Third-party integrations")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/protocols"),className:"ui-footer-menu-row-link"},"Multiple protocol messaging")))),/*#__PURE__*/React.createElement("div",{className:"col-span-full xs:col-span-3 md:col-span-1"},/*#__PURE__*/React.createElement("h2",{className:"ui-footer-col-title"},"Ably is for"),/*#__PURE__*/React.createElement("ul",null,/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/asset-tracking"),className:"ui-footer-menu-row-link"},"Ably Asset Tracking")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/extend-kafka-to-the-edge"),className:"ui-footer-menu-row-link"},"Extend Kafka to the edge")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/edtech"),className:"ui-footer-menu-row-link"},"EdTech")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/automotive-logistics-and-mobility"),className:"ui-footer-menu-row-link"},"Automotive, Logistics, & Mobility")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/b2b-platforms"),className:"ui-footer-menu-row-link"},"B2B Platforms")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/healthcare"),className:"ui-footer-menu-row-link"},"Healthcare")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/ecommerce-and-retail"),className:"ui-footer-menu-row-link"},"eCommerce & Retail")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/sports-and-media"),className:"ui-footer-menu-row-link"},"Sports & Media")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/gaming"),className:"ui-footer-menu-row-link"},"Gaming")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/solutions/iot-and-connected-devices"),className:"ui-footer-menu-row-link"},"IoT & Connected Devices")))),/*#__PURE__*/React.createElement("div",{className:"col-span-full xs:col-span-3 md:col-span-1"},/*#__PURE__*/React.createElement("h2",{className:"ui-footer-col-title"},"Developers"),/*#__PURE__*/React.createElement("ul",null,/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/docs/quick-start-guide"),className:"ui-footer-menu-row-link"},"Start in 5 minutes")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/docs/"),className:"ui-footer-menu-row-link"},"Documentation")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/tutorials"),className:"ui-footer-menu-row-link"},"Tutorials")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:"https://changelog.ably.com/",className:"ui-footer-menu-row-link"},"Changelog")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/support"),className:"ui-footer-menu-row-link"},"Support & FAQs")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/docs/sdks"),className:"ui-footer-menu-row-link"},"SDKs")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug flex items-center -mt-4"},/*#__PURE__*/React.createElement("a",{className:"pr-8 ui-footer-menu-row-link",href:"https://status.ably.com/"},"System status"),/*#__PURE__*/React.createElement(Status,{statusUrl:statusUrl})))),/*#__PURE__*/React.createElement("div",{className:"col-span-full xs:col-span-3 md:col-span-1"},/*#__PURE__*/React.createElement("h2",{className:"ui-footer-col-title"},"WHY ABLY"),/*#__PURE__*/React.createElement("ul",null,/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/customers"),className:"ui-footer-menu-row-link"},"Customers")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/case-studies"),className:"ui-footer-menu-row-link"},"Case Studies")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/four-pillars-of-dependability"),className:"ui-footer-menu-row-link"},"Four Pillars of Dependability")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/compare"),className:"ui-footer-menu-row-link"},"Compare our tech")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/protocols"),className:"ui-footer-menu-row-link"},"Multi protocol support")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/integrations"),className:"ui-footer-menu-row-link"},"Third-party integrations")))),/*#__PURE__*/React.createElement("div",{className:"col-span-full xs:col-span-3 md:col-span-1"},/*#__PURE__*/React.createElement("h2",{className:"ui-footer-col-title"},"ABOUT"),/*#__PURE__*/React.createElement("ul",null,/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/about"),className:"ui-footer-menu-row-link"},"About Ably")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/pricing"),className:"ui-footer-menu-row-link"},"Pricing")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/blog"),className:"ui-footer-menu-row-link"},"Blog")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/careers"),className:"ui-footer-menu-row-link"},"Careers")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/open-policy"),className:"ui-footer-menu-row-link"},"Open protocol policy")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/press-center"),className:"ui-footer-menu-row-link"},"Press & Media")),/*#__PURE__*/React.createElement("li",{className:"p-menu-row-snug"},/*#__PURE__*/React.createElement("a",{href:absUrl("/contact"),className:"ui-footer-menu-row-link"},"Contact us"))))),/*#__PURE__*/React.createElement("div",{className:"max-w-screen-xl ui-grid-px mx-auto"},/*#__PURE__*/React.createElement("hr",{className:"border-t border-mid-grey my-0"})),/*#__PURE__*/React.createElement("div",{className:"max-w-screen-xl mx-auto py-16 grid ui-grid-gap ui-grid-px sm:grid-cols-2"},/*#__PURE__*/React.createElement("div",{className:"md:flex md:items-center"},/*#__PURE__*/React.createElement("div",{className:"flex flex-col md:flex-row flex-auto ml-8 sm:col-span-1 md:col-span-2"},/*#__PURE__*/React.createElement("div",{className:""},/*#__PURE__*/React.createElement("div",{className:"flex pb-24"},/*#__PURE__*/React.createElement("a",{className:"h-24 pr-24 text-cool-black hover:text-icon-twitter",href:"https://twitter.com/ablyrealtime",title:"Ably on X"},/*#__PURE__*/React.createElement(Icon,{name:"icon-social-x",size:"1.5rem"})),/*#__PURE__*/React.createElement("a",{className:"h-24 pr-24 text-cool-black hover:text-icon-linkedin",href:"https://www.linkedin.com/company/ably-realtime",title:"Ably on LinkedIn"},/*#__PURE__*/React.createElement(Icon,{name:"icon-social-linkedin",size:"1.5rem"})),/*#__PURE__*/React.createElement("a",{className:"h-24 pr-24 text-cool-black hover:text-icon-github",href:"https://github.com/ably/",title:"Ably on Github"},/*#__PURE__*/React.createElement(Icon,{name:"icon-social-github",size:"1.5rem"})),/*#__PURE__*/React.createElement("a",{className:"h-24 pr-24 text-cool-black hover:text-icon-discord",href:"https://discord.gg/jwBPhEZ9g5",title:"Ably on Discord"},/*#__PURE__*/React.createElement(Icon,{name:"icon-social-discord",size:"1.5rem"})))),/*#__PURE__*/React.createElement("div",{className:"xs:hidden sm:block ui-footer-glassdoor"},/*#__PURE__*/React.createElement("div",{className:"flex sm:pt-24 md:pt-0 sm:border-t sm:border-l-0 md:border-t-0 md:border-l sm:border-mid-grey sm:w-3/4 md:w-full md:pl-24"},/*#__PURE__*/React.createElement("a",{href:"https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",className:"h-24 text-cool-black hover:text-icon-glassdoor",title:"Ably reviews on glassdoor"},/*#__PURE__*/React.createElement(Icon,{name:"icon-social-glassdoor",size:"1.5rem"})),/*#__PURE__*/React.createElement("div",{className:"pl-16 text-menu3 font-sans font-medium"},/*#__PURE__*/React.createElement("strong",{className:"block font-medium"},"We're hiring!"),/*#__PURE__*/React.createElement("a",{href:"https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",className:"ui-footer-link"},"Learn more at Glassdoor"))))),/*#__PURE__*/React.createElement("div",{className:"xs:block sm:hidden"},/*#__PURE__*/React.createElement("div",{className:"border-t border-mid-grey w-full"}),/*#__PURE__*/React.createElement("div",{className:"flex py-24"},/*#__PURE__*/React.createElement("a",{className:"h-24 pr-16 text-cool-black hover:text-icon-glassdoor",href:"https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",title:"Ably reviews on glassdoor"},/*#__PURE__*/React.createElement(Icon,{name:"icon-social-glassdoor",size:"1.5rem"})),/*#__PURE__*/React.createElement("div",{className:"text-menu3 font-sans font-medium"},/*#__PURE__*/React.createElement("strong",{className:"block font-medium"},"We're hiring!"),/*#__PURE__*/React.createElement("a",{href:"https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",className:"ui-footer-link"},"Learn more at Glassdoor"))))),/*#__PURE__*/React.createElement("div",{className:"col-span-full sm:col-span-1 inline-flex sm:ml-auto sm:items-center"},/*#__PURE__*/React.createElement("img",{className:"mr-24 h-80",src:paths.highestUserAdoption,alt:"Highest User Adoption 2023"}),/*#__PURE__*/React.createElement("img",{className:"mr-24 h-80",src:paths.bestSupport,alt:"Best Support 2023"}),/*#__PURE__*/React.createElement("img",{className:"mr-24 h-80",src:paths.fastestImplementation,alt:"Fastest Implementation 2023"}),/*#__PURE__*/React.createElement("img",{className:"mr-24 h-80",src:paths.highestPerformer,alt:"High Performer 2023"}))),/*#__PURE__*/React.createElement("div",{className:"max-w-screen-xl ui-grid-px mx-auto"},/*#__PURE__*/React.createElement("hr",{className:"border-t border-mid-grey my-0"})),/*#__PURE__*/React.createElement("div",{className:"max-w-screen-xl mx-auto py-24 sm:py-40 md:py-32 md:grid md:grid-cols-2 ui-grid-gap ui-grid-px"},/*#__PURE__*/React.createElement("div",{className:"flex ml-8 col-span-full sm:col-span-1 md:pb-16 items-center ui-footer-bottom-links"},/*#__PURE__*/React.createElement("div",{className:"flex"},/*#__PURE__*/React.createElement("a",{href:absUrl("/privacy"),className:"pr-24 ui-footer-link"},"Cookies"),/*#__PURE__*/React.createElement("a",{href:absUrl("/legals"),className:"pr-24 ui-footer-link"},"Legals"),/*#__PURE__*/React.createElement("a",{href:absUrl("/data-protection"),className:"pr-24 ui-footer-link"},"Data Protection"),/*#__PURE__*/React.createElement("a",{href:absUrl("/privacy"),className:"ui-footer-link"},"Privacy"))),/*#__PURE__*/React.createElement("div",{className:"xs:grid xs:grid-cols-2 sm:grid-cols-4 xs:pl-16 sm:pl-8 md:justify-items-end"},/*#__PURE__*/React.createElement("div",{className:"flex mr-24"},/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-tick",color:"text-active-orange",size:"1.5rem",additionalCSS:"bg-white rounded-full mr-12 ui-footer-tick-icon"}),/*#__PURE__*/React.createElement("div",null,/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-bold whitespace-nowrap"},"SOC 2 Type 2"),/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-medium mb-24"},"Certified"))),/*#__PURE__*/React.createElement("div",{className:"flex mr-24 md:col-start-2"},/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-tick",color:"text-active-orange",size:"1.5rem",additionalCSS:"bg-white rounded-full mr-12 ui-footer-tick-icon"}),/*#__PURE__*/React.createElement("div",null,/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-bold whitespace-nowrap"},"HIPAA"),/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-medium mb-24"},"Compliant"))),/*#__PURE__*/React.createElement("div",{className:"flex mr-24 md:col-start-3"},/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-tick",color:"text-active-orange",size:"1.5rem",additionalCSS:"bg-white rounded-full mr-12 ui-footer-tick-icon"}),/*#__PURE__*/React.createElement("div",null,/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-bold whitespace-nowrap"},"EU GDPR"),/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-medium mb-24"},"Certified"))),/*#__PURE__*/React.createElement("div",{className:"flex mr-24 md:col-start-4"},/*#__PURE__*/React.createElement(Icon,{name:"icon-gui-tick",color:"text-active-orange",size:"1.5rem",additionalCSS:"bg-white rounded-full mr-12 ui-footer-tick-icon"}),/*#__PURE__*/React.createElement("div",null,/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-bold whitespace-nowrap"},"256-bit AES"),/*#__PURE__*/React.createElement("p",{className:"ui-footer-compliance-text font-medium mb-24"},"Encryption"))))))};export default Footer;
Binary file
@@ -1 +1 @@
1
- export const defaultIconSecondaryColor=name=>({"icon-gui-check-circled-fill":"white"})[name];
1
+ export const defaultIconSecondaryColor=name=>{const colorLookup={"icon-gui-check-circled-fill":"text-white"};return colorLookup[name]};
@@ -0,0 +1 @@
1
+ const coreIcons=["icon-gui-ably-badge","icon-gui-arrow-bidirectional-horizontal","icon-gui-arrow-bidirectional-vertical","icon-gui-arrow-down","icon-gui-arrow-left","icon-gui-arrow-right","icon-gui-arrow-up","icon-gui-burger-menu","icon-gui-check-circled-fill","icon-gui-check-circled-fill-black","icon-gui-check-circled","icon-gui-checklist-checked","icon-gui-clock","icon-gui-close","icon-gui-cross-circled-fill","icon-gui-cross-circled","icon-gui-copy","icon-gui-dash-circled","icon-gui-disclosure-arrow","icon-gui-document-generic","icon-gui-enlarge","icon-gui-external-link","icon-gui-history","icon-gui-info","icon-gui-link-arrow","icon-gui-live-chat","icon-gui-minus","icon-gui-partial","icon-gui-plus","icon-gui-quote-marks-solid","icon-gui-refresh","icon-gui-search","icon-gui-tick","icon-gui-warning","icon-gui-link","icon-gui-filter-flow-step-1","icon-gui-filter-flow-step-2","icon-gui-filter-flow-step-3","icon-gui-resources"];const displayIcons=["icon-display-48hrs","icon-display-ably-channels","icon-display-about-ably-col","icon-display-api-keys","icon-display-api","icon-display-architectural-guidance","icon-display-asset-tracking-col","icon-display-authentication","icon-display-avatar-stack","icon-display-browser","icon-display-calendar","icon-display-call-mobile","icon-display-careers-col","icon-display-case-studies-col","icon-display-chat-col","icon-display-chat-stack-col","icon-display-cloud-servers","icon-display-compare-tech-col","icon-display-connection-state-&-recovery","icon-display-consumer-groups","icon-display-custom","icon-display-custom-cname","icon-display-customers-col","icon-display-dedicated-cluster","icon-display-deltas","icon-display-docs-col","icon-display-documentation","icon-display-dynamic-channel-groups","icon-display-edge-network","icon-display-elasticity","icon-display-events-col","icon-display-exactly-once-delivery","icon-display-examples-col","icon-display-fan-out","icon-display-firehose","icon-display-gdpr","icon-display-push-notifications-col","icon-display-data-broadcast-col","icon-display-data-synchronization-col","icon-display-general-comms","icon-display-granular-permissions","icon-display-hipaa-mono","icon-display-hipaa","icon-display-history","icon-display-integrations","icon-display-integrations-col","icon-display-it-support-access","icon-display-it-support-helpdesk","icon-display-laptop","icon-display-lightbulb-col","icon-display-live-chat","icon-display-map-pin","icon-display-message-batching","icon-display-message-persistence","icon-display-message-queues","icon-display-message","icon-display-observe-analytics","icon-display-padlock-closed","icon-display-platform","icon-display-play","icon-display-premium-support","icon-display-privacy-shield-framework","icon-display-push-notifications","icon-display-quickstart-guides-col","icon-display-resources-col","icon-display-rewind","icon-display-sdks-col","icon-display-send-received-messages","icon-display-servers","icon-display-shopping-cart","icon-display-sla","icon-display-soc2-type2-mono","icon-display-soc2-type2","icon-display-subscription-filters","icon-display-system-metadata","icon-display-tech-account-comms","icon-display-tutorials-demos-col","icon-display-virtual-events-col","icon-live-updates-results-metrics-col","icon-multi-user-spaces-col"];const socialIcons=["icon-social-discord","icon-social-facebook","icon-social-github","icon-social-glassdoor","icon-social-linkedin","icon-social-twitter","icon-social-google","icon-social-stackoverflow","icon-social-youtube","icon-social-x"];const otherIcons=["quote"];const techIcons=["icon-tech-amqp10","icon-tech-apache-kafka","icon-tech-apachepulsar","icon-tech-awskinesis","icon-tech-awslambda","icon-tech-awssqs","icon-tech-azureservicebus","icon-tech-cloudflareworkers","icon-tech-csharp","icon-tech-flutter","icon-tech-gcloudfunctions","icon-tech-go","icon-tech-ifttt","icon-tech-java","icon-tech-javascript","icon-tech-net","icon-tech-objectivec","icon-tech-php","icon-tech-python","icon-tech-react","icon-tech-ruby","icon-tech-swift","icon-tech-terraform","icon-tech-zapier"];const productIcons=["icon-product-asset-tracking","icon-product-chat","icon-product-liveobjects","icon-product-livesync","icon-product-pubsub","icon-product-spaces","icon-product-pubsub-encapsulated","icon-product-chat-encapsulated","icon-product-spaces-encapsulated","icon-product-livesync-encapsulated","icon-product-asset-tracking-encapsulated","icon-product-liveobjects-encapsulated"];export const iconNames={core:coreIcons,display:displayIcons,social:socialIcons,other:otherIcons,tech:techIcons,product:productIcons};
package/core/Icon.js CHANGED
@@ -1 +1 @@
1
- import React from"react";import{defaultIconSecondaryColor}from"./Icon/secondary-colors";const convertTailwindClassToVar=className=>className.replace(/(text|bg)-([a-z0-9-]+)/gi,"var(--color-$2)");const Icon=({name,size="0.75rem",color="",secondaryColor=defaultIconSecondaryColor(name),additionalCSS="",...additionalAttributes})=>/*#__PURE__*/React.createElement("svg",{className:`${color} ${additionalCSS}`,style:{width:size,height:size,...secondaryColor&&{"--ui-icon-secondary-color":convertTailwindClassToVar(secondaryColor)}},...additionalAttributes},/*#__PURE__*/React.createElement("use",{xlinkHref:`#sprite-${name}`}));export default Icon;
1
+ import React from"react";import{defaultIconSecondaryColor}from"./Icon/secondary-colors";const convertTailwindClassToVar=className=>className.replace(/(text|bg)-([a-z0-9-]+)/gi,"var(--color-$2)");const Icon=({name,size="0.75rem",color,secondaryColor=defaultIconSecondaryColor(name),additionalCSS="",...additionalAttributes})=>/*#__PURE__*/React.createElement("svg",{className:`${color??""} ${additionalCSS}`,style:{width:size,height:size,...secondaryColor&&{"--ui-icon-secondary-color":convertTailwindClassToVar(secondaryColor)}},...additionalAttributes},/*#__PURE__*/React.createElement("use",{xlinkHref:`#sprite-${name}`}));export default Icon;
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,7 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M27.0001 35.106H43.0001" stroke="#C6CED9" stroke-width="1.5" stroke-linecap="round"/>
3
+ <path d="M35.1136 26.9951V42.9951" stroke="#C6CED9" stroke-width="1.5" stroke-linecap="round"/>
4
+ <path d="M18 26.9951H8C6 26.9951 5 27.995 5 29.9951V39.9951C5 41.9951 6 42.9951 8 42.9951H18C20 42.9951 21 41.9951 21 39.9951V29.9951C21 27.9951 20 26.9951 18 26.9951Z" stroke="#C6CED9" stroke-width="1.5"/>
5
+ <path d="M40 4.99512H30C28 4.99512 27 5.99498 27 7.99512V17.9951C27 19.9951 28 20.9951 30 20.9951H40C42 20.9951 43 19.9951 43 17.9951V7.99512C43 5.99512 42 4.99512 40 4.99512Z" stroke="#C6CED9" stroke-width="1.5"/>
6
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M5.21968 5.21472C5.90995 4.52448 6.88442 4.24512 8 4.24512H18C19.1156 4.24512 20.0901 4.52453 20.7803 5.21479C21.4706 5.90505 21.75 6.87951 21.75 7.99512V17.9951C21.75 19.1107 21.4706 20.0852 20.7803 20.7754C20.0901 21.4657 19.1156 21.7451 18 21.7451H8C6.88439 21.7451 5.90993 21.4657 5.21967 20.7754C4.52941 20.0852 4.25 19.1107 4.25 17.9951V7.99512C4.25 6.87945 4.5294 5.90498 5.21968 5.21472Z" fill="#FF5416"/>
7
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M13.6999 13.6957C9.40409 17.9914 9.18585 24.738 13.2124 28.7646L17.9425 33.4946L33.4988 17.9383L28.7688 13.2082C24.7422 9.18165 17.9956 9.39989 13.6999 13.6957Z" stroke="#C6CED9" stroke-width="1.5" stroke-linejoin="round"/>
3
+ <path d="M51.2129 51.2085L44.3844 44.3801" stroke="#FF5416" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M46.4514 46.4464C41.8956 51.0022 34.6731 51.2851 30.3219 46.9338L25.5918 42.2037C25.2989 41.9108 25.2989 41.436 25.5918 41.1431L41.1482 25.5867C41.441 25.2938 41.9159 25.2938 42.2088 25.5867L46.9389 30.3168C51.2902 34.6681 51.0073 41.8906 46.4514 46.4464Z" fill="#FF5416"/>
5
+ <path d="M8.78645 8.78223L13.7362 13.732" stroke="#C6CED9" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
6
+ <path d="M29.2926 22.2168L34.2423 27.1665" stroke="#C6CED9" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
7
+ <path d="M22.2215 29.2881L27.1712 34.2378" stroke="#C6CED9" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
8
+ </svg>