@ably/ui 15.8.0-dev.1527ef06 → 16.0.0-dev.2051d9aa

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 (136) hide show
  1. package/core/.DS_Store +0 -0
  2. package/core/FeaturedLink.js +1 -1
  3. package/core/FeaturedLink.js.map +1 -1
  4. package/core/Flash.js +1 -1
  5. package/core/Flash.js.map +1 -1
  6. package/core/Flyout.js +1 -1
  7. package/core/Flyout.js.map +1 -1
  8. package/core/Header/Header.css +8 -0
  9. package/core/Header/HeaderLinks.js +1 -1
  10. package/core/Header/HeaderLinks.js.map +1 -1
  11. package/core/Header.js +1 -1
  12. package/core/Header.js.map +1 -1
  13. package/core/LegacyMeganav/LegacyMeganav.js +2 -0
  14. package/core/LegacyMeganav/LegacyMeganav.js.map +1 -0
  15. package/core/LegacyMeganav/MeganavBlogPostsList/component.js +2 -0
  16. package/core/LegacyMeganav/MeganavBlogPostsList/component.js.map +1 -0
  17. package/core/LegacyMeganav/MeganavBlogPostsList.js +2 -0
  18. package/core/LegacyMeganav/MeganavBlogPostsList.js.map +1 -0
  19. package/core/LegacyMeganav/MeganavContentCompany.js +2 -0
  20. package/core/LegacyMeganav/MeganavContentCompany.js.map +1 -0
  21. package/core/LegacyMeganav/MeganavContentDevelopers.js +2 -0
  22. package/core/LegacyMeganav/MeganavContentDevelopers.js.map +1 -0
  23. package/core/LegacyMeganav/MeganavContentProducts.js +2 -0
  24. package/core/LegacyMeganav/MeganavContentProducts.js.map +1 -0
  25. package/core/LegacyMeganav/MeganavContentUseCases.js +2 -0
  26. package/core/LegacyMeganav/MeganavContentUseCases.js.map +1 -0
  27. package/core/LegacyMeganav/MeganavControl/component.js +2 -0
  28. package/core/LegacyMeganav/MeganavControl/component.js.map +1 -0
  29. package/core/LegacyMeganav/MeganavControl.js +2 -0
  30. package/core/LegacyMeganav/MeganavControl.js.map +1 -0
  31. package/core/LegacyMeganav/MeganavControlMobileDropdown/component.js +2 -0
  32. package/core/LegacyMeganav/MeganavControlMobileDropdown/component.js.map +1 -0
  33. package/core/LegacyMeganav/MeganavControlMobileDropdown.js +2 -0
  34. package/core/LegacyMeganav/MeganavControlMobileDropdown.js.map +1 -0
  35. package/core/LegacyMeganav/MeganavControlMobilePanelClose/component.js +2 -0
  36. package/core/LegacyMeganav/MeganavControlMobilePanelClose/component.js.map +1 -0
  37. package/core/LegacyMeganav/MeganavControlMobilePanelClose.js +2 -0
  38. package/core/LegacyMeganav/MeganavControlMobilePanelClose.js.map +1 -0
  39. package/core/LegacyMeganav/MeganavControlMobilePanelOpen/component.js +2 -0
  40. package/core/LegacyMeganav/MeganavControlMobilePanelOpen/component.js.map +1 -0
  41. package/core/LegacyMeganav/MeganavControlMobilePanelOpen.js +2 -0
  42. package/core/LegacyMeganav/MeganavControlMobilePanelOpen.js.map +1 -0
  43. package/core/LegacyMeganav/MeganavItemsDesktop.js +2 -0
  44. package/core/LegacyMeganav/MeganavItemsDesktop.js.map +1 -0
  45. package/core/LegacyMeganav/MeganavItemsMobile.js +2 -0
  46. package/core/LegacyMeganav/MeganavItemsMobile.js.map +1 -0
  47. package/core/LegacyMeganav/MeganavItemsSignedIn.js.map +1 -0
  48. package/core/LegacyMeganav/MeganavSearch.js +2 -0
  49. package/core/LegacyMeganav/MeganavSearch.js.map +1 -0
  50. package/core/LegacyMeganav/MeganavSearchAutocomplete/component.js +2 -0
  51. package/core/LegacyMeganav/MeganavSearchAutocomplete/component.js.map +1 -0
  52. package/core/LegacyMeganav/MeganavSearchAutocomplete.js.map +1 -0
  53. package/core/LegacyMeganav/MeganavSearchPanel.js +2 -0
  54. package/core/LegacyMeganav/MeganavSearchPanel.js.map +1 -0
  55. package/core/LegacyMeganav/MeganavSearchSuggestions/component.js +2 -0
  56. package/core/LegacyMeganav/MeganavSearchSuggestions/component.js.map +1 -0
  57. package/core/LegacyMeganav/MeganavSearchSuggestions.js +2 -0
  58. package/core/LegacyMeganav/MeganavSearchSuggestions.js.map +1 -0
  59. package/core/LegacyMeganav/SignOutLink.js.map +1 -0
  60. package/core/LegacyMeganav/component.js +2 -0
  61. package/core/{Meganav → LegacyMeganav}/component.js.map +1 -1
  62. package/core/Meganav/.DS_Store +0 -0
  63. package/core/Meganav/MeganavMobile.js +2 -0
  64. package/core/Meganav/MeganavMobile.js.map +1 -0
  65. package/core/Meganav/MeganavPanel.js +2 -0
  66. package/core/Meganav/MeganavPanel.js.map +1 -0
  67. package/core/Meganav/data.js +2 -0
  68. package/core/Meganav/data.js.map +1 -0
  69. package/core/Meganav/images/fan-engagement-nav-image.png +0 -0
  70. package/core/Meganav/images/founders-nav-image.png +0 -0
  71. package/core/Meganav.js +1 -1
  72. package/core/Meganav.js.map +1 -1
  73. package/core/Notice/component.js +1 -1
  74. package/core/Notice/component.js.map +1 -1
  75. package/core/Notice.js +1 -1
  76. package/core/Notice.js.map +1 -1
  77. package/core/ProductTile/ProductDescription.js +1 -1
  78. package/core/ProductTile/ProductDescription.js.map +1 -1
  79. package/core/ProductTile/ProductLabel.js +1 -1
  80. package/core/ProductTile/ProductLabel.js.map +1 -1
  81. package/index.d.ts +217 -126
  82. package/package.json +1 -1
  83. package/core/Meganav/component.js +0 -2
  84. package/core/MeganavBlogPostsList/component.js +0 -2
  85. package/core/MeganavBlogPostsList/component.js.map +0 -1
  86. package/core/MeganavBlogPostsList.js +0 -2
  87. package/core/MeganavBlogPostsList.js.map +0 -1
  88. package/core/MeganavContentCompany.js +0 -2
  89. package/core/MeganavContentCompany.js.map +0 -1
  90. package/core/MeganavContentDevelopers.js +0 -2
  91. package/core/MeganavContentDevelopers.js.map +0 -1
  92. package/core/MeganavContentProducts.js +0 -2
  93. package/core/MeganavContentProducts.js.map +0 -1
  94. package/core/MeganavContentUseCases.js +0 -2
  95. package/core/MeganavContentUseCases.js.map +0 -1
  96. package/core/MeganavControl/component.js +0 -2
  97. package/core/MeganavControl/component.js.map +0 -1
  98. package/core/MeganavControl.js +0 -2
  99. package/core/MeganavControl.js.map +0 -1
  100. package/core/MeganavControlMobileDropdown/component.js +0 -2
  101. package/core/MeganavControlMobileDropdown/component.js.map +0 -1
  102. package/core/MeganavControlMobileDropdown.js +0 -2
  103. package/core/MeganavControlMobileDropdown.js.map +0 -1
  104. package/core/MeganavControlMobilePanelClose/component.js +0 -2
  105. package/core/MeganavControlMobilePanelClose/component.js.map +0 -1
  106. package/core/MeganavControlMobilePanelClose.js +0 -2
  107. package/core/MeganavControlMobilePanelClose.js.map +0 -1
  108. package/core/MeganavControlMobilePanelOpen/component.js +0 -2
  109. package/core/MeganavControlMobilePanelOpen/component.js.map +0 -1
  110. package/core/MeganavControlMobilePanelOpen.js +0 -2
  111. package/core/MeganavControlMobilePanelOpen.js.map +0 -1
  112. package/core/MeganavItemsDesktop.js +0 -2
  113. package/core/MeganavItemsDesktop.js.map +0 -1
  114. package/core/MeganavItemsMobile.js +0 -2
  115. package/core/MeganavItemsMobile.js.map +0 -1
  116. package/core/MeganavItemsSignedIn.js.map +0 -1
  117. package/core/MeganavSearch.js +0 -2
  118. package/core/MeganavSearch.js.map +0 -1
  119. package/core/MeganavSearchAutocomplete/component.js +0 -2
  120. package/core/MeganavSearchAutocomplete/component.js.map +0 -1
  121. package/core/MeganavSearchAutocomplete.js.map +0 -1
  122. package/core/MeganavSearchPanel.js +0 -2
  123. package/core/MeganavSearchPanel.js.map +0 -1
  124. package/core/MeganavSearchSuggestions/component.js +0 -2
  125. package/core/MeganavSearchSuggestions/component.js.map +0 -1
  126. package/core/MeganavSearchSuggestions.js +0 -2
  127. package/core/MeganavSearchSuggestions.js.map +0 -1
  128. package/core/SignOutLink.js.map +0 -1
  129. package/core/hooks/use-rails-ujs-hooks.js +0 -2
  130. package/core/hooks/use-rails-ujs-hooks.js.map +0 -1
  131. package/core/styles/colors/computed-colors.json +0 -1
  132. /package/core/{MeganavItemsSignedIn.js → LegacyMeganav/MeganavItemsSignedIn.js} +0 -0
  133. /package/core/{MeganavSearchAutocomplete.js → LegacyMeganav/MeganavSearchAutocomplete.js} +0 -0
  134. /package/core/{SignOutLink.js → LegacyMeganav/SignOutLink.js} +0 -0
  135. /package/core/{Meganav → LegacyMeganav}/component.css +0 -0
  136. /package/core/{Meganav → LegacyMeganav}/component.json +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/MeganavContentProducts.tsx"],"sourcesContent":["import React from \"react\";\n\nimport FeaturedLink from \"../FeaturedLink\";\nimport { AbsUrl, MeganavPaths } from \"./LegacyMeganav\";\n\ntype MeganavContentProductsProps = {\n paths?: MeganavPaths;\n absUrl: AbsUrl;\n};\n\nconst MeganavContentProducts = ({\n paths,\n absUrl,\n}: MeganavContentProductsProps) => (\n <div className=\"flex max-w-screen-xl mx-auto\">\n <div className=\"ui-meganav-content-spacer bg-extra-light-grey\"></div>\n <section className=\"grid grid-cols-12 ui-grid-gap-x w-full\">\n <div className=\"col-span-full md:col-span-4 py-24 lg:py-32 px-24 sm:px-32 md:pl-0 md:pr-24 bg-extra-light-grey\">\n <div className=\"flex mb-20\">\n {paths && <img src={paths?.ablyStack} alt=\"Ably homepage\" />}\n <h3 className=\"ui-meganav-overline ml-24\">The Ably Platform</h3>\n </div>\n <p className=\"ui-text-p2 font-bold mb-24\" style={{ maxWidth: \"330px\" }}>\n Easily power any realtime experience in your application. No complex\n infrastructure to manage or provision. Just a simple API that handles\n everything realtime, and lets you focus on your code.\n </p>\n\n <FeaturedLink url={absUrl(\"/platform\")} textSize=\"text-p2\">\n Explore how it works\n </FeaturedLink>\n </div>\n\n <div className=\"col-span-full md:col-span-4 pt-24 pb-8 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white\">\n <h3\n className=\"ui-meganav-overline\"\n id=\"meganav-products-panel-list-examples\"\n >\n Products\n </h3>\n <ul\n className=\"mb-16\"\n aria-labelledby=\"meganav-products-panel-list-examples\"\n >\n <li>\n <a href={absUrl(\"/pubsub\")} className=\"group ui-meganav-media\">\n <p className=\"ui-meganav-media-heading\">Pub/Sub</p>\n <p className=\"ui-meganav-media-copy\">\n Build infinitely scalable realtime applications.\n </p>\n </a>\n </li>\n <li>\n <a href={absUrl(\"/spaces\")} className=\"group ui-meganav-media\">\n <p className=\"ui-meganav-media-heading\">Spaces</p>\n <p className=\"ui-meganav-media-copy\">\n Create multi-user collaborative environments.\n </p>\n </a>\n </li>\n <li>\n <a href={absUrl(\"/livesync\")} className=\"group ui-meganav-media\">\n <p className=\"ui-meganav-media-heading\">LiveSync</p>\n <p className=\"ui-meganav-media-copy\">\n Seamlessly sync database changes with frontend clients at scale.\n </p>\n </a>\n </li>\n <li>\n <a href={absUrl(\"/chat\")} className=\"group ui-meganav-media\">\n <p className=\"ui-meganav-media-heading\">Chat</p>\n <p className=\"ui-meganav-media-copy\">\n Deliver highly reliable chat experiences at scale.\n </p>\n </a>\n </li>\n </ul>\n </div>\n\n <div className=\"col-span-full md:col-span-4 pt-8 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white\">\n <h3\n className=\"ui-meganav-overline\"\n id=\"meganav-products-panel-list-our-technology\"\n >\n Technology\n </h3>\n <ul\n className=\"mb-16\"\n aria-labelledby=\"meganav-products-panel-list-our-technology\"\n >\n <li>\n <a\n href={absUrl(\"/four-pillars-of-dependability#performance\")}\n className=\"ui-meganav-media group\"\n >\n <p className=\"ui-meganav-media-heading\">\n Predictable performance\n </p>\n <p className=\"ui-meganav-media-copy\">\n A low-latency and high-throughput global network.\n </p>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/four-pillars-of-dependability#integrity\")}\n className=\"ui-meganav-media group\"\n >\n <p className=\"ui-meganav-media-heading\">\n Guaranteed ordering & delivery\n </p>\n <p className=\"ui-meganav-media-copy\">\n Data is delivered - in order - even after disconnections.\n </p>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/four-pillars-of-dependability#reliability\")}\n className=\"ui-meganav-media group\"\n >\n <p className=\"ui-meganav-media-heading\">\n Fault tolerant infrastructure\n </p>\n <p className=\"ui-meganav-media-copy\">\n Redundancy is built in at global and regional levels.\n </p>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/four-pillars-of-dependability#availability\")}\n className=\"ui-meganav-media group\"\n >\n <p className=\"ui-meganav-media-heading\">\n High scalability & availability\n </p>\n <p className=\"ui-meganav-media-copy\">\n Built for scale with legitimate 99.999% uptime SLAs.\n </p>\n </a>\n </li>\n <li>\n <a href={absUrl(\"/network\")} className=\"ui-meganav-media group\">\n <p className=\"ui-meganav-media-heading\">Global edge network</p>\n <p className=\"ui-meganav-media-copy\">\n An edge network of 15 core routing datacenters and 205+ PoPs.\n </p>\n </a>\n </li>\n </ul>\n\n <FeaturedLink\n url={absUrl(\"/four-pillars-of-dependability\")}\n textSize=\"text-p3\"\n >\n Explore Four Pillars of Dependability\n </FeaturedLink>\n </div>\n </section>\n <div className=\"ui-meganav-content-spacer\"></div>\n </div>\n);\n\nexport default MeganavContentProducts;\n"],"names":["React","FeaturedLink","MeganavContentProducts","paths","absUrl","div","className","section","img","src","ablyStack","alt","h3","p","style","maxWidth","url","textSize","id","ul","aria-labelledby","li","a","href"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAE1B,QAAOC,iBAAkB,iBAAkB,CAQ3C,MAAMC,uBAAyB,CAAC,CAC9BC,KAAK,CACLC,MAAM,CACsB,GAC5B,oBAACC,OAAIC,UAAU,gCACb,oBAACD,OAAIC,UAAU,kDACf,oBAACC,WAAQD,UAAU,0CACjB,oBAACD,OAAIC,UAAU,kGACb,oBAACD,OAAIC,UAAU,cACZH,OAAS,oBAACK,OAAIC,IAAKN,OAAOO,UAAWC,IAAI,kBAC1C,oBAACC,MAAGN,UAAU,6BAA4B,sBAE5C,oBAACO,KAAEP,UAAU,6BAA6BQ,MAAO,CAAEC,SAAU,OAAQ,GAAG,oMAMxE,oBAACd,cAAae,IAAKZ,OAAO,aAAca,SAAS,WAAU,yBAK7D,oBAACZ,OAAIC,UAAU,4FACb,oBAACM,MACCN,UAAU,sBACVY,GAAG,wCACJ,YAGD,oBAACC,MACCb,UAAU,QACVc,kBAAgB,wCAEhB,oBAACC,UACC,oBAACC,KAAEC,KAAMnB,OAAO,WAAYE,UAAU,0BACpC,oBAACO,KAAEP,UAAU,4BAA2B,WACxC,oBAACO,KAAEP,UAAU,yBAAwB,sDAKzC,oBAACe,UACC,oBAACC,KAAEC,KAAMnB,OAAO,WAAYE,UAAU,0BACpC,oBAACO,KAAEP,UAAU,4BAA2B,UACxC,oBAACO,KAAEP,UAAU,yBAAwB,mDAKzC,oBAACe,UACC,oBAACC,KAAEC,KAAMnB,OAAO,aAAcE,UAAU,0BACtC,oBAACO,KAAEP,UAAU,4BAA2B,YACxC,oBAACO,KAAEP,UAAU,yBAAwB,sEAKzC,oBAACe,UACC,oBAACC,KAAEC,KAAMnB,OAAO,SAAUE,UAAU,0BAClC,oBAACO,KAAEP,UAAU,4BAA2B,QACxC,oBAACO,KAAEP,UAAU,yBAAwB,0DAQ7C,oBAACD,OAAIC,UAAU,4FACb,oBAACM,MACCN,UAAU,sBACVY,GAAG,8CACJ,cAGD,oBAACC,MACCb,UAAU,QACVc,kBAAgB,8CAEhB,oBAACC,UACC,oBAACC,KACCC,KAAMnB,OAAO,8CACbE,UAAU,0BAEV,oBAACO,KAAEP,UAAU,4BAA2B,2BAGxC,oBAACO,KAAEP,UAAU,yBAAwB,uDAKzC,oBAACe,UACC,oBAACC,KACCC,KAAMnB,OAAO,4CACbE,UAAU,0BAEV,oBAACO,KAAEP,UAAU,4BAA2B,kCAGxC,oBAACO,KAAEP,UAAU,yBAAwB,+DAKzC,oBAACe,UACC,oBAACC,KACCC,KAAMnB,OAAO,8CACbE,UAAU,0BAEV,oBAACO,KAAEP,UAAU,4BAA2B,iCAGxC,oBAACO,KAAEP,UAAU,yBAAwB,2DAKzC,oBAACe,UACC,oBAACC,KACCC,KAAMnB,OAAO,+CACbE,UAAU,0BAEV,oBAACO,KAAEP,UAAU,4BAA2B,mCAGxC,oBAACO,KAAEP,UAAU,yBAAwB,0DAKzC,oBAACe,UACC,oBAACC,KAAEC,KAAMnB,OAAO,YAAaE,UAAU,0BACrC,oBAACO,KAAEP,UAAU,4BAA2B,uBACxC,oBAACO,KAAEP,UAAU,yBAAwB,oEAO3C,oBAACL,cACCe,IAAKZ,OAAO,kCACZa,SAAS,WACV,2CAKL,oBAACZ,OAAIC,UAAU,8BAInB,gBAAeJ,sBAAuB"}
@@ -0,0 +1,2 @@
1
+ import React from"react";import Icon from"../Icon";const MeganavContentUseCases=({absUrl})=>React.createElement("div",{className:"flex max-w-screen-xl mx-auto"},React.createElement("div",{className:"ui-meganav-content-spacer bg-extra-light-grey"}),React.createElement("section",{className:"grid grid-cols-12 ui-grid-gap-x w-full"},React.createElement("div",{className:"col-span-full md:col-span-4 py-24 lg:py-32 px-24 sm:px-32 md:pl-0 md:pr-24 bg-extra-light-grey"},React.createElement("h3",{className:"ui-meganav-overline",id:"meganav-use-cases-panel-use-cases"},"Solutions"),React.createElement("ul",{"aria-labelledby":"meganav-use-cases-panel-industry-use-cases"},React.createElement("li",null,React.createElement("a",{href:absUrl("/chat"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-chat-stack-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Live Chat"),React.createElement("p",{className:"ui-meganav-media-copy"},"Deliver highly reliable chat experiences at scale.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/multiplayer-collaboration"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-multi-user-spaces-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Multiplayer Collaboration"),React.createElement("p",{className:"ui-meganav-media-copy"},"Bring collaborative multiplayer experiences to your users.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/data-broadcast"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-data-broadcast-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Data Broadcast"),React.createElement("p",{className:"ui-meganav-media-copy"},"Broadcast realtime event data to millions of devices around the globe.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/data-synchronization"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-data-synchronization-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Data Synchronization"),React.createElement("p",{className:"ui-meganav-media-copy"},"Keep your frontend and backend in realtime sync, at global scale.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/push-notifications"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-push-notifications-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Notifications"),React.createElement("p",{className:"ui-meganav-media-copy"},"Deliver cross-platform push notifications with a simple unified API.")))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/asset-tracking"),className:"ui-meganav-media-with-image group"},React.createElement(Icon,{name:"icon-display-asset-tracking-col",size:"2.5rem"}),React.createElement("div",{className:"flex flex-col justify-center"},React.createElement("p",{className:"ui-meganav-media-heading"},"Asset Tracking"),React.createElement("p",{className:"ui-meganav-media-copy"},"Track assets in realtime with a solution optimised for last mile logistics.")))))),React.createElement("div",{className:"col-span-full md:col-span-4 pt-24 pb-0 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white"},React.createElement("h3",{className:"ui-meganav-overline",id:"meganav-use-cases-panel-industry"},"Industry"),React.createElement("ul",{"aria-labelledby":"meganav-use-cases-panel-industry"},React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/sports-and-media"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"Sports, Media & Fan Engagement"),React.createElement("p",{className:"ui-meganav-media-copy"},"Deliver engaging global realtime experiences."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/b2b-platforms"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"B2B Platforms"),React.createElement("p",{className:"ui-meganav-media-copy"},"Empower your customers with realtime solutions."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/fintech"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"FinTech"),React.createElement("p",{className:"ui-meganav-media-copy"},"Deliver personalised financial data in realtime."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/edtech"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"EdTech"),React.createElement("p",{className:"ui-meganav-media-copy"},"Deliver interactive learning experiences."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/healthcare"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"Healthcare (HIPAA)"),React.createElement("p",{className:"ui-meganav-media-copy"},"Provide trustworthy, HIPAA-compliant realtime apps."))))),React.createElement("div",{className:"col-span-full md:col-span-4 pt-0 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white"},React.createElement("ul",{"aria-labelledby":"meganav-use-cases-panel-solutions",className:"mt-0 md:mt-40"},React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/gaming"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"Gaming"),React.createElement("p",{className:"ui-meganav-media-copy"},"Power ultra fast and reliable gaming experiences."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/automotive-logistics-and-mobility"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"Automotive, Logistics, & Mobility"),React.createElement("p",{className:"ui-meganav-media-copy"},"Power diagnostics, order tracking and more."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/ecommerce-and-retail"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"eCommerce & Retail"),React.createElement("p",{className:"ui-meganav-media-copy"},"Enrich customer experiences with realtime updates."))),React.createElement("li",null,React.createElement("a",{href:absUrl("/solutions/iot-and-connected-devices"),className:"ui-meganav-media group"},React.createElement("p",{className:"ui-meganav-media-heading"},"IoT & Connected Devices"),React.createElement("p",{className:"ui-meganav-media-copy"},"Monitor and control global IoT deployments in realtime.")))))),React.createElement("div",{className:"ui-meganav-content-spacer"}));export default MeganavContentUseCases;
2
+ //# sourceMappingURL=MeganavContentUseCases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/MeganavContentUseCases.tsx"],"sourcesContent":["import React from \"react\";\n\nimport Icon from \"../Icon\";\nimport { AbsUrl } from \"./LegacyMeganav\";\n\nconst MeganavContentUseCases = ({ absUrl }: { absUrl: AbsUrl }) => (\n <div className=\"flex max-w-screen-xl mx-auto\">\n <div className=\"ui-meganav-content-spacer bg-extra-light-grey\"></div>\n <section className=\"grid grid-cols-12 ui-grid-gap-x w-full\">\n <div className=\"col-span-full md:col-span-4 py-24 lg:py-32 px-24 sm:px-32 md:pl-0 md:pr-24 bg-extra-light-grey\">\n <h3\n className=\"ui-meganav-overline\"\n id=\"meganav-use-cases-panel-use-cases\"\n >\n Solutions\n </h3>\n <ul aria-labelledby=\"meganav-use-cases-panel-industry-use-cases\">\n <li>\n <a\n href={absUrl(\"/chat\")}\n className=\"ui-meganav-media-with-image group\"\n >\n <Icon name=\"icon-display-chat-stack-col\" size=\"2.5rem\" />\n <div className=\"flex flex-col justify-center\">\n <p className=\"ui-meganav-media-heading\">Live Chat</p>\n <p className=\"ui-meganav-media-copy\">\n Deliver highly reliable chat experiences at scale.\n </p>\n </div>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/solutions/multiplayer-collaboration\")}\n className=\"ui-meganav-media-with-image group\"\n >\n <Icon name=\"icon-display-multi-user-spaces-col\" size=\"2.5rem\" />\n <div className=\"flex flex-col justify-center\">\n <p className=\"ui-meganav-media-heading\">\n Multiplayer Collaboration\n </p>\n <p className=\"ui-meganav-media-copy\">\n Bring collaborative multiplayer experiences to your users.\n </p>\n </div>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/solutions/data-broadcast\")}\n className=\"ui-meganav-media-with-image group\"\n >\n <Icon name=\"icon-display-data-broadcast-col\" size=\"2.5rem\" />\n <div className=\"flex flex-col justify-center\">\n <p className=\"ui-meganav-media-heading\">Data Broadcast</p>\n <p className=\"ui-meganav-media-copy\">\n Broadcast realtime event data to millions of devices around\n the globe.\n </p>\n </div>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/solutions/data-synchronization\")}\n className=\"ui-meganav-media-with-image group\"\n >\n <Icon\n name=\"icon-display-data-synchronization-col\"\n size=\"2.5rem\"\n />\n <div className=\"flex flex-col justify-center\">\n <p className=\"ui-meganav-media-heading\">Data Synchronization</p>\n <p className=\"ui-meganav-media-copy\">\n Keep your frontend and backend in realtime sync, at global\n scale.\n </p>\n </div>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/push-notifications\")}\n className=\"ui-meganav-media-with-image group\"\n >\n <Icon name=\"icon-display-push-notifications-col\" size=\"2.5rem\" />\n <div className=\"flex flex-col justify-center\">\n <p className=\"ui-meganav-media-heading\">Notifications</p>\n <p className=\"ui-meganav-media-copy\">\n Deliver cross-platform push notifications with a simple\n unified API.\n </p>\n </div>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/solutions/asset-tracking\")}\n className=\"ui-meganav-media-with-image group\"\n >\n <Icon name=\"icon-display-asset-tracking-col\" size=\"2.5rem\" />\n <div className=\"flex flex-col justify-center\">\n <p className=\"ui-meganav-media-heading\">Asset Tracking</p>\n <p className=\"ui-meganav-media-copy\">\n Track assets in realtime with a solution optimised for last\n mile logistics.\n </p>\n </div>\n </a>\n </li>\n </ul>\n </div>\n\n <div className=\"col-span-full md:col-span-4 pt-24 pb-0 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white\">\n <h3\n className=\"ui-meganav-overline\"\n id=\"meganav-use-cases-panel-industry\"\n >\n Industry\n </h3>\n <ul aria-labelledby=\"meganav-use-cases-panel-industry\">\n <li>\n <a\n href={absUrl(\"/solutions/sports-and-media\")}\n className=\"ui-meganav-media group\"\n >\n <p className=\"ui-meganav-media-heading\">\n Sports, Media & Fan Engagement\n </p>\n <p className=\"ui-meganav-media-copy\">\n Deliver engaging global realtime experiences.\n </p>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/solutions/b2b-platforms\")}\n className=\"ui-meganav-media group\"\n >\n <p className=\"ui-meganav-media-heading\">B2B Platforms</p>\n <p className=\"ui-meganav-media-copy\">\n Empower your customers with realtime solutions.\n </p>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/solutions/fintech\")}\n className=\"ui-meganav-media group\"\n >\n <p className=\"ui-meganav-media-heading\">FinTech</p>\n <p className=\"ui-meganav-media-copy\">\n Deliver personalised financial data in realtime.\n </p>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/solutions/edtech\")}\n className=\"ui-meganav-media group\"\n >\n <p className=\"ui-meganav-media-heading\">EdTech</p>\n <p className=\"ui-meganav-media-copy\">\n Deliver interactive learning experiences.\n </p>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/solutions/healthcare\")}\n className=\"ui-meganav-media group\"\n >\n <p className=\"ui-meganav-media-heading\">Healthcare (HIPAA)</p>\n <p className=\"ui-meganav-media-copy\">\n Provide trustworthy, HIPAA-compliant realtime apps.\n </p>\n </a>\n </li>\n </ul>\n </div>\n\n <div className=\"col-span-full md:col-span-4 pt-0 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white\">\n <ul\n aria-labelledby=\"meganav-use-cases-panel-solutions\"\n className=\"mt-0 md:mt-40\"\n >\n <li>\n <a\n href={absUrl(\"/solutions/gaming\")}\n className=\"ui-meganav-media group\"\n >\n <p className=\"ui-meganav-media-heading\">Gaming</p>\n <p className=\"ui-meganav-media-copy\">\n Power ultra fast and reliable gaming experiences.\n </p>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/solutions/automotive-logistics-and-mobility\")}\n className=\"ui-meganav-media group\"\n >\n <p className=\"ui-meganav-media-heading\">\n Automotive, Logistics, & Mobility\n </p>\n <p className=\"ui-meganav-media-copy\">\n Power diagnostics, order tracking and more.\n </p>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/solutions/ecommerce-and-retail\")}\n className=\"ui-meganav-media group\"\n >\n <p className=\"ui-meganav-media-heading\">eCommerce & Retail</p>\n <p className=\"ui-meganav-media-copy\">\n Enrich customer experiences with realtime updates.\n </p>\n </a>\n </li>\n <li>\n <a\n href={absUrl(\"/solutions/iot-and-connected-devices\")}\n className=\"ui-meganav-media group\"\n >\n <p className=\"ui-meganav-media-heading\">\n IoT & Connected Devices\n </p>\n <p className=\"ui-meganav-media-copy\">\n Monitor and control global IoT deployments in realtime.\n </p>\n </a>\n </li>\n </ul>\n </div>\n </section>\n <div className=\"ui-meganav-content-spacer\"></div>\n </div>\n);\n\nexport default MeganavContentUseCases;\n"],"names":["React","Icon","MeganavContentUseCases","absUrl","div","className","section","h3","id","ul","aria-labelledby","li","a","href","name","size","p"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{queryId,queryIdAll}from"../../dom-query";const MeganavControl=()=>{const controls=Array.from(queryIdAll("meganav-control"));const panels=Array.from(queryIdAll("meganav-panel"));const mdBreakpoint=getComputedStyle(document.documentElement).getPropertyValue("--bp-md");const hoverEnabled=()=>window.matchMedia(`(hover: hover) and (pointer: fine) and (min-width: ${mdBreakpoint})`).matches;const isSearchControl=node=>node.dataset.control==="search";const isSearchPanelOpen=()=>{const searchPanel=document.querySelector('[data-id="meganav-panel"]#panel-search');if(!searchPanel)return;return!searchPanel.classList.contains("invisible")};const controlsHaveFocus=()=>controls.some(control=>control===document.activeElement);const hover=(control,panel,open)=>{if(hoverEnabled()&&!controlsHaveFocus()&&!isSearchPanelOpen()){const classes=["invisible","visible"];panel.classList.replace(...open?classes:classes.reverse());control.setAttribute("aria-expanded",open);control.dataset.hover=open}};const mouseenterHandler=(control,panel)=>()=>hover(control,panel,true);const mouseleaveHandler=(control,panel)=>()=>hover(control,panel,false);const clickHandler=(control,panel)=>()=>{controls.forEach(node=>node!==control&&node.setAttribute("aria-expanded",false));panels.forEach(node=>node!==panel&&node.classList.replace("visible","invisible"));const ariaExpanded=control.getAttribute("aria-expanded");const openedByHover=control.dataset.hover==="true";if(ariaExpanded==="true"&&!openedByHover){control.setAttribute("aria-expanded",false);panel.classList.replace("visible","invisible")}else{control.setAttribute("aria-expanded",true);panel.classList.replace("invisible","visible")}if(openedByHover){control.dataset.hover=false}if(isSearchControl(control)){const searchInput=queryId("meganav-search-input",panel);if(!searchInput)return;searchInput.focus()}else{control.focus()}};return controls.map(control=>{const item=control.parentNode;const panel=document.querySelector(`#${control.getAttribute("aria-controls")}`);const click=clickHandler(control,panel);control.addEventListener("click",click);let mouseenter,mouseleave;if(!isSearchControl(control)){mouseenter=mouseenterHandler(control,panel);mouseleave=mouseleaveHandler(control,panel);item.addEventListener("mouseenter",mouseenter);item.addEventListener("mouseleave",mouseleave)}return[{teardown:()=>{if(mouseenter&&mouseleave){item.removeEventListener("mouseenter",mouseenter);item.removeEventListener("mouseleave",mouseleave)}control.removeEventListener("click",click)},clear:()=>{control.setAttribute("aria-expanded",false);panel.classList.replace("visible","invisible")}}]}).flat()};export default MeganavControl;
2
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/LegacyMeganav/MeganavControl/component.js"],"sourcesContent":["import { queryId, queryIdAll } from \"../../dom-query\";\n\nconst MeganavControl = () => {\n const controls = Array.from(queryIdAll(\"meganav-control\"));\n const panels = Array.from(queryIdAll(\"meganav-panel\"));\n const mdBreakpoint = getComputedStyle(\n document.documentElement,\n ).getPropertyValue(\"--bp-md\");\n\n const hoverEnabled = () =>\n window.matchMedia(\n `(hover: hover) and (pointer: fine) and (min-width: ${mdBreakpoint})`,\n ).matches;\n\n const isSearchControl = (node) => node.dataset.control === \"search\";\n\n const isSearchPanelOpen = () => {\n const searchPanel = document.querySelector(\n '[data-id=\"meganav-panel\"]#panel-search',\n );\n if (!searchPanel) return;\n return !searchPanel.classList.contains(\"invisible\");\n };\n\n const controlsHaveFocus = () =>\n controls.some((control) => control === document.activeElement);\n\n const hover = (control, panel, open) => {\n if (hoverEnabled() && !controlsHaveFocus() && !isSearchPanelOpen()) {\n const classes = [\"invisible\", \"visible\"];\n panel.classList.replace(...(open ? classes : classes.reverse()));\n control.setAttribute(\"aria-expanded\", open);\n control.dataset.hover = open;\n }\n };\n\n const mouseenterHandler = (control, panel) => () =>\n hover(control, panel, true);\n\n const mouseleaveHandler = (control, panel) => () =>\n hover(control, panel, false);\n\n const clickHandler = (control, panel) => () => {\n controls.forEach(\n (node) => node !== control && node.setAttribute(\"aria-expanded\", false),\n );\n\n panels.forEach(\n (node) =>\n node !== panel && node.classList.replace(\"visible\", \"invisible\"),\n );\n\n const ariaExpanded = control.getAttribute(\"aria-expanded\");\n\n // Prevent closing of the panel if it was already opened by hovering\n const openedByHover = control.dataset.hover === \"true\";\n\n if (ariaExpanded === \"true\" && !openedByHover) {\n control.setAttribute(\"aria-expanded\", false);\n panel.classList.replace(\"visible\", \"invisible\");\n } else {\n control.setAttribute(\"aria-expanded\", true);\n panel.classList.replace(\"invisible\", \"visible\");\n }\n\n if (openedByHover) {\n control.dataset.hover = false;\n }\n\n if (isSearchControl(control)) {\n const searchInput = queryId(\"meganav-search-input\", panel);\n if (!searchInput) return;\n searchInput.focus();\n } else {\n control.focus();\n }\n };\n\n return controls\n .map((control) => {\n const item = control.parentNode;\n const panel = document.querySelector(\n `#${control.getAttribute(\"aria-controls\")}`,\n );\n const click = clickHandler(control, panel);\n control.addEventListener(\"click\", click);\n let mouseenter, mouseleave;\n\n if (!isSearchControl(control)) {\n mouseenter = mouseenterHandler(control, panel);\n mouseleave = mouseleaveHandler(control, panel);\n\n item.addEventListener(\"mouseenter\", mouseenter);\n item.addEventListener(\"mouseleave\", mouseleave);\n }\n\n return [\n {\n teardown: () => {\n if (mouseenter && mouseleave) {\n item.removeEventListener(\"mouseenter\", mouseenter);\n item.removeEventListener(\"mouseleave\", mouseleave);\n }\n\n control.removeEventListener(\"click\", click);\n },\n clear: () => {\n control.setAttribute(\"aria-expanded\", false);\n panel.classList.replace(\"visible\", \"invisible\");\n },\n },\n ];\n })\n .flat();\n};\n\nexport default MeganavControl;\n"],"names":["queryId","queryIdAll","MeganavControl","controls","Array","from","panels","mdBreakpoint","getComputedStyle","document","documentElement","getPropertyValue","hoverEnabled","window","matchMedia","matches","isSearchControl","node","dataset","control","isSearchPanelOpen","searchPanel","querySelector","classList","contains","controlsHaveFocus","some","activeElement","hover","panel","open","classes","replace","reverse","setAttribute","mouseenterHandler","mouseleaveHandler","clickHandler","forEach","ariaExpanded","getAttribute","openedByHover","searchInput","focus","map","item","parentNode","click","addEventListener","mouseenter","mouseleave","teardown","removeEventListener","clear","flat"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import React from"react";import Icon from"../Icon";const MeganavControl=({ariaControls,ariaLabel,children,theme,additionalCSS})=>React.createElement("button",{type:"button","data-id":"meganav-control",className:`ui-meganav-link h-64 flex items-center group ${additionalCSS} ${theme.textColor}`,"aria-expanded":"false","aria-controls":ariaControls,"aria-label":`Show ${ariaLabel} panel`},children,React.createElement(Icon,{name:"icon-gui-chevron-down-micro",color:"text-cool-black",size:"1.5rem",additionalCSS:"group-hover:text-gui-hover group-focus:text-gui-focus"}));export default MeganavControl;
2
+ //# sourceMappingURL=MeganavControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/MeganavControl.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\n\nimport Icon from \"../Icon\";\nimport { MeganavTheme } from \"./LegacyMeganav\";\n\ntype MeganavControlProps = {\n ariaControls: string;\n ariaLabel: string;\n children: ReactNode;\n theme: MeganavTheme;\n additionalCSS?: string;\n};\n\nconst MeganavControl = ({\n ariaControls,\n ariaLabel,\n children,\n theme,\n additionalCSS,\n}: MeganavControlProps) => (\n <button\n type=\"button\"\n data-id=\"meganav-control\"\n className={`ui-meganav-link h-64 flex items-center group ${additionalCSS} ${theme.textColor}`}\n aria-expanded=\"false\"\n aria-controls={ariaControls}\n aria-label={`Show ${ariaLabel} panel`}\n >\n {children}\n <Icon\n name=\"icon-gui-chevron-down-micro\"\n color=\"text-cool-black\"\n size=\"1.5rem\"\n additionalCSS=\"group-hover:text-gui-hover group-focus:text-gui-focus\"\n />\n </button>\n);\n\nexport default MeganavControl;\n"],"names":["React","Icon","MeganavControl","ariaControls","ariaLabel","children","theme","additionalCSS","button","type","data-id","className","textColor","aria-expanded","aria-controls","aria-label","name","color","size"],"mappings":"AAAA,OAAOA,UAA0B,OAAQ,AAEzC,QAAOC,SAAU,SAAU,CAW3B,MAAMC,eAAiB,CAAC,CACtBC,YAAY,CACZC,SAAS,CACTC,QAAQ,CACRC,KAAK,CACLC,aAAa,CACO,GACpB,oBAACC,UACCC,KAAK,SACLC,UAAQ,kBACRC,UAAW,CAAC,6CAA6C,EAAEJ,cAAc,CAAC,EAAED,MAAMM,SAAS,CAAC,CAAC,CAC7FC,gBAAc,QACdC,gBAAeX,aACfY,aAAY,CAAC,KAAK,EAAEX,UAAU,MAAM,CAAC,EAEpCC,SACD,oBAACJ,MACCe,KAAK,8BACLC,MAAM,kBACNC,KAAK,SACLX,cAAc,0DAKpB,gBAAeL,cAAe"}
@@ -0,0 +1,2 @@
1
+ import scrollLock from"scroll-lock";import{queryId}from"../../dom-query";const MeganavControlMobileDropdown=({clearPanels})=>{const control=queryId("meganav-control-mobile-dropdown");const dropdown=queryId("meganav-mobile-dropdown");const menuIcon=queryId("meganav-control-mobile-dropdown-menu");const closeIcon=queryId("meganav-control-mobile-dropdown-close");const clickHandler=()=>{const ariaExpanded=control.getAttribute("aria-expanded");if(ariaExpanded==="false"){dropdown.classList.replace("invisible","visible");control.setAttribute("aria-expanded",true);scrollLock.disablePageScroll()}else{dropdown.classList.replace("visible","invisible");control.setAttribute("aria-expanded",false);scrollLock.enablePageScroll();clearPanels()}menuIcon.classList.toggle("hidden");closeIcon.classList.toggle("hidden")};control.addEventListener("click",clickHandler);return{teardown:()=>{control.removeEventListener("click",clickHandler);scrollLock.enablePageScroll()},clear:()=>{dropdown.classList.replace("visible","invisible");control.setAttribute("aria-expanded",false);menuIcon.classList.remove("hidden");closeIcon.classList.add("hidden");scrollLock.enablePageScroll()}}};export default MeganavControlMobileDropdown;
2
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/LegacyMeganav/MeganavControlMobileDropdown/component.js"],"sourcesContent":["import scrollLock from \"scroll-lock\";\n\nimport { queryId } from \"../../dom-query\";\n\nconst MeganavControlMobileDropdown = ({ clearPanels }) => {\n const control = queryId(\"meganav-control-mobile-dropdown\");\n const dropdown = queryId(\"meganav-mobile-dropdown\");\n const menuIcon = queryId(\"meganav-control-mobile-dropdown-menu\");\n const closeIcon = queryId(\"meganav-control-mobile-dropdown-close\");\n\n const clickHandler = () => {\n const ariaExpanded = control.getAttribute(\"aria-expanded\");\n\n if (ariaExpanded === \"false\") {\n dropdown.classList.replace(\"invisible\", \"visible\");\n control.setAttribute(\"aria-expanded\", true);\n scrollLock.disablePageScroll();\n } else {\n dropdown.classList.replace(\"visible\", \"invisible\");\n control.setAttribute(\"aria-expanded\", false);\n scrollLock.enablePageScroll();\n clearPanels();\n }\n\n menuIcon.classList.toggle(\"hidden\");\n closeIcon.classList.toggle(\"hidden\");\n };\n\n control.addEventListener(\"click\", clickHandler);\n\n return {\n teardown: () => {\n control.removeEventListener(\"click\", clickHandler);\n scrollLock.enablePageScroll();\n },\n clear: () => {\n dropdown.classList.replace(\"visible\", \"invisible\");\n control.setAttribute(\"aria-expanded\", false);\n menuIcon.classList.remove(\"hidden\");\n closeIcon.classList.add(\"hidden\");\n scrollLock.enablePageScroll();\n },\n };\n};\n\nexport default MeganavControlMobileDropdown;\n"],"names":["scrollLock","queryId","MeganavControlMobileDropdown","clearPanels","control","dropdown","menuIcon","closeIcon","clickHandler","ariaExpanded","getAttribute","classList","replace","setAttribute","disablePageScroll","enablePageScroll","toggle","addEventListener","teardown","removeEventListener","clear","remove","add"],"mappings":"AAAA,OAAOA,eAAgB,aAAc,AAErC,QAASC,OAAO,KAAQ,iBAAkB,CAE1C,MAAMC,6BAA+B,CAAC,CAAEC,WAAW,CAAE,IACnD,MAAMC,QAAUH,QAAQ,mCACxB,MAAMI,SAAWJ,QAAQ,2BACzB,MAAMK,SAAWL,QAAQ,wCACzB,MAAMM,UAAYN,QAAQ,yCAE1B,MAAMO,aAAe,KACnB,MAAMC,aAAeL,QAAQM,YAAY,CAAC,iBAE1C,GAAID,eAAiB,QAAS,CAC5BJ,SAASM,SAAS,CAACC,OAAO,CAAC,YAAa,WACxCR,QAAQS,YAAY,CAAC,gBAAiB,MACtCb,WAAWc,iBAAiB,EAC9B,KAAO,CACLT,SAASM,SAAS,CAACC,OAAO,CAAC,UAAW,aACtCR,QAAQS,YAAY,CAAC,gBAAiB,OACtCb,WAAWe,gBAAgB,GAC3BZ,aACF,CAEAG,SAASK,SAAS,CAACK,MAAM,CAAC,UAC1BT,UAAUI,SAAS,CAACK,MAAM,CAAC,SAC7B,EAEAZ,QAAQa,gBAAgB,CAAC,QAAST,cAElC,MAAO,CACLU,SAAU,KACRd,QAAQe,mBAAmB,CAAC,QAASX,cACrCR,WAAWe,gBAAgB,EAC7B,EACAK,MAAO,KACLf,SAASM,SAAS,CAACC,OAAO,CAAC,UAAW,aACtCR,QAAQS,YAAY,CAAC,gBAAiB,OACtCP,SAASK,SAAS,CAACU,MAAM,CAAC,UAC1Bd,UAAUI,SAAS,CAACW,GAAG,CAAC,UACxBtB,WAAWe,gBAAgB,EAC7B,CACF,CACF,CAEA,gBAAeb,4BAA6B"}
@@ -0,0 +1,2 @@
1
+ import React from"react";import Icon from"../Icon";const MeganavControlMobileDropdown=({theme})=>React.createElement("button",{type:"button",className:"block ml-24 mr-0 px-0 py-16 hover:text-gui-hover focus:text-gui-focus focus:outline-none","data-id":"meganav-control-mobile-dropdown","aria-expanded":"false","aria-controls":"meganav-mobile-dropdown"},React.createElement(Icon,{name:"icon-gui-bars-3-outline",size:"1.5rem",color:theme.mobileMenuColor,additionalCSS:"transition-colors","data-id":"meganav-control-mobile-dropdown-menu"}),React.createElement(Icon,{name:"icon-gui-x-mark-outline",size:"1.5rem",color:theme.mobileMenuColor,additionalCSS:"transition-colors hidden","data-id":"meganav-control-mobile-dropdown-close"}));export default MeganavControlMobileDropdown;
2
+ //# sourceMappingURL=MeganavControlMobileDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/MeganavControlMobileDropdown.tsx"],"sourcesContent":["import React from \"react\";\n\nimport Icon from \"../Icon\";\nimport { MeganavTheme } from \"./LegacyMeganav\";\n\nconst MeganavControlMobileDropdown = ({ theme }: { theme: MeganavTheme }) => (\n <button\n type=\"button\"\n className=\"block ml-24 mr-0 px-0 py-16 hover:text-gui-hover focus:text-gui-focus focus:outline-none\"\n data-id=\"meganav-control-mobile-dropdown\"\n aria-expanded=\"false\"\n aria-controls=\"meganav-mobile-dropdown\"\n >\n <Icon\n name=\"icon-gui-bars-3-outline\"\n size=\"1.5rem\"\n color={theme.mobileMenuColor}\n additionalCSS=\"transition-colors\"\n data-id=\"meganav-control-mobile-dropdown-menu\"\n />\n <Icon\n name=\"icon-gui-x-mark-outline\"\n size=\"1.5rem\"\n color={theme.mobileMenuColor}\n additionalCSS=\"transition-colors hidden\"\n data-id=\"meganav-control-mobile-dropdown-close\"\n />\n </button>\n);\n\nexport default MeganavControlMobileDropdown;\n"],"names":["React","Icon","MeganavControlMobileDropdown","theme","button","type","className","data-id","aria-expanded","aria-controls","name","size","color","mobileMenuColor","additionalCSS"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAE1B,QAAOC,SAAU,SAAU,CAG3B,MAAMC,6BAA+B,CAAC,CAAEC,KAAK,CAA2B,GACtE,oBAACC,UACCC,KAAK,SACLC,UAAU,2FACVC,UAAQ,kCACRC,gBAAc,QACdC,gBAAc,2BAEd,oBAACR,MACCS,KAAK,0BACLC,KAAK,SACLC,MAAOT,MAAMU,eAAe,CAC5BC,cAAc,oBACdP,UAAQ,yCAEV,oBAACN,MACCS,KAAK,0BACLC,KAAK,SACLC,MAAOT,MAAMU,eAAe,CAC5BC,cAAc,2BACdP,UAAQ,0CAKd,gBAAeL,4BAA6B"}
@@ -0,0 +1,2 @@
1
+ import{queryIdAll}from"../../dom-query";export default(()=>{const closeControls=Array.from(queryIdAll("meganav-control-mobile-panel-close"));const openControls=Array.from(queryIdAll("meganav-control-mobile-panel-open"));const clickHandler=(btn,openBtn,panel)=>()=>{btn.setAttribute("aria-expanded",false);openBtn.setAttribute("aria-expanded",false);panel.classList.replace("block","hidden");panel.style.height=null};return closeControls.map(btn=>{const openBtn=openControls.find(open=>open.getAttribute("aria-controls")===btn.getAttribute("aria-controls"));const panel=document.querySelector(`#${btn.getAttribute("aria-controls")}`);const handler=clickHandler(btn,openBtn,panel);btn.addEventListener("click",handler);return{teardown:()=>btn.removeEventListener("click",handler),clear:()=>btn.setAttribute("aria-expanded",false)}})});
2
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/LegacyMeganav/MeganavControlMobilePanelClose/component.js"],"sourcesContent":["import { queryIdAll } from \"../../dom-query\";\n\nexport default () => {\n const closeControls = Array.from(\n queryIdAll(\"meganav-control-mobile-panel-close\"),\n );\n const openControls = Array.from(\n queryIdAll(\"meganav-control-mobile-panel-open\"),\n );\n\n const clickHandler = (btn, openBtn, panel) => () => {\n btn.setAttribute(\"aria-expanded\", false);\n openBtn.setAttribute(\"aria-expanded\", false);\n panel.classList.replace(\"block\", \"hidden\");\n panel.style.height = null;\n };\n\n return closeControls.map((btn) => {\n const openBtn = openControls.find(\n (open) =>\n open.getAttribute(\"aria-controls\") ===\n btn.getAttribute(\"aria-controls\"),\n );\n const panel = document.querySelector(\n `#${btn.getAttribute(\"aria-controls\")}`,\n );\n const handler = clickHandler(btn, openBtn, panel);\n\n btn.addEventListener(\"click\", handler);\n\n return {\n teardown: () => btn.removeEventListener(\"click\", handler),\n clear: () => btn.setAttribute(\"aria-expanded\", false),\n };\n });\n};\n"],"names":["queryIdAll","closeControls","Array","from","openControls","clickHandler","btn","openBtn","panel","setAttribute","classList","replace","style","height","map","find","open","getAttribute","document","querySelector","handler","addEventListener","teardown","removeEventListener","clear"],"mappings":"AAAA,OAASA,UAAU,KAAQ,iBAAkB,AAE7C,eAAe,CAAA,KACb,MAAMC,cAAgBC,MAAMC,IAAI,CAC9BH,WAAW,uCAEb,MAAMI,aAAeF,MAAMC,IAAI,CAC7BH,WAAW,sCAGb,MAAMK,aAAe,CAACC,IAAKC,QAASC,QAAU,KAC5CF,IAAIG,YAAY,CAAC,gBAAiB,OAClCF,QAAQE,YAAY,CAAC,gBAAiB,OACtCD,MAAME,SAAS,CAACC,OAAO,CAAC,QAAS,SACjCH,CAAAA,MAAMI,KAAK,CAACC,MAAM,CAAG,IACvB,EAEA,OAAOZ,cAAca,GAAG,CAAC,AAACR,MACxB,MAAMC,QAAUH,aAAaW,IAAI,CAC/B,AAACC,MACCA,KAAKC,YAAY,CAAC,mBAClBX,IAAIW,YAAY,CAAC,kBAErB,MAAMT,MAAQU,SAASC,aAAa,CAClC,CAAC,CAAC,EAAEb,IAAIW,YAAY,CAAC,iBAAiB,CAAC,EAEzC,MAAMG,QAAUf,aAAaC,IAAKC,QAASC,OAE3CF,IAAIe,gBAAgB,CAAC,QAASD,SAE9B,MAAO,CACLE,SAAU,IAAMhB,IAAIiB,mBAAmB,CAAC,QAASH,SACjDI,MAAO,IAAMlB,IAAIG,YAAY,CAAC,gBAAiB,MACjD,CACF,EACF,CAAA,CAAE"}
@@ -0,0 +1,2 @@
1
+ import React from"react";import Icon from"../Icon";const MeganavControlMobilePanelClose=({ariaControls,displayHr=true})=>React.createElement("div",{className:"mx-24 md:mx-32"},React.createElement("button",{type:"button",className:"ui-meganav-mobile-link text-gui-default mb-16","data-id":"meganav-control-mobile-panel-close","aria-expanded":"false","aria-controls":ariaControls,"aria-label":"Hide panel"},React.createElement(Icon,{name:"icon-gui-chevron-left-micro",color:"text-cool-black",size:"1.5rem",additionalCSS:"relative -top-1"}),"Back"),displayHr?React.createElement("hr",{className:"ui-meganav-hr"}):null);export default MeganavControlMobilePanelClose;
2
+ //# sourceMappingURL=MeganavControlMobilePanelClose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/MeganavControlMobilePanelClose.tsx"],"sourcesContent":["import React from \"react\";\n\nimport Icon from \"../Icon\";\ntype MeganavControlMobilePanelCloseProps = {\n ariaControls: string;\n displayHr?: boolean;\n};\n\nconst MeganavControlMobilePanelClose = ({\n ariaControls,\n displayHr = true,\n}: MeganavControlMobilePanelCloseProps) => (\n <div className=\"mx-24 md:mx-32\">\n <button\n type=\"button\"\n className=\"ui-meganav-mobile-link text-gui-default mb-16\"\n data-id=\"meganav-control-mobile-panel-close\"\n aria-expanded=\"false\"\n aria-controls={ariaControls}\n aria-label=\"Hide panel\"\n >\n <Icon\n name=\"icon-gui-chevron-left-micro\"\n color=\"text-cool-black\"\n size=\"1.5rem\"\n additionalCSS=\"relative -top-1\"\n />\n Back\n </button>\n {displayHr ? <hr className=\"ui-meganav-hr\" /> : null}\n </div>\n);\n\nexport default MeganavControlMobilePanelClose;\n"],"names":["React","Icon","MeganavControlMobilePanelClose","ariaControls","displayHr","div","className","button","type","data-id","aria-expanded","aria-controls","aria-label","name","color","size","additionalCSS","hr"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAE1B,QAAOC,SAAU,SAAU,CAM3B,MAAMC,+BAAiC,CAAC,CACtCC,YAAY,CACZC,UAAY,IAAI,CACoB,GACpC,oBAACC,OAAIC,UAAU,kBACb,oBAACC,UACCC,KAAK,SACLF,UAAU,gDACVG,UAAQ,qCACRC,gBAAc,QACdC,gBAAeR,aACfS,aAAW,cAEX,oBAACX,MACCY,KAAK,8BACLC,MAAM,kBACNC,KAAK,SACLC,cAAc,oBACd,QAGHZ,UAAY,oBAACa,MAAGX,UAAU,kBAAqB,KAIpD,gBAAeJ,8BAA+B"}
@@ -0,0 +1,2 @@
1
+ import{queryId,queryIdAll}from"../../dom-query";import{remsToPixelValue}from"../../css";export default(()=>{const closeControls=Array.from(queryIdAll("meganav-control-mobile-panel-close"));const openControls=Array.from(queryIdAll("meganav-control-mobile-panel-open"));const dropdown=queryId("meganav-mobile-dropdown");const meganavHeight=remsToPixelValue(getComputedStyle(document.documentElement).getPropertyValue("--ui-meganav-height"));const clickHandler=(btn,closeBtn,panel)=>()=>{btn.setAttribute("aria-expanded",true);closeBtn.setAttribute("aria-expanded",true);panel.classList.replace("hidden","block");panel.style.height=`${window.innerHeight-meganavHeight>panel.offsetHeight?panel.offsetHeight:window.innerHeight-meganavHeight}px`};return openControls.map(btn=>{const closeBtn=closeControls.find(node=>node.getAttribute("aria-controls")===btn.getAttribute("aria-controls"));const panel=document.querySelector(`#${btn.getAttribute("aria-controls")}`);const handler=clickHandler(btn,closeBtn,panel);btn.addEventListener("click",handler);return{teardown:()=>btn.removeEventListener("click",handler),clear:()=>{panel.classList.replace("block","hidden");dropdown.classList.remove("ui-meganav-mobile-dropdown-expand");btn.setAttribute("aria-expanded",false);panel.style.height=null}}})});
2
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/LegacyMeganav/MeganavControlMobilePanelOpen/component.js"],"sourcesContent":["import { queryId, queryIdAll } from \"../../dom-query\";\nimport { remsToPixelValue } from \"../../css\";\n\nexport default () => {\n const closeControls = Array.from(\n queryIdAll(\"meganav-control-mobile-panel-close\"),\n );\n const openControls = Array.from(\n queryIdAll(\"meganav-control-mobile-panel-open\"),\n );\n const dropdown = queryId(\"meganav-mobile-dropdown\");\n\n // Height is defined in rem's so to get the pixel value we need to find the fontSize on root\n const meganavHeight = remsToPixelValue(\n getComputedStyle(document.documentElement).getPropertyValue(\n \"--ui-meganav-height\",\n ),\n );\n\n const clickHandler = (btn, closeBtn, panel) => () => {\n btn.setAttribute(\"aria-expanded\", true);\n closeBtn.setAttribute(\"aria-expanded\", true);\n panel.classList.replace(\"hidden\", \"block\");\n\n // On devices where we don't have enough space for the panel, set it's height to\n // the height of the viewport (minus the meganav height) - this will trigger a scroll.\n // Otherwise just set it to the panel height. This handles the case where the ratio of vertical\n // space to horizontal is especially high (think tablets, but not only).\n panel.style.height = `${\n window.innerHeight - meganavHeight > panel.offsetHeight\n ? panel.offsetHeight\n : window.innerHeight - meganavHeight\n }px`;\n };\n\n return openControls.map((btn) => {\n const closeBtn = closeControls.find(\n (node) =>\n node.getAttribute(\"aria-controls\") ===\n btn.getAttribute(\"aria-controls\"),\n );\n const panel = document.querySelector(\n `#${btn.getAttribute(\"aria-controls\")}`,\n );\n const handler = clickHandler(btn, closeBtn, panel);\n\n btn.addEventListener(\"click\", handler);\n\n return {\n teardown: () => btn.removeEventListener(\"click\", handler),\n clear: () => {\n panel.classList.replace(\"block\", \"hidden\");\n dropdown.classList.remove(\"ui-meganav-mobile-dropdown-expand\");\n btn.setAttribute(\"aria-expanded\", false);\n panel.style.height = null;\n },\n };\n });\n};\n"],"names":["queryId","queryIdAll","remsToPixelValue","closeControls","Array","from","openControls","dropdown","meganavHeight","getComputedStyle","document","documentElement","getPropertyValue","clickHandler","btn","closeBtn","panel","setAttribute","classList","replace","style","height","window","innerHeight","offsetHeight","map","find","node","getAttribute","querySelector","handler","addEventListener","teardown","removeEventListener","clear","remove"],"mappings":"AAAA,OAASA,OAAO,CAAEC,UAAU,KAAQ,iBAAkB,AACtD,QAASC,gBAAgB,KAAQ,WAAY,AAE7C,eAAe,CAAA,KACb,MAAMC,cAAgBC,MAAMC,IAAI,CAC9BJ,WAAW,uCAEb,MAAMK,aAAeF,MAAMC,IAAI,CAC7BJ,WAAW,sCAEb,MAAMM,SAAWP,QAAQ,2BAGzB,MAAMQ,cAAgBN,iBACpBO,iBAAiBC,SAASC,eAAe,EAAEC,gBAAgB,CACzD,wBAIJ,MAAMC,aAAe,CAACC,IAAKC,SAAUC,QAAU,KAC7CF,IAAIG,YAAY,CAAC,gBAAiB,MAClCF,SAASE,YAAY,CAAC,gBAAiB,MACvCD,MAAME,SAAS,CAACC,OAAO,CAAC,SAAU,QAMlCH,CAAAA,MAAMI,KAAK,CAACC,MAAM,CAAG,CAAC,EACpBC,OAAOC,WAAW,CAAGf,cAAgBQ,MAAMQ,YAAY,CACnDR,MAAMQ,YAAY,CAClBF,OAAOC,WAAW,CAAGf,cAC1B,EAAE,CAAC,AACN,EAEA,OAAOF,aAAamB,GAAG,CAAC,AAACX,MACvB,MAAMC,SAAWZ,cAAcuB,IAAI,CACjC,AAACC,MACCA,KAAKC,YAAY,CAAC,mBAClBd,IAAIc,YAAY,CAAC,kBAErB,MAAMZ,MAAQN,SAASmB,aAAa,CAClC,CAAC,CAAC,EAAEf,IAAIc,YAAY,CAAC,iBAAiB,CAAC,EAEzC,MAAME,QAAUjB,aAAaC,IAAKC,SAAUC,OAE5CF,IAAIiB,gBAAgB,CAAC,QAASD,SAE9B,MAAO,CACLE,SAAU,IAAMlB,IAAImB,mBAAmB,CAAC,QAASH,SACjDI,MAAO,KACLlB,MAAME,SAAS,CAACC,OAAO,CAAC,QAAS,UACjCZ,SAASW,SAAS,CAACiB,MAAM,CAAC,qCAC1BrB,IAAIG,YAAY,CAAC,gBAAiB,MAClCD,CAAAA,MAAMI,KAAK,CAACC,MAAM,CAAG,IACvB,CACF,CACF,EACF,CAAA,CAAE"}
@@ -0,0 +1,2 @@
1
+ import React from"react";import Icon from"../Icon";const MeganavControlMobilePanelOpen=({ariaControls,children})=>React.createElement("button",{type:"button",className:"ui-meganav-mobile-link","data-id":"meganav-control-mobile-panel-open","aria-expanded":"false","aria-controls":ariaControls,"aria-label":`Show ${children}`},children,React.createElement(Icon,{name:"icon-gui-chevron-right-micro",color:"text-cool-black",size:"1.5rem",additionalCSS:"relative -top-1 ml-auto float-right"}));export default MeganavControlMobilePanelOpen;
2
+ //# sourceMappingURL=MeganavControlMobilePanelOpen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/MeganavControlMobilePanelOpen.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\n\nimport Icon from \"../Icon\";\ntype MeganavControlMobilePanelOpenProps = {\n ariaControls: string;\n children: ReactNode;\n};\n\nconst MeganavControlMobilePanelOpen = ({\n ariaControls,\n children,\n}: MeganavControlMobilePanelOpenProps) => (\n <button\n type=\"button\"\n className=\"ui-meganav-mobile-link\"\n data-id=\"meganav-control-mobile-panel-open\"\n aria-expanded=\"false\"\n aria-controls={ariaControls}\n aria-label={`Show ${children}`}\n >\n {children}\n <Icon\n name=\"icon-gui-chevron-right-micro\"\n color=\"text-cool-black\"\n size=\"1.5rem\"\n additionalCSS=\"relative -top-1 ml-auto float-right\"\n />\n </button>\n);\n\nexport default MeganavControlMobilePanelOpen;\n"],"names":["React","Icon","MeganavControlMobilePanelOpen","ariaControls","children","button","type","className","data-id","aria-expanded","aria-controls","aria-label","name","color","size","additionalCSS"],"mappings":"AAAA,OAAOA,UAA0B,OAAQ,AAEzC,QAAOC,SAAU,SAAU,CAM3B,MAAMC,8BAAgC,CAAC,CACrCC,YAAY,CACZC,QAAQ,CAC2B,GACnC,oBAACC,UACCC,KAAK,SACLC,UAAU,yBACVC,UAAQ,oCACRC,gBAAc,QACdC,gBAAeP,aACfQ,aAAY,CAAC,KAAK,EAAEP,SAAS,CAAC,EAE7BA,SACD,oBAACH,MACCW,KAAK,+BACLC,MAAM,kBACNC,KAAK,SACLC,cAAc,wCAKpB,gBAAeb,6BAA8B"}
@@ -0,0 +1,2 @@
1
+ import React from"react";import MeganavData from"./component.json";import MeganavControl from"./MeganavControl";const MeganavDesktopItems=({panels,paths,theme,absUrl,statusUrl})=>React.createElement("ul",{className:"hidden md:flex","data-id":"meganav-items-desktop"},MeganavData.panels.map(panel=>{const PanelComponent=panels[panel.component];const bgCSS=["products-panel","use-cases-panel"].includes(panel.id)?"ui-meganav-panel-split-bg":"";return React.createElement("li",{className:"ui-meganav-item",key:panel.id},React.createElement(MeganavControl,{theme:theme,ariaControls:panel.id,ariaLabel:panel.label},React.createElement("span",{className:"hidden lg:inline"},panel.label),React.createElement("span",{className:"lg:hidden"},panel.shortLabel)),React.createElement("div",{className:`ui-meganav-panel invisible ${bgCSS}`,id:panel.id,"data-id":"meganav-panel"},React.createElement(PanelComponent,{paths:paths,absUrl:absUrl,statusUrl:statusUrl})))}),React.createElement("li",{className:"ui-meganav-item"},React.createElement("a",{href:absUrl("/pricing"),"data-id":"meganav-link",className:`ui-meganav-link h-64 items-center flex ${theme.textColor}`},"Pricing")));export default React.memo(MeganavDesktopItems);
2
+ //# sourceMappingURL=MeganavItemsDesktop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/MeganavItemsDesktop.tsx"],"sourcesContent":["import React from \"react\";\n\nimport MeganavData from \"./component.json\";\nimport MeganavControl from \"./MeganavControl\";\nimport {\n AbsUrl,\n MeganavPanels,\n MeganavPaths,\n MeganavTheme,\n} from \"./LegacyMeganav\";\n\ntype MeganavDesktopItems = {\n panels: MeganavPanels;\n paths?: MeganavPaths;\n theme: MeganavTheme;\n absUrl: AbsUrl;\n statusUrl: string;\n};\n\nconst MeganavDesktopItems = ({\n panels,\n paths,\n theme,\n absUrl,\n statusUrl,\n}: MeganavDesktopItems) => (\n <ul className=\"hidden md:flex\" data-id=\"meganav-items-desktop\">\n {MeganavData.panels.map((panel) => {\n const PanelComponent = panels[panel.component];\n const bgCSS = [\"products-panel\", \"use-cases-panel\"].includes(panel.id)\n ? \"ui-meganav-panel-split-bg\"\n : \"\";\n\n return (\n <li className=\"ui-meganav-item\" key={panel.id}>\n <MeganavControl\n theme={theme}\n ariaControls={panel.id}\n ariaLabel={panel.label}\n >\n <span className=\"hidden lg:inline\">{panel.label}</span>\n <span className=\"lg:hidden\">{panel.shortLabel}</span>\n </MeganavControl>\n\n <div\n className={`ui-meganav-panel invisible ${bgCSS}`}\n id={panel.id}\n data-id=\"meganav-panel\"\n >\n <PanelComponent\n paths={paths}\n absUrl={absUrl}\n statusUrl={statusUrl}\n />\n </div>\n </li>\n );\n })}\n\n <li className=\"ui-meganav-item\">\n <a\n href={absUrl(\"/pricing\")}\n data-id=\"meganav-link\"\n className={`ui-meganav-link h-64 items-center flex ${theme.textColor}`}\n >\n Pricing\n </a>\n </li>\n </ul>\n);\n\nexport default React.memo(MeganavDesktopItems);\n"],"names":["React","MeganavData","MeganavControl","MeganavDesktopItems","panels","paths","theme","absUrl","statusUrl","ul","className","data-id","map","panel","PanelComponent","component","bgCSS","includes","id","li","key","ariaControls","ariaLabel","label","span","shortLabel","div","a","href","textColor","memo"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAE1B,QAAOC,gBAAiB,kBAAmB,AAC3C,QAAOC,mBAAoB,kBAAmB,CAgB9C,MAAMC,oBAAsB,CAAC,CAC3BC,MAAM,CACNC,KAAK,CACLC,KAAK,CACLC,MAAM,CACNC,SAAS,CACW,GACpB,oBAACC,MAAGC,UAAU,iBAAiBC,UAAQ,yBACpCV,YAAYG,MAAM,CAACQ,GAAG,CAAC,AAACC,QACvB,MAAMC,eAAiBV,MAAM,CAACS,MAAME,SAAS,CAAC,CAC9C,MAAMC,MAAQ,CAAC,iBAAkB,kBAAkB,CAACC,QAAQ,CAACJ,MAAMK,EAAE,EACjE,4BACA,GAEJ,OACE,oBAACC,MAAGT,UAAU,kBAAkBU,IAAKP,MAAMK,EAAE,EAC3C,oBAAChB,gBACCI,MAAOA,MACPe,aAAcR,MAAMK,EAAE,CACtBI,UAAWT,MAAMU,KAAK,EAEtB,oBAACC,QAAKd,UAAU,oBAAoBG,MAAMU,KAAK,EAC/C,oBAACC,QAAKd,UAAU,aAAaG,MAAMY,UAAU,GAG/C,oBAACC,OACChB,UAAW,CAAC,2BAA2B,EAAEM,MAAM,CAAC,CAChDE,GAAIL,MAAMK,EAAE,CACZP,UAAQ,iBAER,oBAACG,gBACCT,MAAOA,MACPE,OAAQA,OACRC,UAAWA,aAKrB,GAEA,oBAACW,MAAGT,UAAU,mBACZ,oBAACiB,KACCC,KAAMrB,OAAO,YACbI,UAAQ,eACRD,UAAW,CAAC,uCAAuC,EAAEJ,MAAMuB,SAAS,CAAC,CAAC,EACvE,YAOP,gBAAe7B,MAAM8B,IAAI,CAAC3B,oBAAqB"}
@@ -0,0 +1,2 @@
1
+ import React from"react";import SignOutLink from"./SignOutLink";import MeganavSearchSuggestions from"./MeganavSearchSuggestions";import Icon from"../Icon";import MeganavData from"./component.json";import MeganavControlMobileDropdown from"./MeganavControlMobileDropdown";import MeganavControlMobilePanelClose from"./MeganavControlMobilePanelClose";import MeganavControlMobilePanelOpen from"./MeganavControlMobilePanelOpen";import MeganavSearchAutocomplete from"./MeganavSearchAutocomplete";const MeganavItemsMobile=({panels,paths,sessionState,theme,loginLink,absUrl,statusUrl,searchDataId})=>{const classNames=`ui-meganav-link ${theme.textColor}`;return React.createElement("ul",{className:"flex md:hidden items-center","data-id":"meganav-items-mobile"},React.createElement("li",null,sessionState?.signedIn&&sessionState?.logOut?React.createElement(SignOutLink,{absUrl:absUrl,...sessionState.logOut},({text,href,onClick})=>React.createElement("a",{onClick:onClick,href:absUrl(href),className:classNames,"data-id":"meganav-link"},text)):React.createElement("a",{href:absUrl(loginLink),className:classNames,"data-id":"meganav-link"},"Login")),React.createElement("li",{className:"ui-meganav-item"},React.createElement(MeganavControlMobileDropdown,{theme:theme}),React.createElement("div",{className:"ui-meganav-mobile-dropdown invisible",id:"meganav-mobile-dropdown","data-id":"meganav-mobile-dropdown"},React.createElement("div",{className:"pt-24 pb-16 ui-grid-px bg-white"},React.createElement("form",{className:"mb-16",action:absUrl("/search"),method:"get"},React.createElement("div",{className:"relative w-full"},React.createElement(Icon,{name:"icon-gui-magnifying-glass-outline",color:"text-cool-black",size:"1.5rem",additionalCSS:"absolute top-12 left-16 hover:text-gui-hover"}),React.createElement("button",{type:"button",className:"absolute top-12 right-16 p-0 focus:outline-none focus-visible:outline-gui-focus m-0 md:hidden invisible","data-id":"meganav-search-input-clear"},React.createElement(Icon,{name:"icon-gui-x-circle-solid",color:"text-dark-grey",size:"1.5rem",additionalCSS:""})),React.createElement("input",{type:"search",name:"q",className:"ui-input px-48 h-48",style:{maxWidth:"none"},placeholder:"Search",autoComplete:"off","data-id":searchDataId??"meganav-mobile-search-input"}),React.createElement(MeganavSearchAutocomplete,null))),React.createElement("div",{className:"max-h-0 overflow-hidden transition-all","data-id":"meganav-mobile-search-suggestions"},React.createElement(MeganavSearchSuggestions,{absUrl:absUrl,displaySupportLink:false})),React.createElement("ul",{className:"mb-16","data-id":"meganav-mobile-panel-controls"},MeganavData.panels.map(panel=>{const PanelComponent=panels[panel.component];const displayHr=["company-panel","developers-panel"].includes(panel.id);return React.createElement("li",{className:"ui-meganav-mobile-item",key:`${panel.id}-mobile`},React.createElement(MeganavControlMobilePanelOpen,{ariaControls:`${panel.id}-mobile`},panel.label),React.createElement("div",{className:"ui-meganav-panel-mobile hidden",id:`${panel.id}-mobile`,"data-scroll-lock-scrollable":true},React.createElement(MeganavControlMobilePanelClose,{ariaControls:`${panel.id}-mobile`,displayHr:displayHr}),React.createElement(PanelComponent,{paths:paths,absUrl:absUrl,statusUrl:statusUrl})))}),React.createElement("li",null,React.createElement("a",{href:absUrl("/pricing"),className:"ui-meganav-mobile-link"},"Pricing"))),React.createElement("hr",{className:"ui-meganav-hr mb-20"}),React.createElement("div",{className:"flex justify-between items-center mb-16"},React.createElement("a",{href:absUrl("/contact"),className:"text-menu2 font-medium block ml-0 mr-8 lg:mx-12 p-0 hover:text-gui-hover focus:text-gui-focus focus:outline-none"},"Contact us"),sessionState?.signedIn&&sessionState?.account?React.createElement("a",{href:absUrl(sessionState.account.links.dashboard.href),className:"ui-btn-secondary"},"Dashboard"):React.createElement("a",{href:absUrl("/sign-up"),className:"ui-btn"},"Sign up free"))))))};export default React.memo(MeganavItemsMobile,(oldState,newState)=>{const{paths:pathsOld,theme:themeOld}=oldState;const{paths:pathsNew,theme:themeNew}=newState;return pathsOld===pathsNew&&themeOld===themeNew&&Object.keys(newState.sessionState||{}).length===0});
2
+ //# sourceMappingURL=MeganavItemsMobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/MeganavItemsMobile.tsx"],"sourcesContent":["import React from \"react\";\n\nimport SignOutLink from \"./SignOutLink\";\nimport MeganavSearchSuggestions from \"./MeganavSearchSuggestions\";\nimport Icon from \"../Icon\";\nimport MeganavData from \"./component.json\";\nimport MeganavControlMobileDropdown from \"./MeganavControlMobileDropdown\";\nimport MeganavControlMobilePanelClose from \"./MeganavControlMobilePanelClose\";\nimport MeganavControlMobilePanelOpen from \"./MeganavControlMobilePanelOpen\";\nimport MeganavSearchAutocomplete from \"./MeganavSearchAutocomplete\";\nimport {\n AbsUrl,\n MeganavPanels,\n MeganavPaths,\n MeganavSessionState,\n MeganavTheme,\n} from \"./LegacyMeganav\";\n\ntype MeganavItemsMobileProps = {\n panels: MeganavPanels;\n paths?: MeganavPaths;\n sessionState?: MeganavSessionState;\n theme: MeganavTheme;\n loginLink: string;\n absUrl: AbsUrl;\n statusUrl: string;\n searchDataId?: string;\n};\n\nconst MeganavItemsMobile = ({\n panels,\n paths,\n sessionState,\n theme,\n loginLink,\n absUrl,\n statusUrl,\n searchDataId,\n}: MeganavItemsMobileProps) => {\n const classNames = `ui-meganav-link ${theme.textColor}`;\n\n return (\n <ul className=\"flex md:hidden items-center\" data-id=\"meganav-items-mobile\">\n <li>\n {sessionState?.signedIn && sessionState?.logOut ? (\n <SignOutLink absUrl={absUrl} {...sessionState.logOut}>\n {({ text, href, onClick }) => (\n <a\n onClick={onClick}\n href={absUrl(href)}\n className={classNames}\n data-id=\"meganav-link\"\n >\n {text}\n </a>\n )}\n </SignOutLink>\n ) : (\n <a\n href={absUrl(loginLink)}\n className={classNames}\n data-id=\"meganav-link\"\n >\n Login\n </a>\n )}\n </li>\n\n <li className=\"ui-meganav-item\">\n <MeganavControlMobileDropdown theme={theme} />\n\n <div\n className=\"ui-meganav-mobile-dropdown invisible\"\n id=\"meganav-mobile-dropdown\"\n data-id=\"meganav-mobile-dropdown\"\n >\n <div className=\"pt-24 pb-16 ui-grid-px bg-white\">\n <form className=\"mb-16\" action={absUrl(\"/search\")} method=\"get\">\n <div className=\"relative w-full\">\n <Icon\n name=\"icon-gui-magnifying-glass-outline\"\n color=\"text-cool-black\"\n size=\"1.5rem\"\n additionalCSS=\"absolute top-12 left-16 hover:text-gui-hover\"\n />\n <button\n type=\"button\"\n className=\"absolute top-12 right-16 p-0 focus:outline-none focus-visible:outline-gui-focus m-0 md:hidden invisible\"\n data-id=\"meganav-search-input-clear\"\n >\n <Icon\n name=\"icon-gui-x-circle-solid\"\n color=\"text-dark-grey\"\n size=\"1.5rem\"\n additionalCSS=\"\"\n />\n </button>\n <input\n type=\"search\"\n name=\"q\"\n className=\"ui-input px-48 h-48\"\n style={{ maxWidth: \"none\" }}\n placeholder=\"Search\"\n autoComplete=\"off\"\n data-id={searchDataId ?? \"meganav-mobile-search-input\"}\n />\n\n <MeganavSearchAutocomplete />\n </div>\n </form>\n\n <div\n className=\"max-h-0 overflow-hidden transition-all\"\n data-id=\"meganav-mobile-search-suggestions\"\n >\n <MeganavSearchSuggestions\n absUrl={absUrl}\n displaySupportLink={false}\n />\n </div>\n\n <ul className=\"mb-16\" data-id=\"meganav-mobile-panel-controls\">\n {MeganavData.panels.map((panel) => {\n const PanelComponent = panels[panel.component];\n const displayHr = [\n \"company-panel\",\n \"developers-panel\",\n ].includes(panel.id);\n\n return (\n <li\n className=\"ui-meganav-mobile-item\"\n key={`${panel.id}-mobile`}\n >\n <MeganavControlMobilePanelOpen\n ariaControls={`${panel.id}-mobile`}\n >\n {panel.label}\n </MeganavControlMobilePanelOpen>\n\n <div\n className=\"ui-meganav-panel-mobile hidden\"\n id={`${panel.id}-mobile`}\n data-scroll-lock-scrollable\n >\n <MeganavControlMobilePanelClose\n ariaControls={`${panel.id}-mobile`}\n displayHr={displayHr}\n />\n <PanelComponent\n paths={paths}\n absUrl={absUrl}\n statusUrl={statusUrl}\n />\n </div>\n </li>\n );\n })}\n <li>\n <a href={absUrl(\"/pricing\")} className=\"ui-meganav-mobile-link\">\n Pricing\n </a>\n </li>\n </ul>\n\n <hr className=\"ui-meganav-hr mb-20\" />\n\n <div className=\"flex justify-between items-center mb-16\">\n <a\n href={absUrl(\"/contact\")}\n className=\"text-menu2 font-medium block ml-0 mr-8 lg:mx-12 p-0 hover:text-gui-hover focus:text-gui-focus focus:outline-none\"\n >\n Contact us\n </a>\n {sessionState?.signedIn && sessionState?.account ? (\n <a\n href={absUrl(sessionState.account.links.dashboard.href)}\n className=\"ui-btn-secondary\"\n >\n Dashboard\n </a>\n ) : (\n <a href={absUrl(\"/sign-up\")} className=\"ui-btn\">\n Sign up free\n </a>\n )}\n </div>\n </div>\n </div>\n </li>\n </ul>\n );\n};\n\nexport default React.memo(MeganavItemsMobile, (oldState, newState) => {\n const { paths: pathsOld, theme: themeOld } = oldState;\n const { paths: pathsNew, theme: themeNew } = newState;\n\n return (\n pathsOld === pathsNew &&\n themeOld === themeNew &&\n Object.keys(newState.sessionState || {}).length === 0\n );\n});\n"],"names":["React","SignOutLink","MeganavSearchSuggestions","Icon","MeganavData","MeganavControlMobileDropdown","MeganavControlMobilePanelClose","MeganavControlMobilePanelOpen","MeganavSearchAutocomplete","MeganavItemsMobile","panels","paths","sessionState","theme","loginLink","absUrl","statusUrl","searchDataId","classNames","textColor","ul","className","data-id","li","signedIn","logOut","text","href","onClick","a","div","id","form","action","method","name","color","size","additionalCSS","button","type","input","style","maxWidth","placeholder","autoComplete","displaySupportLink","map","panel","PanelComponent","component","displayHr","includes","key","ariaControls","label","data-scroll-lock-scrollable","hr","account","links","dashboard","memo","oldState","newState","pathsOld","themeOld","pathsNew","themeNew","Object","keys","length"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/MeganavItemsSignedIn.tsx"],"sourcesContent":["import React from \"react\";\nimport MeganavSearch from \"./MeganavSearch\";\nimport { AbsUrl, MeganavSessionState, MeganavTheme } from \"./LegacyMeganav\";\n\ntype MeganavItemsSignedIn = {\n sessionState: MeganavSessionState;\n theme: MeganavTheme;\n absUrl: AbsUrl;\n searchDataId?: string;\n};\n\nconst truncate = (string: string, length: number) => {\n return string?.length && string.length > length\n ? `${string.slice(0, length - 1)}…`\n : string;\n};\n\nconst MeganavItemsSignedIn = ({\n sessionState,\n absUrl,\n searchDataId,\n}: MeganavItemsSignedIn) => {\n const accountName = truncate(sessionState.accountName, 20);\n\n return (\n <ul className=\"hidden md:flex items-center\">\n <li className=\"ui-meganav-item relative\">\n <span className=\"ui-meganav-link h-64 hover:text-cool-black mr-0\">\n {accountName}\n </span>\n </li>\n\n <li>\n <MeganavSearch absUrl={absUrl} dataId={searchDataId} />\n </li>\n\n {sessionState.account && (\n <li>\n <a\n href={absUrl(sessionState.account.links.dashboard.href)}\n className=\"ui-btn-secondary p-btn-small\"\n >\n Dashboard\n </a>\n </li>\n )}\n </ul>\n );\n};\n\nexport default MeganavItemsSignedIn;\n"],"names":["React","MeganavSearch","truncate","string","length","slice","MeganavItemsSignedIn","sessionState","absUrl","searchDataId","accountName","ul","className","li","span","dataId","account","a","href","links","dashboard"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAAOC,kBAAmB,iBAAkB,CAU5C,MAAMC,SAAW,CAACC,OAAgBC,UAChC,OAAOD,QAAQC,QAAUD,OAAOC,MAAM,CAAGA,OACrC,CAAC,EAAED,OAAOE,KAAK,CAAC,EAAGD,OAAS,GAAG,CAAC,CAAC,CACjCD,MACN,EAEA,MAAMG,qBAAuB,CAAC,CAC5BC,YAAY,CACZC,MAAM,CACNC,YAAY,CACS,IACrB,MAAMC,YAAcR,SAASK,aAAaG,WAAW,CAAE,IAEvD,OACE,oBAACC,MAAGC,UAAU,+BACZ,oBAACC,MAAGD,UAAU,4BACZ,oBAACE,QAAKF,UAAU,mDACbF,cAIL,oBAACG,UACC,oBAACZ,eAAcO,OAAQA,OAAQO,OAAQN,gBAGxCF,aAAaS,OAAO,EACnB,oBAACH,UACC,oBAACI,KACCC,KAAMV,OAAOD,aAAaS,OAAO,CAACG,KAAK,CAACC,SAAS,CAACF,IAAI,EACtDN,UAAU,gCACX,cAOX,CAEA,gBAAeN,oBAAqB"}
@@ -0,0 +1,2 @@
1
+ import React from"react";import Icon from"../Icon";import MeganavSearchPanel from"./MeganavSearchPanel";const MeganavSearch=({absUrl,dataId="meganav-control"})=>React.createElement(React.Fragment,null,React.createElement("button",{type:"button","data-id":dataId,"data-control":"search",className:"h-64 w-24 px-24 pr-48 py-20 group focus:outline-none","aria-expanded":"false","aria-controls":"panel-search","aria-label":`Show Search Panel`},React.createElement(Icon,{name:"icon-gui-magnifying-glass-outline",color:"text-cool-black",size:"1.5rem",additionalCSS:"group-hover:text-gui-hover group-focus:text-gui-focus"})),React.createElement("div",{className:"ui-meganav-panel invisible",id:"panel-search","data-id":"meganav-panel"},React.createElement(MeganavSearchPanel,{absUrl:absUrl})));export default MeganavSearch;
2
+ //# sourceMappingURL=MeganavSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/MeganavSearch.tsx"],"sourcesContent":["import React from \"react\";\n\nimport Icon from \"../Icon\";\nimport MeganavSearchPanel from \"./MeganavSearchPanel\";\nimport { AbsUrl } from \"./LegacyMeganav\";\n\nconst MeganavSearch = ({\n absUrl,\n dataId = \"meganav-control\",\n}: {\n absUrl: AbsUrl;\n dataId?: string;\n}) => (\n <>\n <button\n type=\"button\"\n data-id={dataId}\n data-control=\"search\"\n className=\"h-64 w-24 px-24 pr-48 py-20 group focus:outline-none\"\n aria-expanded=\"false\"\n aria-controls=\"panel-search\"\n aria-label={`Show Search Panel`}\n >\n <Icon\n name=\"icon-gui-magnifying-glass-outline\"\n color=\"text-cool-black\"\n size=\"1.5rem\"\n additionalCSS=\"group-hover:text-gui-hover group-focus:text-gui-focus\"\n />\n </button>\n\n <div\n className=\"ui-meganav-panel invisible\"\n id=\"panel-search\"\n data-id=\"meganav-panel\"\n >\n <MeganavSearchPanel absUrl={absUrl} />\n </div>\n </>\n);\n\nexport default MeganavSearch;\n"],"names":["React","Icon","MeganavSearchPanel","MeganavSearch","absUrl","dataId","button","type","data-id","data-control","className","aria-expanded","aria-controls","aria-label","name","color","size","additionalCSS","div","id"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAE1B,QAAOC,SAAU,SAAU,AAC3B,QAAOC,uBAAwB,sBAAuB,CAGtD,MAAMC,cAAgB,CAAC,CACrBC,MAAM,CACNC,OAAS,iBAAiB,CAI3B,GACC,wCACE,oBAACC,UACCC,KAAK,SACLC,UAASH,OACTI,eAAa,SACbC,UAAU,uDACVC,gBAAc,QACdC,gBAAc,eACdC,aAAY,CAAC,iBAAiB,CAAC,EAE/B,oBAACZ,MACCa,KAAK,oCACLC,MAAM,kBACNC,KAAK,SACLC,cAAc,2DAIlB,oBAACC,OACCR,UAAU,6BACVS,GAAG,eACHX,UAAQ,iBAER,oBAACN,oBAAmBE,OAAQA,UAKlC,gBAAeD,aAAc"}
@@ -0,0 +1,2 @@
1
+ import{queryId}from"../../dom-query";import AddSearchClient from"addsearch-js-client";const init=({input,container,listContainer,clear,client})=>{client.setAnalyticsTag("Meganav autocomplete");client.setThrottleTime(400);const clearResults=()=>{container.classList.add("hidden");listContainer.innerHTML=""};const toggleClearBtn=query=>{if((query||"").length>0&&clear){clear.classList.remove("invisible")}else if(clear){clear.classList.add("invisible")}};const markQueryInSuggestion=(suggestionValue,query)=>{return suggestionValue.replace(query.toLowerCase(),`<span class="font-light">${query}</span>`)};const navigateToUrl=q=>window.location=`/search?q=${q}`;const focusNext=index=>{const nextSuggestion=listContainer.querySelector(`[data-suggestion-index="${index+1}"]`);if(!nextSuggestion)return;nextSuggestion.focus()};const focusPrevious=index=>{const previousIndex=index-1;const previousSuggestion=listContainer.querySelector(`[data-suggestion-index="${previousIndex}"]`);if(!previousSuggestion)return;previousSuggestion.focus()};const renderResults=query=>(results={})=>{toggleClearBtn(query);if(!Array.isArray(results.suggestions)){clearResults();return}if(results.suggestions.length===0){clearResults();return}const items=results.suggestions.map((suggestion,index)=>{const li=document.createElement("li");const button=document.createElement("button");button.type="button";button.classList.add("ui-text-menu2","font-medium","p-8","w-full","text-left","rounded","hover:text-gui-hover","focus:outline-gui-focus","hover:bg-light-grey");button.innerHTML=markQueryInSuggestion(suggestion.value,query);button.dataset.suggestionIndex=index;button.addEventListener("click",()=>{navigateToUrl(suggestion.value)});button.addEventListener("keydown",e=>{const key=e.key;if(key==="ArrowDown"){focusNext(index)}else if(key==="ArrowUp"&&index-1<0){input.focus()}else if(key==="ArrowUp"&&index-1>=0){focusPrevious(index)}else if(key==="Enter"||key==="Space"){navigateToUrl(suggestion.value)}});li.appendChild(button);return li});listContainer.innerHTML="";items.forEach(item=>listContainer.appendChild(item));container.classList.remove("hidden")};const keyupHandler=e=>{const query=e.target.value;const key=e.key;if(key==="ArrowDown"){focusNext(0);return}if(!query){clearResults()}else{client.suggestions(query,renderResults(query))}};let clearHandler;if(clear){clearHandler=()=>{input.value="";clear.classList.add("invisible");clearResults()};clear.addEventListener("click",clearHandler)}input.addEventListener("keyup",keyupHandler);return{teardown:()=>{input.removeEventListener("keyup",keyupHandler);if(clear)clear.removeEventListener("click",clearHandler)},clear:()=>{input.value="";clearResults()}}};export default(apiKey=>{if(!apiKey){console.log(`No AddSearch API key provided, skipping search suggestions.`);return[]}const client=new AddSearchClient(apiKey);return[queryId("meganav-search-input"),queryId("meganav-mobile-search-input")].filter(i=>i).map(input=>{const parent=input.parentNode;const container=queryId("meganav-search-autocomplete-container",parent);const listContainer=queryId("meganav-search-autocomplete-list",parent);const clear=queryId("meganav-search-input-clear",parent);return init({input,container,listContainer,client,clear})})});
2
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/LegacyMeganav/MeganavSearchAutocomplete/component.js"],"sourcesContent":["import { queryId } from \"../../dom-query\";\nimport AddSearchClient from \"addsearch-js-client\";\n\nconst init = ({ input, container, listContainer, clear, client }) => {\n client.setAnalyticsTag(\"Meganav autocomplete\");\n client.setThrottleTime(400);\n\n const clearResults = () => {\n container.classList.add(\"hidden\");\n listContainer.innerHTML = \"\";\n };\n\n const toggleClearBtn = (query) => {\n if ((query || \"\").length > 0 && clear) {\n clear.classList.remove(\"invisible\");\n } else if (clear) {\n clear.classList.add(\"invisible\");\n }\n };\n\n const markQueryInSuggestion = (suggestionValue, query) => {\n return suggestionValue.replace(\n query.toLowerCase(),\n `<span class=\"font-light\">${query}</span>`,\n );\n };\n\n const navigateToUrl = (q) => (window.location = `/search?q=${q}`);\n\n const focusNext = (index) => {\n const nextSuggestion = listContainer.querySelector(\n `[data-suggestion-index=\"${index + 1}\"]`,\n );\n if (!nextSuggestion) return;\n nextSuggestion.focus();\n };\n\n const focusPrevious = (index) => {\n const previousIndex = index - 1;\n\n const previousSuggestion = listContainer.querySelector(\n `[data-suggestion-index=\"${previousIndex}\"]`,\n );\n if (!previousSuggestion) return;\n previousSuggestion.focus();\n };\n\n const renderResults =\n (query) =>\n (results = {}) => {\n toggleClearBtn(query);\n\n // Prevent invalid access error when key is invalid\n if (!Array.isArray(results.suggestions)) {\n clearResults();\n return;\n }\n\n // Prevent key error from invalid key\n if (results.suggestions.length === 0) {\n clearResults();\n return;\n }\n\n const items = results.suggestions.map((suggestion, index) => {\n const li = document.createElement(\"li\");\n const button = document.createElement(\"button\");\n button.type = \"button\";\n\n button.classList.add(\n \"ui-text-menu2\",\n \"font-medium\",\n \"p-8\",\n \"w-full\",\n \"text-left\",\n \"rounded\",\n \"hover:text-gui-hover\",\n \"focus:outline-gui-focus\",\n \"hover:bg-light-grey\",\n );\n\n button.innerHTML = markQueryInSuggestion(suggestion.value, query);\n\n button.dataset.suggestionIndex = index;\n\n button.addEventListener(\"click\", () => {\n navigateToUrl(suggestion.value);\n });\n\n button.addEventListener(\"keydown\", (e) => {\n const key = e.key;\n\n if (key === \"ArrowDown\") {\n focusNext(index);\n } else if (key === \"ArrowUp\" && index - 1 < 0) {\n input.focus();\n } else if (key === \"ArrowUp\" && index - 1 >= 0) {\n focusPrevious(index);\n } else if (key === \"Enter\" || key === \"Space\") {\n navigateToUrl(suggestion.value);\n }\n });\n\n li.appendChild(button);\n return li;\n });\n\n listContainer.innerHTML = \"\";\n items.forEach((item) => listContainer.appendChild(item));\n container.classList.remove(\"hidden\");\n };\n\n const keyupHandler = (e) => {\n const query = e.target.value;\n const key = e.key;\n\n if (key === \"ArrowDown\") {\n focusNext(0);\n return;\n }\n\n if (!query) {\n clearResults();\n } else {\n client.suggestions(query, renderResults(query));\n }\n };\n\n let clearHandler;\n if (clear) {\n clearHandler = () => {\n input.value = \"\";\n clear.classList.add(\"invisible\");\n clearResults();\n };\n clear.addEventListener(\"click\", clearHandler);\n }\n\n input.addEventListener(\"keyup\", keyupHandler);\n\n return {\n teardown: () => {\n input.removeEventListener(\"keyup\", keyupHandler);\n if (clear) clear.removeEventListener(\"click\", clearHandler);\n },\n clear: () => {\n input.value = \"\";\n clearResults();\n },\n };\n};\n\nexport default (apiKey) => {\n if (!apiKey) {\n console.log(`No AddSearch API key provided, skipping search suggestions.`);\n return [];\n }\n\n const client = new AddSearchClient(apiKey);\n\n return [\n queryId(\"meganav-search-input\"),\n queryId(\"meganav-mobile-search-input\"),\n ]\n .filter((i) => i)\n .map((input) => {\n const parent = input.parentNode;\n const container = queryId(\n \"meganav-search-autocomplete-container\",\n parent,\n );\n const listContainer = queryId(\"meganav-search-autocomplete-list\", parent);\n const clear = queryId(\"meganav-search-input-clear\", parent);\n\n return init({ input, container, listContainer, client, clear });\n });\n};\n"],"names":["queryId","AddSearchClient","init","input","container","listContainer","clear","client","setAnalyticsTag","setThrottleTime","clearResults","classList","add","innerHTML","toggleClearBtn","query","length","remove","markQueryInSuggestion","suggestionValue","replace","toLowerCase","navigateToUrl","q","window","location","focusNext","index","nextSuggestion","querySelector","focus","focusPrevious","previousIndex","previousSuggestion","renderResults","results","Array","isArray","suggestions","items","map","suggestion","li","document","createElement","button","type","value","dataset","suggestionIndex","addEventListener","e","key","appendChild","forEach","item","keyupHandler","target","clearHandler","teardown","removeEventListener","apiKey","console","log","filter","i","parent","parentNode"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/MeganavSearchAutocomplete.tsx"],"sourcesContent":["import React from \"react\";\n\nconst MeganavSearchAutocomplete = () => (\n <div\n className=\"absolute w-full mt-8 z-10 hidden shadow-container rounded-lg bg-white border border-mid-grey\"\n data-id=\"meganav-search-autocomplete-container\"\n >\n <ol className=\"m-16\" data-id=\"meganav-search-autocomplete-list\"></ol>\n </div>\n);\n\nexport default MeganavSearchAutocomplete;\n"],"names":["React","MeganavSearchAutocomplete","div","className","data-id","ol"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,CAE1B,MAAMC,0BAA4B,IAChC,oBAACC,OACCC,UAAU,+FACVC,UAAQ,yCAER,oBAACC,MAAGF,UAAU,OAAOC,UAAQ,qCAIjC,gBAAeH,yBAA0B"}
@@ -0,0 +1,2 @@
1
+ import React from"react";import Icon from"../Icon";import MeganavSearchSuggestions from"./MeganavSearchSuggestions";import MeganavSearchAutocomplete from"./MeganavSearchAutocomplete";const MeganavSearchPanel=({absUrl})=>React.createElement("section",{className:"ui-meganav-content grid-cols-12"},React.createElement("div",{className:"col-span-8"},React.createElement("div",{className:"mb-32"},React.createElement("form",{className:"flex items-start",action:absUrl("/search"),method:"get"},React.createElement("div",{className:"relative w-full"},React.createElement(Icon,{name:"icon-gui-magnifying-glass-outline",color:"text-cool-black",size:"1.5rem",additionalCSS:"absolute top-12 left-16"}),React.createElement("input",{type:"search",name:"q",className:"ui-input pl-48 h-48",placeholder:"Search",autoComplete:"off","data-id":"meganav-search-input"}),React.createElement(MeganavSearchAutocomplete,null)),React.createElement("button",{type:"submit",className:"ui-btn-secondary flex-shrink-0 ml-8 sm:ml-16 md:ml-24 xl:ml-32"},"Search")))),React.createElement("div",{className:"col-span-12"},React.createElement(MeganavSearchSuggestions,{displaySupportLink:true,absUrl:absUrl})));export default MeganavSearchPanel;
2
+ //# sourceMappingURL=MeganavSearchPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/MeganavSearchPanel.tsx"],"sourcesContent":["import React from \"react\";\n\nimport Icon from \"../Icon\";\nimport MeganavSearchSuggestions from \"./MeganavSearchSuggestions\";\nimport MeganavSearchAutocomplete from \"./MeganavSearchAutocomplete\";\nimport { AbsUrl } from \"./LegacyMeganav\";\n\nconst MeganavSearchPanel = ({ absUrl }: { absUrl: AbsUrl }) => (\n <section className=\"ui-meganav-content grid-cols-12\">\n <div className=\"col-span-8\">\n <div className=\"mb-32\">\n <form\n className=\"flex items-start\"\n action={absUrl(\"/search\")}\n method=\"get\"\n >\n <div className=\"relative w-full\">\n <Icon\n name=\"icon-gui-magnifying-glass-outline\"\n color=\"text-cool-black\"\n size=\"1.5rem\"\n additionalCSS=\"absolute top-12 left-16\"\n />\n <input\n type=\"search\"\n name=\"q\"\n className=\"ui-input pl-48 h-48\"\n placeholder=\"Search\"\n autoComplete=\"off\"\n data-id=\"meganav-search-input\"\n />\n\n <MeganavSearchAutocomplete />\n </div>\n\n <button\n type=\"submit\"\n className=\"ui-btn-secondary flex-shrink-0 ml-8 sm:ml-16 md:ml-24 xl:ml-32\"\n >\n Search\n </button>\n </form>\n </div>\n </div>\n\n <div className=\"col-span-12\">\n <MeganavSearchSuggestions displaySupportLink={true} absUrl={absUrl} />\n </div>\n </section>\n);\n\nexport default MeganavSearchPanel;\n"],"names":["React","Icon","MeganavSearchSuggestions","MeganavSearchAutocomplete","MeganavSearchPanel","absUrl","section","className","div","form","action","method","name","color","size","additionalCSS","input","type","placeholder","autoComplete","data-id","button","displaySupportLink"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAE1B,QAAOC,SAAU,SAAU,AAC3B,QAAOC,6BAA8B,4BAA6B,AAClE,QAAOC,8BAA+B,6BAA8B,CAGpE,MAAMC,mBAAqB,CAAC,CAAEC,MAAM,CAAsB,GACxD,oBAACC,WAAQC,UAAU,mCACjB,oBAACC,OAAID,UAAU,cACb,oBAACC,OAAID,UAAU,SACb,oBAACE,QACCF,UAAU,mBACVG,OAAQL,OAAO,WACfM,OAAO,OAEP,oBAACH,OAAID,UAAU,mBACb,oBAACN,MACCW,KAAK,oCACLC,MAAM,kBACNC,KAAK,SACLC,cAAc,4BAEhB,oBAACC,SACCC,KAAK,SACLL,KAAK,IACLL,UAAU,sBACVW,YAAY,SACZC,aAAa,MACbC,UAAQ,yBAGV,oBAACjB,iCAGH,oBAACkB,UACCJ,KAAK,SACLV,UAAU,kEACX,aAOP,oBAACC,OAAID,UAAU,eACb,oBAACL,0BAAyBoB,mBAAoB,KAAMjB,OAAQA,UAKlE,gBAAeD,kBAAmB"}
@@ -0,0 +1,2 @@
1
+ import{queryId}from"../../dom-query";const DRAG_BUFFER=5;const getTranslateX=node=>new DOMMatrix(window.getComputedStyle(node).transform).e;const updateTranslateX=(node,value)=>node.style.transform=`translateX(${value}px)`;const dragLeftBoundary=(translateX,threshold)=>translateX>=threshold;const dragRightBoundary=(translateX,itemsWidth,windowWidth,threshold)=>Math.abs(translateX-windowWidth+threshold)>itemsWidth;const getDistance=(e,touchStartX)=>e.changedTouches[0]?.clientX-touchStartX;const withinBuffer=distance=>Math.abs(distance)<DRAG_BUFFER;const getItemsTotalWidth=nodes=>nodes.map(item=>item.getBoundingClientRect().width).reduce((acc,val)=>acc+val,0);const MeganavSearchSuggestions=()=>{const suggestionsToggle=queryId("meganav-mobile-search-input");const suggestions=queryId("meganav-mobile-search-suggestions");const list=suggestions.querySelector("ul");const listItems=Array.from(list.querySelectorAll("li"));const dragLeft=(distance,threshold)=>{const currentTranslateX=getTranslateX(list);const translateX=Math.round(currentTranslateX+distance);if(dragLeftBoundary(translateX,threshold))return;updateTranslateX(list,translateX)};const dragLeftEnd=(distance,threshold)=>{const currentTranslateX=getTranslateX(list);let translateX=Math.round(currentTranslateX+distance);if(dragLeftBoundary(translateX,threshold)){translateX=0}updateTranslateX(list,translateX)};const dragRight=(distance,threshold)=>{const listWidth=list.getBoundingClientRect().width;const currentTranslateX=getTranslateX(list);const translateX=Math.round(currentTranslateX+distance);const itemsTotalWidth=getItemsTotalWidth(listItems);if(dragRightBoundary(translateX,itemsTotalWidth,listWidth,threshold)){return}updateTranslateX(list,translateX)};const dragRightEnd=(distance,threshold)=>{const listWidth=list.getBoundingClientRect().width;const currentTranslateX=getTranslateX(list);const itemsTotalWidth=getItemsTotalWidth(listItems);let translateX=Math.round(currentTranslateX+distance);if(dragRightBoundary(translateX,itemsTotalWidth,listWidth,threshold)){translateX=-(itemsTotalWidth-listWidth+threshold)}updateTranslateX(list,translateX)};let touchStartX;const touchstartHandler=e=>{touchStartX=e.touches[0]?.clientX};const touchmoveHandler=e=>{const distance=getDistance(e,touchStartX);if(withinBuffer(distance))return;distance>0?dragLeft(distance,24):dragRight(distance,96)};const touchendHandler=e=>{const distance=getDistance(e,touchStartX);if(withinBuffer(distance))return;distance>0?dragLeftEnd(distance,24):dragRightEnd(distance,48)};const focusSuggestionsHandler=()=>{suggestions.classList.add("max-h-96")};const blurSuggestionsHandler=e=>{if(e.relatedTarget===suggestions.querySelectorAll("a")[0]){return}suggestions.classList.remove("max-h-96")};const wheelHandler=e=>{const distance=e.deltaY*4;if(withinBuffer(distance))return;distance>0?dragLeftEnd(distance,24):dragRightEnd(distance,48)};suggestionsToggle?.addEventListener("focus",focusSuggestionsHandler);suggestionsToggle?.addEventListener("blur",blurSuggestionsHandler);suggestions.addEventListener("touchstart",touchstartHandler);suggestions.addEventListener("touchmove",touchmoveHandler);suggestions.addEventListener("touchend",touchendHandler);suggestions.addEventListener("wheel",wheelHandler);return{teardown:()=>{suggestionsToggle?.removeEventListener("focus",focusSuggestionsHandler);suggestionsToggle?.removeEventListener("blur",blurSuggestionsHandler);suggestions.removeEventListener("touchstart",touchstartHandler);suggestions.removeEventListener("touchmove",touchmoveHandler);suggestions.removeEventListener("touchend",touchendHandler)},clear:()=>{suggestions.classList.remove("max-h-96");list.style.transform=`translateX(0px)`}}};export default MeganavSearchSuggestions;
2
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/LegacyMeganav/MeganavSearchSuggestions/component.js"],"sourcesContent":["import { queryId } from \"../../dom-query\";\n\nconst DRAG_BUFFER = 5;\n\nconst getTranslateX = (node) =>\n new DOMMatrix(window.getComputedStyle(node).transform).e;\n\nconst updateTranslateX = (node, value) =>\n (node.style.transform = `translateX(${value}px)`);\n\nconst dragLeftBoundary = (translateX, threshold) => translateX >= threshold;\n\nconst dragRightBoundary = (translateX, itemsWidth, windowWidth, threshold) =>\n Math.abs(translateX - windowWidth + threshold) > itemsWidth;\n\nconst getDistance = (e, touchStartX) =>\n e.changedTouches[0]?.clientX - touchStartX;\n\nconst withinBuffer = (distance) => Math.abs(distance) < DRAG_BUFFER;\n\nconst getItemsTotalWidth = (nodes) =>\n nodes\n .map((item) => item.getBoundingClientRect().width)\n .reduce((acc, val) => acc + val, 0);\n\nconst MeganavSearchSuggestions = () => {\n const suggestionsToggle = queryId(\"meganav-mobile-search-input\");\n const suggestions = queryId(\"meganav-mobile-search-suggestions\");\n const list = suggestions.querySelector(\"ul\");\n const listItems = Array.from(list.querySelectorAll(\"li\"));\n\n const dragLeft = (distance, threshold) => {\n const currentTranslateX = getTranslateX(list);\n const translateX = Math.round(currentTranslateX + distance);\n if (dragLeftBoundary(translateX, threshold)) return;\n updateTranslateX(list, translateX);\n };\n\n const dragLeftEnd = (distance, threshold) => {\n const currentTranslateX = getTranslateX(list);\n let translateX = Math.round(currentTranslateX + distance);\n\n if (dragLeftBoundary(translateX, threshold)) {\n translateX = 0;\n }\n\n updateTranslateX(list, translateX);\n };\n\n const dragRight = (distance, threshold) => {\n const listWidth = list.getBoundingClientRect().width;\n const currentTranslateX = getTranslateX(list);\n const translateX = Math.round(currentTranslateX + distance);\n const itemsTotalWidth = getItemsTotalWidth(listItems);\n\n if (dragRightBoundary(translateX, itemsTotalWidth, listWidth, threshold)) {\n return;\n }\n\n updateTranslateX(list, translateX);\n };\n\n const dragRightEnd = (distance, threshold) => {\n const listWidth = list.getBoundingClientRect().width;\n const currentTranslateX = getTranslateX(list);\n const itemsTotalWidth = getItemsTotalWidth(listItems);\n let translateX = Math.round(currentTranslateX + distance);\n\n if (dragRightBoundary(translateX, itemsTotalWidth, listWidth, threshold)) {\n translateX = -(itemsTotalWidth - listWidth + threshold);\n }\n\n updateTranslateX(list, translateX);\n };\n\n let touchStartX;\n\n const touchstartHandler = (e) => {\n touchStartX = e.touches[0]?.clientX;\n };\n\n const touchmoveHandler = (e) => {\n const distance = getDistance(e, touchStartX);\n if (withinBuffer(distance)) return;\n distance > 0 ? dragLeft(distance, 24) : dragRight(distance, 96);\n };\n\n const touchendHandler = (e) => {\n const distance = getDistance(e, touchStartX);\n if (withinBuffer(distance)) return;\n distance > 0 ? dragLeftEnd(distance, 24) : dragRightEnd(distance, 48);\n };\n\n const focusSuggestionsHandler = () => {\n suggestions.classList.add(\"max-h-96\");\n };\n\n const blurSuggestionsHandler = (e) => {\n if (e.relatedTarget === suggestions.querySelectorAll(\"a\")[0]) {\n return;\n }\n suggestions.classList.remove(\"max-h-96\");\n };\n\n const wheelHandler = (e) => {\n const distance = e.deltaY * 4;\n if (withinBuffer(distance)) return;\n distance > 0 ? dragLeftEnd(distance, 24) : dragRightEnd(distance, 48);\n };\n\n suggestionsToggle?.addEventListener(\"focus\", focusSuggestionsHandler);\n suggestionsToggle?.addEventListener(\"blur\", blurSuggestionsHandler);\n suggestions.addEventListener(\"touchstart\", touchstartHandler);\n suggestions.addEventListener(\"touchmove\", touchmoveHandler);\n suggestions.addEventListener(\"touchend\", touchendHandler);\n suggestions.addEventListener(\"wheel\", wheelHandler);\n\n return {\n teardown: () => {\n suggestionsToggle?.removeEventListener(\"focus\", focusSuggestionsHandler);\n suggestionsToggle?.removeEventListener(\"blur\", blurSuggestionsHandler);\n suggestions.removeEventListener(\"touchstart\", touchstartHandler);\n suggestions.removeEventListener(\"touchmove\", touchmoveHandler);\n suggestions.removeEventListener(\"touchend\", touchendHandler);\n },\n clear: () => {\n suggestions.classList.remove(\"max-h-96\");\n list.style.transform = `translateX(0px)`;\n },\n };\n};\n\nexport default MeganavSearchSuggestions;\n"],"names":["queryId","DRAG_BUFFER","getTranslateX","node","DOMMatrix","window","getComputedStyle","transform","e","updateTranslateX","value","style","dragLeftBoundary","translateX","threshold","dragRightBoundary","itemsWidth","windowWidth","Math","abs","getDistance","touchStartX","changedTouches","clientX","withinBuffer","distance","getItemsTotalWidth","nodes","map","item","getBoundingClientRect","width","reduce","acc","val","MeganavSearchSuggestions","suggestionsToggle","suggestions","list","querySelector","listItems","Array","from","querySelectorAll","dragLeft","currentTranslateX","round","dragLeftEnd","dragRight","listWidth","itemsTotalWidth","dragRightEnd","touchstartHandler","touches","touchmoveHandler","touchendHandler","focusSuggestionsHandler","classList","add","blurSuggestionsHandler","relatedTarget","remove","wheelHandler","deltaY","addEventListener","teardown","removeEventListener","clear"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import React from"react";import FeaturedLink from"../FeaturedLink";const MeganavSearchSuggestions=({absUrl,displaySupportLink})=>React.createElement(React.Fragment,null,React.createElement("p",{className:"ui-text-overline2 text-cool-black py-12"},"Popular pages"),React.createElement("div",{className:"flex justify-between items-center overflow-hidden"},React.createElement("ul",{className:"flex transition-transform"},React.createElement("li",{className:"py-12 pr-8 flex-shrink-0"},React.createElement("a",{href:absUrl("/docs/how-ably-works"),className:"ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"},"How does Ably work?")),React.createElement("li",{className:"py-12 px-8 flex-shrink-0"},React.createElement("a",{href:absUrl("/docs/quick-start-guide"),className:"ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"},"Quickstart guide")),React.createElement("li",{className:"py-12 px-8 flex-shrink-0"},React.createElement("a",{href:absUrl("/docs/core-features/pubsub"),className:"ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"},"Publish/Subscribe Messaging")),React.createElement("li",{className:"py-12 pl-8 flex-shrink-0"},React.createElement("a",{href:absUrl("/platform"),className:"ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"},"Platform"))),displaySupportLink?React.createElement(FeaturedLink,{url:absUrl("/support"),textSize:"text-p2"},"Support"):null));export default MeganavSearchSuggestions;
2
+ //# sourceMappingURL=MeganavSearchSuggestions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/MeganavSearchSuggestions.tsx"],"sourcesContent":["import React from \"react\";\nimport { AbsUrl } from \"./LegacyMeganav\";\nimport FeaturedLink from \"../FeaturedLink\";\n\ntype MeganavSearchSuggestionsProps = {\n absUrl: AbsUrl;\n displaySupportLink: boolean;\n};\n\nconst MeganavSearchSuggestions = ({\n absUrl,\n displaySupportLink,\n}: MeganavSearchSuggestionsProps) => (\n <>\n <p className=\"ui-text-overline2 text-cool-black py-12\">Popular pages</p>\n\n <div className=\"flex justify-between items-center overflow-hidden\">\n <ul className=\"flex transition-transform\">\n <li className=\"py-12 pr-8 flex-shrink-0\">\n <a\n href={absUrl(\"/docs/how-ably-works\")}\n className=\"ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus\"\n >\n How does Ably work?\n </a>\n </li>\n <li className=\"py-12 px-8 flex-shrink-0\">\n <a\n href={absUrl(\"/docs/quick-start-guide\")}\n className=\"ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus\"\n >\n Quickstart guide\n </a>\n </li>\n <li className=\"py-12 px-8 flex-shrink-0\">\n <a\n href={absUrl(\"/docs/core-features/pubsub\")}\n className=\"ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus\"\n >\n Publish/Subscribe Messaging\n </a>\n </li>\n <li className=\"py-12 pl-8 flex-shrink-0\">\n <a\n href={absUrl(\"/platform\")}\n className=\"ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus\"\n >\n Platform\n </a>\n </li>\n </ul>\n {displaySupportLink ? (\n <FeaturedLink url={absUrl(\"/support\")} textSize=\"text-p2\">\n Support\n </FeaturedLink>\n ) : null}\n </div>\n </>\n);\n\nexport default MeganavSearchSuggestions;\n"],"names":["React","FeaturedLink","MeganavSearchSuggestions","absUrl","displaySupportLink","p","className","div","ul","li","a","href","url","textSize"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAE1B,QAAOC,iBAAkB,iBAAkB,CAO3C,MAAMC,yBAA2B,CAAC,CAChCC,MAAM,CACNC,kBAAkB,CACY,GAC9B,wCACE,oBAACC,KAAEC,UAAU,2CAA0C,iBAEvD,oBAACC,OAAID,UAAU,qDACb,oBAACE,MAAGF,UAAU,6BACZ,oBAACG,MAAGH,UAAU,4BACZ,oBAACI,KACCC,KAAMR,OAAO,wBACbG,UAAU,+EACX,wBAIH,oBAACG,MAAGH,UAAU,4BACZ,oBAACI,KACCC,KAAMR,OAAO,2BACbG,UAAU,+EACX,qBAIH,oBAACG,MAAGH,UAAU,4BACZ,oBAACI,KACCC,KAAMR,OAAO,8BACbG,UAAU,+EACX,gCAIH,oBAACG,MAAGH,UAAU,4BACZ,oBAACI,KACCC,KAAMR,OAAO,aACbG,UAAU,+EACX,cAKJF,mBACC,oBAACH,cAAaW,IAAKT,OAAO,YAAaU,SAAS,WAAU,WAGxD,MAKV,gBAAeX,wBAAyB"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/SignOutLink.tsx"],"sourcesContent":["import React, { MouseEvent, MouseEventHandler, ReactNode, useRef } from \"react\";\nimport { AbsUrl } from \"./LegacyMeganav\";\n\ntype SignOutLinkProps = {\n token: string;\n href: string;\n text: string;\n children: ({\n href,\n text,\n onClick,\n }: {\n href: string;\n text: string;\n onClick: MouseEventHandler<HTMLAnchorElement>;\n }) => ReactNode;\n absUrl: AbsUrl;\n};\n\nconst SignOutLink = ({\n token,\n href,\n text,\n children,\n absUrl,\n}: SignOutLinkProps) => {\n const formRef = useRef<HTMLFormElement>(null);\n\n const onClick = (e: MouseEvent) => {\n formRef.current?.submit();\n e.preventDefault();\n };\n\n return (\n <>\n <form\n ref={formRef}\n method=\"post\"\n action={absUrl(href)}\n className=\"hidden\"\n >\n <input name=\"_method\" value=\"delete\" type=\"hidden\" />\n <input name=\"authenticity_token\" value={token} type=\"hidden\" />\n </form>\n\n {children({ href, text, onClick })}\n </>\n );\n};\n\nexport default SignOutLink;\n"],"names":["React","useRef","SignOutLink","token","href","text","children","absUrl","formRef","onClick","e","current","submit","preventDefault","form","ref","method","action","className","input","name","value","type"],"mappings":"AAAA,OAAOA,OAAmDC,MAAM,KAAQ,OAAQ,CAmBhF,MAAMC,YAAc,CAAC,CACnBC,KAAK,CACLC,IAAI,CACJC,IAAI,CACJC,QAAQ,CACRC,MAAM,CACW,IACjB,MAAMC,QAAUP,OAAwB,MAExC,MAAMQ,QAAU,AAACC,IACfF,QAAQG,OAAO,EAAEC,SACjBF,EAAEG,cAAc,EAClB,EAEA,OACE,wCACE,oBAACC,QACCC,IAAKP,QACLQ,OAAO,OACPC,OAAQV,OAAOH,MACfc,UAAU,UAEV,oBAACC,SAAMC,KAAK,UAAUC,MAAM,SAASC,KAAK,WAC1C,oBAACH,SAAMC,KAAK,qBAAqBC,MAAOlB,MAAOmB,KAAK,YAGrDhB,SAAS,CAAEF,KAAMC,KAAMI,OAAQ,GAGtC,CAEA,gBAAeP,WAAY"}
@@ -0,0 +1,2 @@
1
+ import throttle from"lodash.throttle";import{queryId,queryIdAll}from"../dom-query";import MeganavControl from"./MeganavControl/component.js";import MeganavControlMobileDropdown from"./MeganavControlMobileDropdown/component.js";import MobilePanelOpenClick from"./MeganavControlMobilePanelOpen/component.js";import MobilePanelCloseClick from"./MeganavControlMobilePanelClose/component.js";import MeganavSearchAutocomplete from"./MeganavSearchAutocomplete/component.js";import MeganavSearchSuggestions from"./MeganavSearchSuggestions/component.js";const windowOnBlur=closeAll=>{window.onblur=()=>closeAll();return{teardown:()=>window.onblur=null}};const documentClick=closeAll=>{const meganav=queryId("meganav");const clickHandler=e=>{if(meganav.contains(e.target))return;closeAll()};document.addEventListener("click",clickHandler);return{teardown:()=>document.removeEventListener("click",clickHandler)}};const documentScroll=themeName=>{if(themeName!=="transparentToWhite")return{teardown:()=>{}};const meganav=queryId("meganav");const navItems=queryIdAll("meganav-link");const controlMobileDropdownMenu=queryId("meganav-control-mobile-dropdown-menu");const controlMobileDropdownClose=queryId("meganav-control-mobile-dropdown-close");const controls=queryIdAll("meganav-control");const signUpBtn=queryId("meganav-sign-up-btn");const invertTextCollection=[...Array.from(controls),...Array.from(navItems),queryId("meganav-logo")];const invertMobleDropdownColor=invert=>{const whiteToBlack=["ui-icon-white","ui-icon-cool-black"];const blackToWhite=[...whiteToBlack].reverse();if(invert){controlMobileDropdownMenu?.classList.replace(...whiteToBlack);controlMobileDropdownClose?.classList.replace(...whiteToBlack)}else{controlMobileDropdownMenu?.classList.replace(...blackToWhite);controlMobileDropdownClose?.classList.replace(...blackToWhite)}};const inverSignupBtnColors=invert=>{if(invert){signUpBtn?.classList.replace("bg-white","bg-cool-black");signUpBtn?.classList.replace("text-cool-black","text-white")}else{signUpBtn?.classList.replace("bg-cool-black","bg-white");signUpBtn?.classList.replace("text-white","text-cool-black")}};const scrollHandler=throttle(()=>{if(window.scrollY>5){meganav.classList.replace("bg-transparent","bg-white");inverSignupBtnColors(true);invertMobleDropdownColor(true);invertTextCollection.forEach(n=>n.classList.replace("text-white","text-cool-black"))}else{meganav.classList.replace("bg-white","bg-transparent");inverSignupBtnColors(false);invertMobleDropdownColor(false);invertTextCollection.forEach(n=>n.classList.replace("text-cool-black","text-white"))}},150);document.addEventListener("scroll",scrollHandler);return{teardown:()=>document.removeEventListener("scroll",scrollHandler)}};export default function Meganav({themeName,addSearchApiKey}){const controls=MeganavControl();const panelOpenControls=MobilePanelOpenClick();const panelCloseControls=MobilePanelCloseClick();const search=MeganavSearchAutocomplete(addSearchApiKey);const searchSuggestions=MeganavSearchSuggestions();const mobileDropdownControl=MeganavControlMobileDropdown({clearPanels:()=>[...panelOpenControls,...panelCloseControls].forEach(i=>i.clear())});const closeAll=()=>[mobileDropdownControl,searchSuggestions,...panelOpenControls,...panelCloseControls,...controls,...search].forEach(i=>i.clear());const teardowns=[documentScroll(themeName??null),documentClick(closeAll),windowOnBlur(closeAll),mobileDropdownControl,searchSuggestions,...controls,...panelOpenControls,...panelCloseControls,...search].map(i=>i.teardown);return()=>teardowns.forEach(teardown=>teardown())}
2
+ //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/Meganav/component.js"],"sourcesContent":["import throttle from \"lodash.throttle\";\n\n// Glossary:\n// item - is the element which contains both the control and the panel - these are adjacent\n// control - interactive element that controls showing and hiding of dropdown or panel\n// panel - container for meganav content\n// dropdown - container for top level items on mobile\n// clear - return to initial state\n// teardown - remove all event listeners (for example when removing nodes)\n\nimport { queryId, queryIdAll } from \"../dom-query\";\n\nimport MeganavControl from \"../MeganavControl/component.js\";\nimport MeganavControlMobileDropdown from \"../MeganavControlMobileDropdown/component.js\";\nimport MobilePanelOpenClick from \"../MeganavControlMobilePanelOpen/component.js\";\nimport MobilePanelCloseClick from \"../MeganavControlMobilePanelClose/component.js\";\nimport MeganavSearchAutocomplete from \"../MeganavSearchAutocomplete/component.js\";\nimport MeganavSearchSuggestions from \"../MeganavSearchSuggestions/component.js\";\n\n// Close menu when user clicks outside of viewport\nconst windowOnBlur = (closeAll) => {\n window.onblur = () => closeAll();\n return { teardown: () => (window.onblur = null) };\n};\n\n// Close menu when click/tap outside of nav\nconst documentClick = (closeAll) => {\n const meganav = queryId(\"meganav\");\n\n const clickHandler = (e) => {\n if (meganav.contains(e.target)) return;\n closeAll();\n };\n\n document.addEventListener(\"click\", clickHandler);\n\n return {\n teardown: () => document.removeEventListener(\"click\", clickHandler),\n };\n};\n\n// Invert from transparent to white\nconst documentScroll = (themeName) => {\n if (themeName !== \"transparentToWhite\") return { teardown: () => {} };\n\n const meganav = queryId(\"meganav\");\n const navItems = queryIdAll(\"meganav-link\");\n const controlMobileDropdownMenu = queryId(\n \"meganav-control-mobile-dropdown-menu\",\n );\n const controlMobileDropdownClose = queryId(\n \"meganav-control-mobile-dropdown-close\",\n );\n const controls = queryIdAll(\"meganav-control\");\n const signUpBtn = queryId(\"meganav-sign-up-btn\");\n\n const invertTextCollection = [\n ...Array.from(controls),\n ...Array.from(navItems),\n queryId(\"meganav-logo\"),\n ];\n\n const invertMobleDropdownColor = (invert) => {\n const whiteToBlack = [\"ui-icon-white\", \"ui-icon-cool-black\"];\n const blackToWhite = [...whiteToBlack].reverse();\n\n if (invert) {\n controlMobileDropdownMenu?.classList.replace(...whiteToBlack);\n controlMobileDropdownClose?.classList.replace(...whiteToBlack);\n } else {\n controlMobileDropdownMenu?.classList.replace(...blackToWhite);\n controlMobileDropdownClose?.classList.replace(...blackToWhite);\n }\n };\n\n const inverSignupBtnColors = (invert) => {\n if (invert) {\n signUpBtn?.classList.replace(\"bg-white\", \"bg-cool-black\");\n signUpBtn?.classList.replace(\"text-cool-black\", \"text-white\");\n } else {\n signUpBtn?.classList.replace(\"bg-cool-black\", \"bg-white\");\n signUpBtn?.classList.replace(\"text-white\", \"text-cool-black\");\n }\n };\n\n const scrollHandler = throttle(() => {\n if (window.scrollY > 5) {\n meganav.classList.replace(\"bg-transparent\", \"bg-white\");\n inverSignupBtnColors(true);\n invertMobleDropdownColor(true);\n\n invertTextCollection.forEach((n) =>\n n.classList.replace(\"text-white\", \"text-cool-black\"),\n );\n } else {\n meganav.classList.replace(\"bg-white\", \"bg-transparent\");\n inverSignupBtnColors(false);\n invertMobleDropdownColor(false);\n\n invertTextCollection.forEach((n) =>\n n.classList.replace(\"text-cool-black\", \"text-white\"),\n );\n }\n }, 150);\n\n document.addEventListener(\"scroll\", scrollHandler);\n\n return {\n teardown: () => document.removeEventListener(\"scroll\", scrollHandler),\n };\n};\n\nexport default function Meganav({ themeName, addSearchApiKey }) {\n const controls = MeganavControl();\n const panelOpenControls = MobilePanelOpenClick();\n const panelCloseControls = MobilePanelCloseClick();\n const search = MeganavSearchAutocomplete(addSearchApiKey);\n const searchSuggestions = MeganavSearchSuggestions();\n\n const mobileDropdownControl = MeganavControlMobileDropdown({\n clearPanels: () =>\n [...panelOpenControls, ...panelCloseControls].forEach((i) => i.clear()),\n });\n\n const closeAll = () =>\n [\n mobileDropdownControl,\n searchSuggestions,\n ...panelOpenControls,\n ...panelCloseControls,\n ...controls,\n ...search,\n ].forEach((i) => i.clear());\n\n const teardowns = [\n documentScroll(themeName ?? null),\n documentClick(closeAll),\n windowOnBlur(closeAll),\n mobileDropdownControl,\n searchSuggestions,\n ...controls,\n ...panelOpenControls,\n ...panelCloseControls,\n ...search,\n ].map((i) => i.teardown);\n\n return () => teardowns.forEach((teardown) => teardown());\n}\n"],"names":["throttle","queryId","queryIdAll","MeganavControl","MeganavControlMobileDropdown","MobilePanelOpenClick","MobilePanelCloseClick","MeganavSearchAutocomplete","MeganavSearchSuggestions","windowOnBlur","closeAll","window","onblur","teardown","documentClick","meganav","clickHandler","e","contains","target","document","addEventListener","removeEventListener","documentScroll","themeName","navItems","controlMobileDropdownMenu","controlMobileDropdownClose","controls","signUpBtn","invertTextCollection","Array","from","invertMobleDropdownColor","invert","whiteToBlack","blackToWhite","reverse","classList","replace","inverSignupBtnColors","scrollHandler","scrollY","forEach","n","Meganav","addSearchApiKey","panelOpenControls","panelCloseControls","search","searchSuggestions","mobileDropdownControl","clearPanels","i","clear","teardowns","map"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/core/LegacyMeganav/component.js"],"sourcesContent":["import throttle from \"lodash.throttle\";\n\n// Glossary:\n// item - is the element which contains both the control and the panel - these are adjacent\n// control - interactive element that controls showing and hiding of dropdown or panel\n// panel - container for meganav content\n// dropdown - container for top level items on mobile\n// clear - return to initial state\n// teardown - remove all event listeners (for example when removing nodes)\n\nimport { queryId, queryIdAll } from \"../dom-query\";\n\nimport MeganavControl from \"./MeganavControl/component.js\";\nimport MeganavControlMobileDropdown from \"./MeganavControlMobileDropdown/component.js\";\nimport MobilePanelOpenClick from \"./MeganavControlMobilePanelOpen/component.js\";\nimport MobilePanelCloseClick from \"./MeganavControlMobilePanelClose/component.js\";\nimport MeganavSearchAutocomplete from \"./MeganavSearchAutocomplete/component.js\";\nimport MeganavSearchSuggestions from \"./MeganavSearchSuggestions/component.js\";\n\n// Close menu when user clicks outside of viewport\nconst windowOnBlur = (closeAll) => {\n window.onblur = () => closeAll();\n return { teardown: () => (window.onblur = null) };\n};\n\n// Close menu when click/tap outside of nav\nconst documentClick = (closeAll) => {\n const meganav = queryId(\"meganav\");\n\n const clickHandler = (e) => {\n if (meganav.contains(e.target)) return;\n closeAll();\n };\n\n document.addEventListener(\"click\", clickHandler);\n\n return {\n teardown: () => document.removeEventListener(\"click\", clickHandler),\n };\n};\n\n// Invert from transparent to white\nconst documentScroll = (themeName) => {\n if (themeName !== \"transparentToWhite\") return { teardown: () => {} };\n\n const meganav = queryId(\"meganav\");\n const navItems = queryIdAll(\"meganav-link\");\n const controlMobileDropdownMenu = queryId(\n \"meganav-control-mobile-dropdown-menu\",\n );\n const controlMobileDropdownClose = queryId(\n \"meganav-control-mobile-dropdown-close\",\n );\n const controls = queryIdAll(\"meganav-control\");\n const signUpBtn = queryId(\"meganav-sign-up-btn\");\n\n const invertTextCollection = [\n ...Array.from(controls),\n ...Array.from(navItems),\n queryId(\"meganav-logo\"),\n ];\n\n const invertMobleDropdownColor = (invert) => {\n const whiteToBlack = [\"ui-icon-white\", \"ui-icon-cool-black\"];\n const blackToWhite = [...whiteToBlack].reverse();\n\n if (invert) {\n controlMobileDropdownMenu?.classList.replace(...whiteToBlack);\n controlMobileDropdownClose?.classList.replace(...whiteToBlack);\n } else {\n controlMobileDropdownMenu?.classList.replace(...blackToWhite);\n controlMobileDropdownClose?.classList.replace(...blackToWhite);\n }\n };\n\n const inverSignupBtnColors = (invert) => {\n if (invert) {\n signUpBtn?.classList.replace(\"bg-white\", \"bg-cool-black\");\n signUpBtn?.classList.replace(\"text-cool-black\", \"text-white\");\n } else {\n signUpBtn?.classList.replace(\"bg-cool-black\", \"bg-white\");\n signUpBtn?.classList.replace(\"text-white\", \"text-cool-black\");\n }\n };\n\n const scrollHandler = throttle(() => {\n if (window.scrollY > 5) {\n meganav.classList.replace(\"bg-transparent\", \"bg-white\");\n inverSignupBtnColors(true);\n invertMobleDropdownColor(true);\n\n invertTextCollection.forEach((n) =>\n n.classList.replace(\"text-white\", \"text-cool-black\"),\n );\n } else {\n meganav.classList.replace(\"bg-white\", \"bg-transparent\");\n inverSignupBtnColors(false);\n invertMobleDropdownColor(false);\n\n invertTextCollection.forEach((n) =>\n n.classList.replace(\"text-cool-black\", \"text-white\"),\n );\n }\n }, 150);\n\n document.addEventListener(\"scroll\", scrollHandler);\n\n return {\n teardown: () => document.removeEventListener(\"scroll\", scrollHandler),\n };\n};\n\nexport default function Meganav({ themeName, addSearchApiKey }) {\n const controls = MeganavControl();\n const panelOpenControls = MobilePanelOpenClick();\n const panelCloseControls = MobilePanelCloseClick();\n const search = MeganavSearchAutocomplete(addSearchApiKey);\n const searchSuggestions = MeganavSearchSuggestions();\n\n const mobileDropdownControl = MeganavControlMobileDropdown({\n clearPanels: () =>\n [...panelOpenControls, ...panelCloseControls].forEach((i) => i.clear()),\n });\n\n const closeAll = () =>\n [\n mobileDropdownControl,\n searchSuggestions,\n ...panelOpenControls,\n ...panelCloseControls,\n ...controls,\n ...search,\n ].forEach((i) => i.clear());\n\n const teardowns = [\n documentScroll(themeName ?? null),\n documentClick(closeAll),\n windowOnBlur(closeAll),\n mobileDropdownControl,\n searchSuggestions,\n ...controls,\n ...panelOpenControls,\n ...panelCloseControls,\n ...search,\n ].map((i) => i.teardown);\n\n return () => teardowns.forEach((teardown) => teardown());\n}\n"],"names":["throttle","queryId","queryIdAll","MeganavControl","MeganavControlMobileDropdown","MobilePanelOpenClick","MobilePanelCloseClick","MeganavSearchAutocomplete","MeganavSearchSuggestions","windowOnBlur","closeAll","window","onblur","teardown","documentClick","meganav","clickHandler","e","contains","target","document","addEventListener","removeEventListener","documentScroll","themeName","navItems","controlMobileDropdownMenu","controlMobileDropdownClose","controls","signUpBtn","invertTextCollection","Array","from","invertMobleDropdownColor","invert","whiteToBlack","blackToWhite","reverse","classList","replace","inverSignupBtnColors","scrollHandler","scrollY","forEach","n","Meganav","addSearchApiKey","panelOpenControls","panelCloseControls","search","searchSuggestions","mobileDropdownControl","clearPanels","i","clear","teardowns","map"],"mappings":"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"}
Binary file
@@ -0,0 +1,2 @@
1
+ import React from"react";import Accordion from"../Accordion";import{menuItemLinks}from"./data";import cn from"../utils/cn";export const MeganavMobile=({mobileNavItems})=>{const menuItemClassname="text-[18px] py-12 font-bold text-neutral-1000 dark:text-neutral-000";return React.createElement("div",{className:"overflow-y-auto"},React.createElement(Accordion,{theme:"transparent",className:"px-16 pt-16",data:mobileNavItems,icons:{closed:{name:"icon-gui-chevron-down-outline"},open:{name:"icon-gui-chevron-up-outline"}},options:{autoClose:true,hideBorders:true,headerCSS:`px-0 ${menuItemClassname}`,contentCSS:"px-0",selectedHeaderCSS:"text-neutral-1300 dark:text-neutral-000",rowIconSize:"24px"}}),menuItemLinks&&React.createElement("div",{className:"mb-12"},menuItemLinks.map(link=>React.createElement("a",{href:link.link,key:link.name,className:cn("px-16 w-full block ui-text-p1",menuItemClassname)},link.name))))};
2
+ //# sourceMappingURL=MeganavMobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/Meganav/MeganavMobile.tsx"],"sourcesContent":["import React from \"react\";\nimport Accordion from \"../Accordion\";\nimport { AccordionData } from \"../Accordion/types\";\nimport { menuItemLinks } from \"./data\";\nimport cn from \"../utils/cn\";\n\nexport const MeganavMobile = ({\n mobileNavItems,\n}: {\n mobileNavItems: AccordionData[];\n}) => {\n const menuItemClassname =\n \"text-[18px] py-12 font-bold text-neutral-1000 dark:text-neutral-000\";\n return (\n <div className=\"overflow-y-auto\">\n <Accordion\n theme=\"transparent\"\n className=\"px-16 pt-16\"\n data={mobileNavItems}\n icons={{\n closed: { name: \"icon-gui-chevron-down-outline\" },\n open: { name: \"icon-gui-chevron-up-outline\" },\n }}\n options={{\n autoClose: true,\n hideBorders: true,\n headerCSS: `px-0 ${menuItemClassname}`,\n contentCSS: \"px-0\",\n selectedHeaderCSS: \"text-neutral-1300 dark:text-neutral-000\",\n rowIconSize: \"24px\",\n }}\n />\n {menuItemLinks && (\n <div className=\"mb-12\">\n {menuItemLinks.map((link) => (\n <a\n href={link.link}\n key={link.name}\n className={cn(\"px-16 w-full block ui-text-p1\", menuItemClassname)}\n >\n {link.name}\n </a>\n ))}\n </div>\n )}\n </div>\n );\n};\n"],"names":["React","Accordion","menuItemLinks","cn","MeganavMobile","mobileNavItems","menuItemClassname","div","className","theme","data","icons","closed","name","open","options","autoClose","hideBorders","headerCSS","contentCSS","selectedHeaderCSS","rowIconSize","map","link","a","href","key"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAAOC,cAAe,cAAe,AAErC,QAASC,aAAa,KAAQ,QAAS,AACvC,QAAOC,OAAQ,aAAc,AAE7B,QAAO,MAAMC,cAAgB,CAAC,CAC5BC,cAAc,CAGf,IACC,MAAMC,kBACJ,sEACF,OACE,oBAACC,OAAIC,UAAU,mBACb,oBAACP,WACCQ,MAAM,cACND,UAAU,cACVE,KAAML,eACNM,MAAO,CACLC,OAAQ,CAAEC,KAAM,+BAAgC,EAChDC,KAAM,CAAED,KAAM,6BAA8B,CAC9C,EACAE,QAAS,CACPC,UAAW,KACXC,YAAa,KACbC,UAAW,CAAC,KAAK,EAAEZ,kBAAkB,CAAC,CACtCa,WAAY,OACZC,kBAAmB,0CACnBC,YAAa,MACf,IAEDnB,eACC,oBAACK,OAAIC,UAAU,SACZN,cAAcoB,GAAG,CAAC,AAACC,MAClB,oBAACC,KACCC,KAAMF,KAAKA,IAAI,CACfG,IAAKH,KAAKV,IAAI,CACdL,UAAWL,GAAG,gCAAiCG,oBAE9CiB,KAAKV,IAAI,IAOxB,CAAE"}
@@ -0,0 +1,2 @@
1
+ import React from"react";import cn from"../utils/cn";import Icon from"../Icon";import FeaturedLink from"../FeaturedLink";import{products}from"../ProductTile/data";import ProductTile from"../ProductTile";export const MeganavPanel=({displayProductTile,panelLeft,panelLeftClassName,panelRightHeading,panelRightItems,panelRightBottom})=>{return React.createElement(React.Fragment,null,React.createElement("div",{className:"flex flex-col md:flex-row gap-x-24 bg-neutral-000 dark:bg-neutral-1300"},React.createElement("div",{className:cn("flex-[7] flex-shrink-0 grid-cols-1 xs:grid-cols-2 group",panelLeftClassName),onClick:!displayProductTile?()=>window.location.href=panelLeft?.url:undefined},displayProductTile?["pubsub","spaces","chat","liveSync","assetTracking","liveObjects"].map(product=>React.createElement(ProductTile,{name:product,key:product,selected:false,onClick:()=>window.location.href=products[product]?.link,animateIcons:true})):panelLeft&&React.createElement(React.Fragment,null,React.createElement("div",{className:"w-full p-24"},React.createElement("h4",{className:"ui-text-h4 text-neutral-1300 dark:text-neutral-000"},panelLeft.heading),React.createElement("p",{className:"ui-text-p3 text-neutral-800 dark:text-neutral-500 mt-8"},panelLeft.content),React.createElement(FeaturedLink,{url:panelLeft.url,additionalCSS:"text-neutral-1300 dark:text-neutral-000 mt-16 ui-text-p3 hover:text-neutral-1300 dark:hover:text-neutral-000",iconColor:"text-orange-600",groupHoverClassName:"group-hover/meganav-panel:left-0"},panelLeft.labelLink)),React.createElement("div",{className:"flex justify-end"},React.createElement("img",{src:panelLeft.image,alt:panelLeft.heading,className:"w-full z-10 rounded-lg"})))),React.createElement("div",{className:"mt-12 md:mt-0 flex-[3] flex-shrink-0 flex flex-col justify-between"},React.createElement("ul",null,panelRightHeading&&React.createElement("p",{className:"ui-text-overline2 text-neutral-700 dark:text-neutral-600 my-12"},panelRightHeading),panelRightItems.map(item=>React.createElement("li",{className:cn("list-none py-[10px] md:py-8 my-0 flex gap-x-[10px] group hover:cursor-pointer",item.isMobile?"md:hidden":"md:flex"),key:item.label},React.createElement(Icon,{name:item.icon,size:"1.25rem",additionalCSS:"text-neutral-1000 dark:text-neutral-300"}),React.createElement("a",{className:"ui-text-menu2 md:ui-text-menu3 font-semibold text-neutral-1000 dark:text-neutral-300 group-hover:text-neutral-1300 dark:group-hover:text-neutral-000",href:item.link},item.label)))),panelRightBottom&&React.createElement("div",{className:"items-end mt-16 md:mt-0"},panelRightBottom))))};
2
+ //# sourceMappingURL=MeganavPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/Meganav/MeganavPanel.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"../utils/cn\";\nimport Icon from \"../Icon\";\nimport { FlyoutPanelHighlight, FlyoutPanelList } from \"./data\";\nimport FeaturedLink from \"../FeaturedLink\";\nimport { ProductName, products } from \"../ProductTile/data\";\nimport ProductTile from \"../ProductTile\";\n\nexport const MeganavPanel = ({\n displayProductTile,\n panelLeft,\n panelLeftClassName,\n panelRightHeading,\n panelRightItems,\n panelRightBottom,\n}: {\n displayProductTile?: boolean;\n panelLeft?: FlyoutPanelHighlight;\n panelLeftClassName?: string;\n panelRightHeading?: string;\n panelRightItems: FlyoutPanelList[];\n panelRightBottom?: React.ReactNode;\n}) => {\n return (\n <>\n <div className=\"flex flex-col md:flex-row gap-x-24 bg-neutral-000 dark:bg-neutral-1300\">\n <div\n className={cn(\n \"flex-[7] flex-shrink-0 grid-cols-1 xs:grid-cols-2 group\",\n panelLeftClassName,\n )}\n onClick={\n !displayProductTile\n ? () => (window.location.href = panelLeft?.url as string)\n : undefined\n }\n >\n {displayProductTile\n ? [\n \"pubsub\",\n \"spaces\",\n \"chat\",\n \"liveSync\",\n \"assetTracking\",\n \"liveObjects\",\n ].map((product) => (\n <ProductTile\n name={product as ProductName}\n key={product}\n selected={false}\n onClick={() =>\n (window.location.href = products[product as ProductName]\n ?.link as string)\n }\n animateIcons={true}\n />\n ))\n : panelLeft && (\n <>\n <div className=\"w-full p-24\">\n <h4 className=\"ui-text-h4 text-neutral-1300 dark:text-neutral-000\">\n {panelLeft.heading}\n </h4>\n <p className=\"ui-text-p3 text-neutral-800 dark:text-neutral-500 mt-8\">\n {panelLeft.content}\n </p>\n <FeaturedLink\n url={panelLeft.url}\n additionalCSS=\"text-neutral-1300 dark:text-neutral-000 mt-16 ui-text-p3 hover:text-neutral-1300 dark:hover:text-neutral-000\"\n iconColor=\"text-orange-600\"\n groupHoverClassName=\"group-hover/meganav-panel:left-0\"\n >\n {panelLeft.labelLink}\n </FeaturedLink>\n </div>\n <div className=\"flex justify-end\">\n <img\n src={panelLeft.image}\n alt={panelLeft.heading}\n className=\"w-full z-10 rounded-lg\"\n />\n </div>\n </>\n )}\n </div>\n <div className=\"mt-12 md:mt-0 flex-[3] flex-shrink-0 flex flex-col justify-between\">\n <ul>\n {panelRightHeading && (\n <p className=\"ui-text-overline2 text-neutral-700 dark:text-neutral-600 my-12\">\n {panelRightHeading}\n </p>\n )}\n\n {panelRightItems.map((item) => (\n <li\n className={cn(\n \"list-none py-[10px] md:py-8 my-0 flex gap-x-[10px] group hover:cursor-pointer\",\n item.isMobile ? \"md:hidden\" : \"md:flex\",\n )}\n key={item.label}\n >\n <Icon\n name={item.icon}\n size=\"1.25rem\"\n additionalCSS=\"text-neutral-1000 dark:text-neutral-300\"\n />\n <a\n className=\"ui-text-menu2 md:ui-text-menu3 font-semibold text-neutral-1000 dark:text-neutral-300 group-hover:text-neutral-1300 dark:group-hover:text-neutral-000\"\n href={item.link}\n >\n {item.label}\n </a>\n </li>\n ))}\n </ul>\n {panelRightBottom && (\n <div className=\"items-end mt-16 md:mt-0\">{panelRightBottom}</div>\n )}\n </div>\n </div>\n </>\n );\n};\n"],"names":["React","cn","Icon","FeaturedLink","products","ProductTile","MeganavPanel","displayProductTile","panelLeft","panelLeftClassName","panelRightHeading","panelRightItems","panelRightBottom","div","className","onClick","window","location","href","url","undefined","map","product","name","key","selected","link","animateIcons","h4","heading","p","content","additionalCSS","iconColor","groupHoverClassName","labelLink","img","src","image","alt","ul","item","li","isMobile","label","icon","size","a"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAAOC,OAAQ,aAAc,AAC7B,QAAOC,SAAU,SAAU,AAE3B,QAAOC,iBAAkB,iBAAkB,AAC3C,QAAsBC,QAAQ,KAAQ,qBAAsB,AAC5D,QAAOC,gBAAiB,gBAAiB,AAEzC,QAAO,MAAMC,aAAe,CAAC,CAC3BC,kBAAkB,CAClBC,SAAS,CACTC,kBAAkB,CAClBC,iBAAiB,CACjBC,eAAe,CACfC,gBAAgB,CAQjB,IACC,OACE,wCACE,oBAACC,OAAIC,UAAU,0EACb,oBAACD,OACCC,UAAWb,GACT,0DACAQ,oBAEFM,QACE,CAACR,mBACG,IAAOS,OAAOC,QAAQ,CAACC,IAAI,CAAGV,WAAWW,IACzCC,WAGLb,mBACG,CACE,SACA,SACA,OACA,WACA,gBACA,cACD,CAACc,GAAG,CAAC,AAACC,SACL,oBAACjB,aACCkB,KAAMD,QACNE,IAAKF,QACLG,SAAU,MACVV,QAAS,IACNC,OAAOC,QAAQ,CAACC,IAAI,CAAGd,QAAQ,CAACkB,QAAuB,EACpDI,KAENC,aAAc,QAGlBnB,WACE,wCACE,oBAACK,OAAIC,UAAU,eACb,oBAACc,MAAGd,UAAU,sDACXN,UAAUqB,OAAO,EAEpB,oBAACC,KAAEhB,UAAU,0DACVN,UAAUuB,OAAO,EAEpB,oBAAC5B,cACCgB,IAAKX,UAAUW,GAAG,CAClBa,cAAc,+GACdC,UAAU,kBACVC,oBAAoB,oCAEnB1B,UAAU2B,SAAS,GAGxB,oBAACtB,OAAIC,UAAU,oBACb,oBAACsB,OACCC,IAAK7B,UAAU8B,KAAK,CACpBC,IAAK/B,UAAUqB,OAAO,CACtBf,UAAU,8BAMxB,oBAACD,OAAIC,UAAU,sEACb,oBAAC0B,UACE9B,mBACC,oBAACoB,KAAEhB,UAAU,kEACVJ,mBAIJC,gBAAgBU,GAAG,CAAC,AAACoB,MACpB,oBAACC,MACC5B,UAAWb,GACT,iFACAwC,KAAKE,QAAQ,CAAG,YAAc,WAEhCnB,IAAKiB,KAAKG,KAAK,EAEf,oBAAC1C,MACCqB,KAAMkB,KAAKI,IAAI,CACfC,KAAK,UACLd,cAAc,4CAEhB,oBAACe,KACCjC,UAAU,uJACVI,KAAMuB,KAAKf,IAAI,EAEde,KAAKG,KAAK,KAKlBhC,kBACC,oBAACC,OAAIC,UAAU,2BAA2BF,oBAMtD,CAAE"}
@@ -0,0 +1,2 @@
1
+ import React from"react";import{MeganavPanel}from"./MeganavPanel";import Status,{StatusUrl}from"../Status";import FanEngagementNavImage from"./images/fan-engagement-nav-image.png";import CompanyNavImage from"./images/founders-nav-image.png";import BestRequirementsWinter2025 from"../images/g2-best-meets-requirements-2025.svg";import BestSupportWinter2025 from"../images/g2-best-support-2025.svg";import HighPerformerWinter2025 from"../images/g2-high-performer-2025.svg";const panelClassName="w-full sm:w-[815px]";const panelLeftFeatureClassName="bg-neutral-100 dark:bg-neutral-1200 hidden md:grid border border-neutral-300 dark:border-neutral-1000 hover:border-neutral-500 dark:hover:border-neutral-700 rounded-lg cursor-pointer group/meganav-panel";const productsMenu=[{label:"Infrastructure",icon:"icon-gui-globe-alt-outline",link:"/infrastructure"},{label:"Integrations",icon:"icon-gui-puzzle-piece-outline",link:"/integrations"},{label:"SDKs",icon:"icon-gui-cube-transparent-outline",link:"/docs/sdks"},{label:"Security & Compliance",icon:"icon-gui-shield-check-outline",link:"/security-and-compliance"}];const solutionsHighlight={heading:"Fan Engagement",content:"Capture the attention of millions of fans during live events.",labelLink:"Learn more",url:"/fan-engagement",image:FanEngagementNavImage};const solutionsMenu=[{label:"Fan Engagement",icon:"icon-gui-hand-thumb-up-outline",link:"/fan-engagement",isMobile:true},{label:"BizTech",icon:"icon-gui-building-office-outline",link:"/solutions/ecommerce-and-retail"},{label:"FinTech",icon:"icon-gui-currency-dollar-outline",link:"/solutions/fintech"},{label:"HealthTech",icon:"icon-gui-heart-outline",link:"/solutions/healthcare"},{label:"EdTech",icon:"icon-gui-academic-cap-outline",link:"/solutions/edtech"}];const companyHighlight={heading:"Leading the realtime revolution",content:"Hear from our founders about Ably’s ambitious plans to become the world’s definitive realtime platform.",labelLink:"About Ably",url:"/about",image:CompanyNavImage};const companyMenu=[{label:"About Ably",icon:"icon-gui-ably-badge",link:"/about",isMobile:true},{label:"Customer stories",icon:"icon-gui-star-outline",link:"/case-studies"},{label:"Careers",icon:"icon-gui-briefcase-outline",link:"/careers"},{label:"Blog",icon:"icon-gui-light-bulb-outline",link:"/blog"}];const ablyAwards=[{image:BestRequirementsWinter2025,desc:"G2 Best Requirements Winter 2025"},{image:BestSupportWinter2025,desc:"G2 Best Support Winter 2025"},{image:HighPerformerWinter2025,desc:"G2 High Performer Winter 2025"}];export const menuItemLinks=[{name:"Pricing",link:"/pricing",isHiddenMobile:true},{name:"Docs",link:"/docs",isHiddenMobile:true}];export const menuItemsForHeader=[{name:"Products",content:React.createElement(MeganavPanel,{displayProductTile:true,panelLeftClassName:"grid",panelRightItems:productsMenu,panelRightHeading:"platform",panelRightBottom:React.createElement(Status,{statusUrl:StatusUrl,showDescription:true})}),panelClassName},{name:"Solutions",content:React.createElement(MeganavPanel,{panelLeft:solutionsHighlight,panelLeftClassName:panelLeftFeatureClassName,panelRightItems:solutionsMenu}),panelClassName},{name:"Company",content:React.createElement(MeganavPanel,{panelLeft:companyHighlight,panelLeftClassName:panelLeftFeatureClassName,panelRightItems:companyMenu,panelRightBottom:React.createElement("div",{className:"flex-1 gap-x-8 hidden md:flex"},ablyAwards.map(award=>React.createElement("img",{key:award.desc,src:award.image,alt:award.desc,width:"57",height:"64"})))}),panelClassName},...menuItemLinks];
2
+ //# sourceMappingURL=data.js.map