@ably/ui 16.0.0-dev.f34cb058 → 16.0.0-dev.fc84d6ff

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 (113) hide show
  1. package/core/FeaturedLink.js +1 -1
  2. package/core/FeaturedLink.js.map +1 -1
  3. package/core/Flyout.js +1 -1
  4. package/core/Flyout.js.map +1 -1
  5. package/core/Header.js +1 -1
  6. package/core/Header.js.map +1 -1
  7. package/core/LegacyMeganav/LegacyMeganav.js +2 -0
  8. package/core/LegacyMeganav/LegacyMeganav.js.map +1 -0
  9. package/core/LegacyMeganav/MeganavBlogPostsList.js +2 -0
  10. package/core/LegacyMeganav/MeganavBlogPostsList.js.map +1 -0
  11. package/core/LegacyMeganav/MeganavContentCompany.js +2 -0
  12. package/core/LegacyMeganav/MeganavContentCompany.js.map +1 -0
  13. package/core/LegacyMeganav/MeganavContentDevelopers.js +2 -0
  14. package/core/LegacyMeganav/MeganavContentDevelopers.js.map +1 -0
  15. package/core/LegacyMeganav/MeganavContentProducts.js +2 -0
  16. package/core/LegacyMeganav/MeganavContentProducts.js.map +1 -0
  17. package/core/LegacyMeganav/MeganavContentUseCases.js +2 -0
  18. package/core/LegacyMeganav/MeganavContentUseCases.js.map +1 -0
  19. package/core/LegacyMeganav/MeganavControl.js +2 -0
  20. package/core/LegacyMeganav/MeganavControl.js.map +1 -0
  21. package/core/LegacyMeganav/MeganavControlMobileDropdown.js +2 -0
  22. package/core/LegacyMeganav/MeganavControlMobileDropdown.js.map +1 -0
  23. package/core/LegacyMeganav/MeganavControlMobilePanelClose.js +2 -0
  24. package/core/LegacyMeganav/MeganavControlMobilePanelClose.js.map +1 -0
  25. package/core/LegacyMeganav/MeganavControlMobilePanelOpen.js +2 -0
  26. package/core/LegacyMeganav/MeganavControlMobilePanelOpen.js.map +1 -0
  27. package/core/LegacyMeganav/MeganavItemsDesktop.js +2 -0
  28. package/core/LegacyMeganav/MeganavItemsDesktop.js.map +1 -0
  29. package/core/LegacyMeganav/MeganavItemsMobile.js +2 -0
  30. package/core/LegacyMeganav/MeganavItemsMobile.js.map +1 -0
  31. package/core/LegacyMeganav/MeganavItemsSignedIn.js.map +1 -0
  32. package/core/LegacyMeganav/MeganavSearch.js +2 -0
  33. package/core/LegacyMeganav/MeganavSearch.js.map +1 -0
  34. package/core/LegacyMeganav/MeganavSearchAutocomplete.js.map +1 -0
  35. package/core/LegacyMeganav/MeganavSearchPanel.js +2 -0
  36. package/core/LegacyMeganav/MeganavSearchPanel.js.map +1 -0
  37. package/core/LegacyMeganav/MeganavSearchSuggestions.js +2 -0
  38. package/core/LegacyMeganav/MeganavSearchSuggestions.js.map +1 -0
  39. package/core/LegacyMeganav/SignOutLink.js.map +1 -0
  40. package/core/Meganav/.DS_Store +0 -0
  41. package/core/Meganav/MeganavMobile.js +1 -1
  42. package/core/Meganav/MeganavMobile.js.map +1 -1
  43. package/core/Meganav/MeganavPanel.js +1 -1
  44. package/core/Meganav/MeganavPanel.js.map +1 -1
  45. package/core/Meganav/data.js +1 -1
  46. package/core/Meganav/data.js.map +1 -1
  47. package/core/Meganav/images/fan-engagement-nav-image.png +0 -0
  48. package/core/Meganav/images/founders-nav-image.png +0 -0
  49. package/core/Meganav.js +2 -0
  50. package/core/Meganav.js.map +1 -0
  51. package/core/Notice.js +1 -1
  52. package/core/Notice.js.map +1 -1
  53. package/core/ProductTile/ProductDescription.js +1 -1
  54. package/core/ProductTile/ProductDescription.js.map +1 -1
  55. package/core/ProductTile/ProductLabel.js +1 -1
  56. package/core/ProductTile/ProductLabel.js.map +1 -1
  57. package/core/insights/command-queue.js +2 -0
  58. package/core/insights/command-queue.js.map +1 -0
  59. package/core/insights/datalayer.js +2 -0
  60. package/core/insights/datalayer.js.map +1 -0
  61. package/core/insights/index.js +1 -1
  62. package/core/insights/index.js.map +1 -1
  63. package/core/insights/index.test.js +2 -0
  64. package/core/insights/index.test.js.map +1 -0
  65. package/core/insights/logger.js +2 -0
  66. package/core/insights/logger.js.map +1 -0
  67. package/core/insights/mixpanel.js +1 -1
  68. package/core/insights/mixpanel.js.map +1 -1
  69. package/core/insights/posthog.js +1 -1
  70. package/core/insights/posthog.js.map +1 -1
  71. package/core/insights/service.js +2 -0
  72. package/core/insights/service.js.map +1 -0
  73. package/core/insights/types.js.map +1 -1
  74. package/index.d.ts +233 -229
  75. package/package.json +9 -5
  76. package/core/LegacyMeganav.js +0 -2
  77. package/core/LegacyMeganav.js.map +0 -1
  78. package/core/Meganav/Meganav.js +0 -2
  79. package/core/Meganav/Meganav.js.map +0 -1
  80. package/core/MeganavBlogPostsList.js +0 -2
  81. package/core/MeganavBlogPostsList.js.map +0 -1
  82. package/core/MeganavContentCompany.js +0 -2
  83. package/core/MeganavContentCompany.js.map +0 -1
  84. package/core/MeganavContentDevelopers.js +0 -2
  85. package/core/MeganavContentDevelopers.js.map +0 -1
  86. package/core/MeganavContentProducts.js +0 -2
  87. package/core/MeganavContentProducts.js.map +0 -1
  88. package/core/MeganavContentUseCases.js +0 -2
  89. package/core/MeganavContentUseCases.js.map +0 -1
  90. package/core/MeganavControl.js +0 -2
  91. package/core/MeganavControl.js.map +0 -1
  92. package/core/MeganavControlMobileDropdown.js +0 -2
  93. package/core/MeganavControlMobileDropdown.js.map +0 -1
  94. package/core/MeganavControlMobilePanelClose.js +0 -2
  95. package/core/MeganavControlMobilePanelClose.js.map +0 -1
  96. package/core/MeganavControlMobilePanelOpen.js +0 -2
  97. package/core/MeganavControlMobilePanelOpen.js.map +0 -1
  98. package/core/MeganavItemsDesktop.js +0 -2
  99. package/core/MeganavItemsDesktop.js.map +0 -1
  100. package/core/MeganavItemsMobile.js +0 -2
  101. package/core/MeganavItemsMobile.js.map +0 -1
  102. package/core/MeganavItemsSignedIn.js.map +0 -1
  103. package/core/MeganavSearch.js +0 -2
  104. package/core/MeganavSearch.js.map +0 -1
  105. package/core/MeganavSearchAutocomplete.js.map +0 -1
  106. package/core/MeganavSearchPanel.js +0 -2
  107. package/core/MeganavSearchPanel.js.map +0 -1
  108. package/core/MeganavSearchSuggestions.js +0 -2
  109. package/core/MeganavSearchSuggestions.js.map +0 -1
  110. package/core/SignOutLink.js.map +0 -1
  111. /package/core/{MeganavItemsSignedIn.js → LegacyMeganav/MeganavItemsSignedIn.js} +0 -0
  112. /package/core/{MeganavSearchAutocomplete.js → LegacyMeganav/MeganavSearchAutocomplete.js} +0 -0
  113. /package/core/{SignOutLink.js → LegacyMeganav/SignOutLink.js} +0 -0
package/index.d.ts CHANGED
@@ -423,8 +423,12 @@ type FeaturedLinkProps = {
423
423
  newWindow?: boolean;
424
424
  onClick?: () => void;
425
425
  disabled?: boolean;
426
+ /**
427
+ * Optional class name for group hover state.
428
+ */
429
+ groupHoverClassName?: string;
426
430
  };
427
- const FeaturedLink: ({ url, textSize, iconColor, flush, reverse, additionalCSS, newWindow, onClick, children, disabled, }: FeaturedLinkProps) => import("react/jsx-runtime").JSX.Element;
431
+ const FeaturedLink: ({ url, textSize, iconColor, flush, reverse, additionalCSS, newWindow, onClick, children, disabled, groupHoverClassName, }: FeaturedLinkProps) => import("react/jsx-runtime").JSX.Element;
428
432
  export default FeaturedLink;
429
433
  //# sourceMappingURL=FeaturedLink.d.ts.map
430
434
  }
@@ -685,73 +689,9 @@ export default Icon;
685
689
  //# sourceMappingURL=Icon.d.ts.map
686
690
  }
687
691
 
688
- declare module '@ably/ui/core/LegacyMeganav/MeganavControl/component' {
689
- export default MeganavControl;
690
- function MeganavControl(): {
691
- teardown: () => void;
692
- clear: () => void;
693
- }[];
694
- //# sourceMappingURL=component.d.ts.map
695
- }
696
-
697
- declare module '@ably/ui/core/LegacyMeganav/MeganavControlMobileDropdown/component' {
698
- export default MeganavControlMobileDropdown;
699
- function MeganavControlMobileDropdown({ clearPanels }: {
700
- clearPanels: any;
701
- }): {
702
- teardown: () => void;
703
- clear: () => void;
704
- };
705
- //# sourceMappingURL=component.d.ts.map
706
- }
707
-
708
- declare module '@ably/ui/core/LegacyMeganav/MeganavControlMobilePanelClose/component' {
709
- function _default(): {
710
- teardown: () => void;
711
- clear: () => void;
712
- }[];
713
- export default _default;
714
- //# sourceMappingURL=component.d.ts.map
715
- }
716
-
717
- declare module '@ably/ui/core/LegacyMeganav/MeganavControlMobilePanelOpen/component' {
718
- function _default(): {
719
- teardown: () => void;
720
- clear: () => void;
721
- }[];
722
- export default _default;
723
- //# sourceMappingURL=component.d.ts.map
724
- }
725
-
726
- declare module '@ably/ui/core/LegacyMeganav/MeganavSearchAutocomplete/component' {
727
- function _default(apiKey: any): {
728
- teardown: () => void;
729
- clear: () => void;
730
- }[];
731
- export default _default;
732
- //# sourceMappingURL=component.d.ts.map
733
- }
734
-
735
- declare module '@ably/ui/core/LegacyMeganav/MeganavSearchSuggestions/component' {
736
- export default MeganavSearchSuggestions;
737
- function MeganavSearchSuggestions(): {
738
- teardown: () => void;
739
- clear: () => void;
740
- };
741
- //# sourceMappingURL=component.d.ts.map
742
- }
743
-
744
- declare module '@ably/ui/core/LegacyMeganav/component' {
745
- export default function Meganav({ themeName, addSearchApiKey }: {
746
- themeName: any;
747
- addSearchApiKey: any;
748
- }): () => void;
749
- //# sourceMappingURL=component.d.ts.map
750
- }
751
-
752
- declare module '@ably/ui/core/LegacyMeganav' {
692
+ declare module '@ably/ui/core/LegacyMeganav/LegacyMeganav' {
753
693
  import { ReactNode } from "react";
754
- import { ColorClass } from "@ably/ui/core/styles/colors/types";
694
+ import { ColorClass } from ".@ably/ui/core/styles/colors/types";
755
695
  export type MeganavTheme = {
756
696
  backgroundColor?: ColorClass;
757
697
  textColor?: ColorClass;
@@ -829,137 +769,12 @@ type MeganavProps = {
829
769
  statusUrl: string;
830
770
  searchDataId?: string;
831
771
  };
832
- const Meganav: ({ paths, themeName, notice, loginLink, urlBase, addSearchApiKey, statusUrl, searchDataId, }: MeganavProps) => import("react/jsx-runtime").JSX.Element;
833
- export default Meganav;
772
+ const LegacyMeganav: ({ paths, themeName, notice, loginLink, urlBase, addSearchApiKey, statusUrl, searchDataId, }: MeganavProps) => import("react/jsx-runtime").JSX.Element;
773
+ export default LegacyMeganav;
834
774
  //# sourceMappingURL=LegacyMeganav.d.ts.map
835
775
  }
836
776
 
837
- declare module '@ably/ui/core/LinkButton' {
838
- import React from "react";
839
- import { ButtonPropsBase } from "@ably/ui/core/Button";
840
- import { ColorClass, ColorThemeSet } from "@ably/ui/core/styles/colors/types";
841
- export type LinkButtonProps = ButtonPropsBase & {
842
- disabled?: boolean;
843
- onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;
844
- iconColor?: ColorClass | ColorThemeSet;
845
- } & React.AnchorHTMLAttributes<HTMLAnchorElement>;
846
- const LinkButton: React.FC<LinkButtonProps>;
847
- export default LinkButton;
848
- //# sourceMappingURL=LinkButton.d.ts.map
849
- }
850
-
851
- declare module '@ably/ui/core/Loader' {
852
- type LoaderProps = {
853
- size?: string;
854
- ringColor?: string;
855
- additionalCSS?: string;
856
- };
857
- const Loader: ({ ringColor, size, additionalCSS, }: LoaderProps) => import("react/jsx-runtime").JSX.Element;
858
- export default Loader;
859
- //# sourceMappingURL=Loader.d.ts.map
860
- }
861
-
862
- declare module '@ably/ui/core/Logo' {
863
- import React from "react";
864
- type LogoProps = {
865
- dataId?: string;
866
- logoUrl?: string;
867
- logoAlt?: string;
868
- href?: string;
869
- additionalImgAttrs?: object;
870
- additionalLinkAttrs?: object;
871
- theme?: "light" | "dark";
872
- variant?: "default" | "mono";
873
- orientation?: "default" | "stacked";
874
- };
875
- const _default: React.MemoExoticComponent<({ dataId, href, additionalImgAttrs, additionalLinkAttrs, theme, variant, orientation, logoUrl, logoAlt, }: LogoProps) => import("react/jsx-runtime").JSX.Element>;
876
- export default _default;
877
- //# sourceMappingURL=Logo.d.ts.map
878
- }
879
-
880
- declare module '@ably/ui/core/Meganav/Meganav' {
881
- import { HeaderSessionState } from ".@ably/ui/core/Header";
882
- export type MeganavNoticeBannerProps = {
883
- props: {
884
- title: string;
885
- bodyText: string;
886
- buttonLink: string;
887
- buttonLabel: string;
888
- closeBtn: boolean;
889
- };
890
- config: {
891
- cookieId: string;
892
- noticeId: string | number;
893
- options: {
894
- collapse: boolean;
895
- };
896
- };
897
- };
898
- export type MeganavProps = {
899
- sessionState: HeaderSessionState;
900
- searchDataId: string;
901
- notice?: MeganavNoticeBannerProps;
902
- };
903
- const Meganav: ({ sessionState, searchDataId, notice }: MeganavProps) => import("react/jsx-runtime").JSX.Element;
904
- export default Meganav;
905
- //# sourceMappingURL=Meganav.d.ts.map
906
- }
907
-
908
- declare module '@ably/ui/core/Meganav/MeganavMobile' {
909
- import { AccordionData } from ".@ably/ui/core/Accordion/types";
910
- export const MeganavMobile: ({ mobileNavItems, }: {
911
- mobileNavItems: AccordionData[];
912
- }) => import("react/jsx-runtime").JSX.Element;
913
- //# sourceMappingURL=MeganavMobile.d.ts.map
914
- }
915
-
916
- declare module '@ably/ui/core/Meganav/MeganavPanel' {
917
- import React from "react";
918
- import { FlyoutPanelHighlight, FlyoutPanelList } from "@ably/ui/core/data";
919
- export const MeganavPanel: ({ displayProductTile, panelLeft, panelLeftClassName, panelRightHeading, panelRightItems, panelRightBottom, }: {
920
- displayProductTile?: boolean;
921
- panelLeft?: FlyoutPanelHighlight;
922
- panelLeftClassName?: string;
923
- panelRightHeading?: string;
924
- panelRightItems: FlyoutPanelList[];
925
- panelRightBottom?: React.ReactNode;
926
- }) => import("react/jsx-runtime").JSX.Element;
927
- //# sourceMappingURL=MeganavPanel.d.ts.map
928
- }
929
-
930
- declare module '@ably/ui/core/Meganav/data' {
931
- import React from "react";
932
- import { IconName } from ".@ably/ui/core/Icon/types";
933
- export type FlyoutPanelList = {
934
- label: string;
935
- icon: IconName;
936
- link: string;
937
- isMobile?: boolean;
938
- };
939
- export type FlyoutPanelHighlight = {
940
- heading: string;
941
- content: string;
942
- labelLink: string;
943
- url: string;
944
- image: string;
945
- };
946
- export type MenuItem = {
947
- name: string;
948
- link?: string;
949
- isHiddenMobile?: boolean;
950
- content?: React.ReactNode;
951
- panelClassName?: string;
952
- };
953
- export const menuItemLinks: {
954
- name: string;
955
- link: string;
956
- isHiddenMobile: boolean;
957
- }[];
958
- export const menuItemsForHeader: MenuItem[];
959
- //# sourceMappingURL=data.d.ts.map
960
- }
961
-
962
- declare module '@ably/ui/core/MeganavBlogPostsList' {
777
+ declare module '@ably/ui/core/LegacyMeganav/MeganavBlogPostsList' {
963
778
  import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
964
779
  type MeganavBlogPostsListProps = {
965
780
  recentBlogPosts: {
@@ -974,7 +789,7 @@ export default MeganavBlogPostsList;
974
789
  //# sourceMappingURL=MeganavBlogPostsList.d.ts.map
975
790
  }
976
791
 
977
- declare module '@ably/ui/core/MeganavContentCompany' {
792
+ declare module '@ably/ui/core/LegacyMeganav/MeganavContentCompany' {
978
793
  import { AbsUrl, MeganavPaths } from "@ably/ui/core/LegacyMeganav";
979
794
  type MeganavContentCompanyProps = {
980
795
  absUrl: AbsUrl;
@@ -985,7 +800,7 @@ export default MeganavContentCompany;
985
800
  //# sourceMappingURL=MeganavContentCompany.d.ts.map
986
801
  }
987
802
 
988
- declare module '@ably/ui/core/MeganavContentDevelopers' {
803
+ declare module '@ably/ui/core/LegacyMeganav/MeganavContentDevelopers' {
989
804
  import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
990
805
  const MeganavContentDevelopers: ({ absUrl, statusUrl, }: {
991
806
  absUrl: AbsUrl;
@@ -995,7 +810,7 @@ export default MeganavContentDevelopers;
995
810
  //# sourceMappingURL=MeganavContentDevelopers.d.ts.map
996
811
  }
997
812
 
998
- declare module '@ably/ui/core/MeganavContentProducts' {
813
+ declare module '@ably/ui/core/LegacyMeganav/MeganavContentProducts' {
999
814
  import { AbsUrl, MeganavPaths } from "@ably/ui/core/LegacyMeganav";
1000
815
  type MeganavContentProductsProps = {
1001
816
  paths?: MeganavPaths;
@@ -1006,7 +821,7 @@ export default MeganavContentProducts;
1006
821
  //# sourceMappingURL=MeganavContentProducts.d.ts.map
1007
822
  }
1008
823
 
1009
- declare module '@ably/ui/core/MeganavContentUseCases' {
824
+ declare module '@ably/ui/core/LegacyMeganav/MeganavContentUseCases' {
1010
825
  import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
1011
826
  const MeganavContentUseCases: ({ absUrl }: {
1012
827
  absUrl: AbsUrl;
@@ -1015,7 +830,16 @@ export default MeganavContentUseCases;
1015
830
  //# sourceMappingURL=MeganavContentUseCases.d.ts.map
1016
831
  }
1017
832
 
1018
- declare module '@ably/ui/core/MeganavControl' {
833
+ declare module '@ably/ui/core/LegacyMeganav/MeganavControl/component' {
834
+ export default MeganavControl;
835
+ function MeganavControl(): {
836
+ teardown: () => void;
837
+ clear: () => void;
838
+ }[];
839
+ //# sourceMappingURL=component.d.ts.map
840
+ }
841
+
842
+ declare module '@ably/ui/core/LegacyMeganav/MeganavControl' {
1019
843
  import { ReactNode } from "react";
1020
844
  import { MeganavTheme } from "@ably/ui/core/LegacyMeganav";
1021
845
  type MeganavControlProps = {
@@ -1030,7 +854,18 @@ export default MeganavControl;
1030
854
  //# sourceMappingURL=MeganavControl.d.ts.map
1031
855
  }
1032
856
 
1033
- declare module '@ably/ui/core/MeganavControlMobileDropdown' {
857
+ declare module '@ably/ui/core/LegacyMeganav/MeganavControlMobileDropdown/component' {
858
+ export default MeganavControlMobileDropdown;
859
+ function MeganavControlMobileDropdown({ clearPanels }: {
860
+ clearPanels: any;
861
+ }): {
862
+ teardown: () => void;
863
+ clear: () => void;
864
+ };
865
+ //# sourceMappingURL=component.d.ts.map
866
+ }
867
+
868
+ declare module '@ably/ui/core/LegacyMeganav/MeganavControlMobileDropdown' {
1034
869
  import { MeganavTheme } from "@ably/ui/core/LegacyMeganav";
1035
870
  const MeganavControlMobileDropdown: ({ theme }: {
1036
871
  theme: MeganavTheme;
@@ -1039,7 +874,16 @@ export default MeganavControlMobileDropdown;
1039
874
  //# sourceMappingURL=MeganavControlMobileDropdown.d.ts.map
1040
875
  }
1041
876
 
1042
- declare module '@ably/ui/core/MeganavControlMobilePanelClose' {
877
+ declare module '@ably/ui/core/LegacyMeganav/MeganavControlMobilePanelClose/component' {
878
+ function _default(): {
879
+ teardown: () => void;
880
+ clear: () => void;
881
+ }[];
882
+ export default _default;
883
+ //# sourceMappingURL=component.d.ts.map
884
+ }
885
+
886
+ declare module '@ably/ui/core/LegacyMeganav/MeganavControlMobilePanelClose' {
1043
887
  type MeganavControlMobilePanelCloseProps = {
1044
888
  ariaControls: string;
1045
889
  displayHr?: boolean;
@@ -1049,7 +893,16 @@ export default MeganavControlMobilePanelClose;
1049
893
  //# sourceMappingURL=MeganavControlMobilePanelClose.d.ts.map
1050
894
  }
1051
895
 
1052
- declare module '@ably/ui/core/MeganavControlMobilePanelOpen' {
896
+ declare module '@ably/ui/core/LegacyMeganav/MeganavControlMobilePanelOpen/component' {
897
+ function _default(): {
898
+ teardown: () => void;
899
+ clear: () => void;
900
+ }[];
901
+ export default _default;
902
+ //# sourceMappingURL=component.d.ts.map
903
+ }
904
+
905
+ declare module '@ably/ui/core/LegacyMeganav/MeganavControlMobilePanelOpen' {
1053
906
  import { ReactNode } from "react";
1054
907
  type MeganavControlMobilePanelOpenProps = {
1055
908
  ariaControls: string;
@@ -1060,7 +913,7 @@ export default MeganavControlMobilePanelOpen;
1060
913
  //# sourceMappingURL=MeganavControlMobilePanelOpen.d.ts.map
1061
914
  }
1062
915
 
1063
- declare module '@ably/ui/core/MeganavItemsDesktop' {
916
+ declare module '@ably/ui/core/LegacyMeganav/MeganavItemsDesktop' {
1064
917
  import React from "react";
1065
918
  import { AbsUrl, MeganavPanels, MeganavPaths, MeganavTheme } from "@ably/ui/core/LegacyMeganav";
1066
919
  type MeganavDesktopItems = {
@@ -1076,7 +929,7 @@ export default _default;
1076
929
  //# sourceMappingURL=MeganavItemsDesktop.d.ts.map
1077
930
  }
1078
931
 
1079
- declare module '@ably/ui/core/MeganavItemsMobile' {
932
+ declare module '@ably/ui/core/LegacyMeganav/MeganavItemsMobile' {
1080
933
  import React from "react";
1081
934
  import { AbsUrl, MeganavPanels, MeganavPaths, MeganavSessionState, MeganavTheme } from "@ably/ui/core/LegacyMeganav";
1082
935
  type MeganavItemsMobileProps = {
@@ -1094,7 +947,7 @@ export default _default;
1094
947
  //# sourceMappingURL=MeganavItemsMobile.d.ts.map
1095
948
  }
1096
949
 
1097
- declare module '@ably/ui/core/MeganavItemsSignedIn' {
950
+ declare module '@ably/ui/core/LegacyMeganav/MeganavItemsSignedIn' {
1098
951
  import { AbsUrl, MeganavSessionState, MeganavTheme } from "@ably/ui/core/LegacyMeganav";
1099
952
  type MeganavItemsSignedIn = {
1100
953
  sessionState: MeganavSessionState;
@@ -1107,7 +960,7 @@ export default MeganavItemsSignedIn;
1107
960
  //# sourceMappingURL=MeganavItemsSignedIn.d.ts.map
1108
961
  }
1109
962
 
1110
- declare module '@ably/ui/core/MeganavSearch' {
963
+ declare module '@ably/ui/core/LegacyMeganav/MeganavSearch' {
1111
964
  import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
1112
965
  const MeganavSearch: ({ absUrl, dataId, }: {
1113
966
  absUrl: AbsUrl;
@@ -1117,13 +970,22 @@ export default MeganavSearch;
1117
970
  //# sourceMappingURL=MeganavSearch.d.ts.map
1118
971
  }
1119
972
 
1120
- declare module '@ably/ui/core/MeganavSearchAutocomplete' {
973
+ declare module '@ably/ui/core/LegacyMeganav/MeganavSearchAutocomplete/component' {
974
+ function _default(apiKey: any): {
975
+ teardown: () => void;
976
+ clear: () => void;
977
+ }[];
978
+ export default _default;
979
+ //# sourceMappingURL=component.d.ts.map
980
+ }
981
+
982
+ declare module '@ably/ui/core/LegacyMeganav/MeganavSearchAutocomplete' {
1121
983
  const MeganavSearchAutocomplete: () => import("react/jsx-runtime").JSX.Element;
1122
984
  export default MeganavSearchAutocomplete;
1123
985
  //# sourceMappingURL=MeganavSearchAutocomplete.d.ts.map
1124
986
  }
1125
987
 
1126
- declare module '@ably/ui/core/MeganavSearchPanel' {
988
+ declare module '@ably/ui/core/LegacyMeganav/MeganavSearchPanel' {
1127
989
  import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
1128
990
  const MeganavSearchPanel: ({ absUrl }: {
1129
991
  absUrl: AbsUrl;
@@ -1132,7 +994,16 @@ export default MeganavSearchPanel;
1132
994
  //# sourceMappingURL=MeganavSearchPanel.d.ts.map
1133
995
  }
1134
996
 
1135
- declare module '@ably/ui/core/MeganavSearchSuggestions' {
997
+ declare module '@ably/ui/core/LegacyMeganav/MeganavSearchSuggestions/component' {
998
+ export default MeganavSearchSuggestions;
999
+ function MeganavSearchSuggestions(): {
1000
+ teardown: () => void;
1001
+ clear: () => void;
1002
+ };
1003
+ //# sourceMappingURL=component.d.ts.map
1004
+ }
1005
+
1006
+ declare module '@ably/ui/core/LegacyMeganav/MeganavSearchSuggestions' {
1136
1007
  import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
1137
1008
  type MeganavSearchSuggestionsProps = {
1138
1009
  absUrl: AbsUrl;
@@ -1143,6 +1014,158 @@ export default MeganavSearchSuggestions;
1143
1014
  //# sourceMappingURL=MeganavSearchSuggestions.d.ts.map
1144
1015
  }
1145
1016
 
1017
+ declare module '@ably/ui/core/LegacyMeganav/SignOutLink' {
1018
+ import { MouseEventHandler, ReactNode } from "react";
1019
+ import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
1020
+ type SignOutLinkProps = {
1021
+ token: string;
1022
+ href: string;
1023
+ text: string;
1024
+ children: ({ href, text, onClick, }: {
1025
+ href: string;
1026
+ text: string;
1027
+ onClick: MouseEventHandler<HTMLAnchorElement>;
1028
+ }) => ReactNode;
1029
+ absUrl: AbsUrl;
1030
+ };
1031
+ const SignOutLink: ({ token, href, text, children, absUrl, }: SignOutLinkProps) => import("react/jsx-runtime").JSX.Element;
1032
+ export default SignOutLink;
1033
+ //# sourceMappingURL=SignOutLink.d.ts.map
1034
+ }
1035
+
1036
+ declare module '@ably/ui/core/LegacyMeganav/component' {
1037
+ export default function Meganav({ themeName, addSearchApiKey }: {
1038
+ themeName: any;
1039
+ addSearchApiKey: any;
1040
+ }): () => void;
1041
+ //# sourceMappingURL=component.d.ts.map
1042
+ }
1043
+
1044
+ declare module '@ably/ui/core/LinkButton' {
1045
+ import React from "react";
1046
+ import { ButtonPropsBase } from "@ably/ui/core/Button";
1047
+ import { ColorClass, ColorThemeSet } from "@ably/ui/core/styles/colors/types";
1048
+ export type LinkButtonProps = ButtonPropsBase & {
1049
+ disabled?: boolean;
1050
+ onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;
1051
+ iconColor?: ColorClass | ColorThemeSet;
1052
+ } & React.AnchorHTMLAttributes<HTMLAnchorElement>;
1053
+ const LinkButton: React.FC<LinkButtonProps>;
1054
+ export default LinkButton;
1055
+ //# sourceMappingURL=LinkButton.d.ts.map
1056
+ }
1057
+
1058
+ declare module '@ably/ui/core/Loader' {
1059
+ type LoaderProps = {
1060
+ size?: string;
1061
+ ringColor?: string;
1062
+ additionalCSS?: string;
1063
+ };
1064
+ const Loader: ({ ringColor, size, additionalCSS, }: LoaderProps) => import("react/jsx-runtime").JSX.Element;
1065
+ export default Loader;
1066
+ //# sourceMappingURL=Loader.d.ts.map
1067
+ }
1068
+
1069
+ declare module '@ably/ui/core/Logo' {
1070
+ import React from "react";
1071
+ type LogoProps = {
1072
+ dataId?: string;
1073
+ logoUrl?: string;
1074
+ logoAlt?: string;
1075
+ href?: string;
1076
+ additionalImgAttrs?: object;
1077
+ additionalLinkAttrs?: object;
1078
+ theme?: "light" | "dark";
1079
+ variant?: "default" | "mono";
1080
+ orientation?: "default" | "stacked";
1081
+ };
1082
+ const _default: React.MemoExoticComponent<({ dataId, href, additionalImgAttrs, additionalLinkAttrs, theme, variant, orientation, logoUrl, logoAlt, }: LogoProps) => import("react/jsx-runtime").JSX.Element>;
1083
+ export default _default;
1084
+ //# sourceMappingURL=Logo.d.ts.map
1085
+ }
1086
+
1087
+ declare module '@ably/ui/core/Meganav/MeganavMobile' {
1088
+ import { AccordionData } from ".@ably/ui/core/Accordion/types";
1089
+ export const MeganavMobile: ({ mobileNavItems, }: {
1090
+ mobileNavItems: AccordionData[];
1091
+ }) => import("react/jsx-runtime").JSX.Element;
1092
+ //# sourceMappingURL=MeganavMobile.d.ts.map
1093
+ }
1094
+
1095
+ declare module '@ably/ui/core/Meganav/MeganavPanel' {
1096
+ import React from "react";
1097
+ import { FlyoutPanelHighlight, FlyoutPanelList } from "@ably/ui/core/data";
1098
+ export const MeganavPanel: ({ displayProductTile, panelLeft, panelLeftClassName, panelRightHeading, panelRightItems, panelRightBottom, }: {
1099
+ displayProductTile?: boolean;
1100
+ panelLeft?: FlyoutPanelHighlight;
1101
+ panelLeftClassName?: string;
1102
+ panelRightHeading?: string;
1103
+ panelRightItems: FlyoutPanelList[];
1104
+ panelRightBottom?: React.ReactNode;
1105
+ }) => import("react/jsx-runtime").JSX.Element;
1106
+ //# sourceMappingURL=MeganavPanel.d.ts.map
1107
+ }
1108
+
1109
+ declare module '@ably/ui/core/Meganav/data' {
1110
+ import React from "react";
1111
+ import { IconName } from ".@ably/ui/core/Icon/types";
1112
+ export type FlyoutPanelList = {
1113
+ label: string;
1114
+ icon: IconName;
1115
+ link: string;
1116
+ isMobile?: boolean;
1117
+ };
1118
+ export type FlyoutPanelHighlight = {
1119
+ heading: string;
1120
+ content: string;
1121
+ labelLink: string;
1122
+ url: string;
1123
+ image: string;
1124
+ };
1125
+ export type MenuItem = {
1126
+ name: string;
1127
+ link?: string;
1128
+ isHiddenMobile?: boolean;
1129
+ content?: React.ReactNode;
1130
+ panelClassName?: string;
1131
+ };
1132
+ export const menuItemLinks: {
1133
+ name: string;
1134
+ link: string;
1135
+ isHiddenMobile: boolean;
1136
+ }[];
1137
+ export const menuItemsForHeader: MenuItem[];
1138
+ //# sourceMappingURL=data.d.ts.map
1139
+ }
1140
+
1141
+ declare module '@ably/ui/core/Meganav' {
1142
+ import { HeaderSessionState } from "@ably/ui/core/Header";
1143
+ export type MeganavNoticeBannerProps = {
1144
+ props: {
1145
+ title: string;
1146
+ bodyText: string;
1147
+ buttonLink: string;
1148
+ buttonLabel: string;
1149
+ closeBtn: boolean;
1150
+ };
1151
+ config: {
1152
+ cookieId: string;
1153
+ noticeId: string | number;
1154
+ options: {
1155
+ collapse: boolean;
1156
+ };
1157
+ };
1158
+ };
1159
+ export type MeganavProps = {
1160
+ sessionState: HeaderSessionState;
1161
+ searchDataId: string;
1162
+ notice?: MeganavNoticeBannerProps;
1163
+ };
1164
+ const Meganav: ({ sessionState, searchDataId, notice }: MeganavProps) => import("react/jsx-runtime").JSX.Element;
1165
+ export default Meganav;
1166
+ //# sourceMappingURL=Meganav.d.ts.map
1167
+ }
1168
+
1146
1169
  declare module '@ably/ui/core/Notice/component' {
1147
1170
  export const COLLAPSE_TRIGGER_DISTANCE: 5;
1148
1171
  export default Notice;
@@ -1359,25 +1382,6 @@ export default ProductTile;
1359
1382
  //# sourceMappingURL=ProductTile.d.ts.map
1360
1383
  }
1361
1384
 
1362
- declare module '@ably/ui/core/SignOutLink' {
1363
- import { MouseEventHandler, ReactNode } from "react";
1364
- import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
1365
- type SignOutLinkProps = {
1366
- token: string;
1367
- href: string;
1368
- text: string;
1369
- children: ({ href, text, onClick, }: {
1370
- href: string;
1371
- text: string;
1372
- onClick: MouseEventHandler<HTMLAnchorElement>;
1373
- }) => ReactNode;
1374
- absUrl: AbsUrl;
1375
- };
1376
- const SignOutLink: ({ token, href, text, children, absUrl, }: SignOutLinkProps) => import("react/jsx-runtime").JSX.Element;
1377
- export default SignOutLink;
1378
- //# sourceMappingURL=SignOutLink.d.ts.map
1379
- }
1380
-
1381
1385
  declare module '@ably/ui/core/Slider' {
1382
1386
  import { ReactNode } from "react";
1383
1387
  interface SliderProps {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ably/ui",
3
- "version": "16.0.0-dev.f34cb058",
3
+ "version": "16.0.0-dev.fc84d6ff",
4
4
  "description": "Home of the Ably design system library ([design.ably.com](https://design.ably.com)). It provides a showcase, development/test environment and a publishing pipeline for different distributables.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,7 +34,7 @@
34
34
  "@types/svg-sprite": "^0.0.39",
35
35
  "@typescript-eslint/eslint-plugin": "^8.25.0",
36
36
  "@typescript-eslint/parser": "^8.25.0",
37
- "@vitejs/plugin-react": "^4.2.1",
37
+ "@vitejs/plugin-react-swc": "^3.8.0",
38
38
  "@whitespace/storybook-addon-html": "^6.1.1",
39
39
  "autoprefixer": "^10.0.2",
40
40
  "eslint": "^8.57.0",
@@ -43,6 +43,7 @@
43
43
  "eslint-plugin-storybook": "^0.11.4",
44
44
  "heroicons": "^2.2.0",
45
45
  "http-server": "14.1.1",
46
+ "jsdom": "^26.0.0",
46
47
  "mixpanel-browser": "^2.60.0",
47
48
  "msw": "2.7.1",
48
49
  "msw-storybook-addon": "^2.0.2",
@@ -56,7 +57,8 @@
56
57
  "tailwindcss": "^3.3.6",
57
58
  "ts-node": "^10.9.2",
58
59
  "typescript": "5.7.3",
59
- "vite": "^6.2.0"
60
+ "vite": "^6.2.0",
61
+ "vitest": "^3.0.8"
60
62
  },
61
63
  "scripts": {
62
64
  "build:prebuild": "rm -rf core reset && mkdir -p dist/core",
@@ -75,8 +77,10 @@
75
77
  "start": "vite --port 5000",
76
78
  "storybook": "yarn build && storybook dev -p 6006",
77
79
  "build-storybook": "yarn build && storybook build --quiet -o preview",
78
- "test": "npx concurrently -k -s first -n \"SB,TEST\" -c \"magenta,blue\" \"yarn build-storybook && yarn http-server preview --port 6007 --silent\" \"wait-on tcp:6007 && yarn test-storybook --url http://127.0.0.1:6007\"",
79
- "test:update-snapshots": "npx concurrently -k -s first -n \"SB,TEST\" -c \"magenta,blue\" \"yarn build-storybook && yarn http-server preview --port 6007 --silent\" \"wait-on tcp:6007 && yarn test-storybook -u --url http://127.0.0.1:6007\""
80
+ "test": "yarn test:storybook && yarn test:vitest",
81
+ "test:storybook": "npx concurrently -k -s first -n \"SB,TEST\" -c \"magenta,blue\" \"yarn build-storybook && yarn http-server preview --port 6007 --silent\" \"wait-on tcp:6007 && yarn test-storybook --url http://127.0.0.1:6007\"",
82
+ "test:update-snapshots": "npx concurrently -k -s first -n \"SB,TEST\" -c \"magenta,blue\" \"yarn build-storybook && yarn http-server preview --port 6007 --silent\" \"wait-on tcp:6007 && yarn test-storybook -u --url http://127.0.0.1:6007\"",
83
+ "test:vitest": "vitest --environment=jsdom --dir=src"
80
84
  },
81
85
  "dependencies": {
82
86
  "@radix-ui/react-accordion": "^1.2.1",
@@ -1,2 +0,0 @@
1
- import React,{useEffect,useState}from"react";import{connectState}from"./remote-data-store.js";import{selectSessionData}from"./remote-session-data.js";import Logo from"./Logo";import MeganavData from"./LegacyMeganav/component.json";import MeganavScripts from"./LegacyMeganav/component.js";import MeganavItemsDesktop from"./MeganavItemsDesktop";import MeganavItemsSignedIn from"./MeganavItemsSignedIn";import MeganavItemsMobile from"./MeganavItemsMobile";import Notice from"./Notice";import _absUrl from"./url-base.js";import MeganavContentProducts from"./MeganavContentProducts";import MeganavContentUseCases from"./MeganavContentUseCases";import MeganavContentCompany from"./MeganavContentCompany";import MeganavContentDevelopers from"./MeganavContentDevelopers";import MeganavSearch from"./MeganavSearch";const SignIn=({sessionState,theme,loginLink,absUrl,searchDataId})=>{return sessionState.signedIn?React.createElement(MeganavItemsSignedIn,{absUrl:absUrl,sessionState:sessionState,theme:theme,searchDataId:searchDataId}):React.createElement("ul",{className:"hidden md:flex items-center"},React.createElement("li",{className:"ui-meganav-item"},React.createElement("a",{href:absUrl("/contact"),className:`ui-meganav-link ${theme.textColor}`,"data-id":"meganav-link"},"Contact us")),React.createElement("li",{className:"ui-meganav-item"},React.createElement("a",{href:absUrl(loginLink),className:`ui-meganav-link mr-0 ${theme.textColor}`,"data-id":"meganav-link"},"Login")),React.createElement("li",{className:"ui-meganav-item"},React.createElement(MeganavSearch,{absUrl:absUrl,dataId:searchDataId})),React.createElement("li",{className:"ui-meganav-item"},React.createElement("a",{href:absUrl("/sign-up"),"data-id":"meganav-sign-up-btn",className:`ui-btn p-btn-small ${theme.buttonBackgroundColor} ${theme.buttonTextColor}`},"Sign up free")))};const SignInPlaceholder=()=>React.createElement("div",null);const panels={MeganavContentProducts,MeganavContentUseCases,MeganavContentCompany,MeganavContentDevelopers};const Meganav=({paths,themeName="white",notice,loginLink="/login",urlBase,addSearchApiKey,statusUrl,searchDataId})=>{const[sessionState,setSessionState]=useState();useEffect(()=>{connectState(selectSessionData,setSessionState)},[]);useEffect(()=>{const teardown=MeganavScripts({themeName,addSearchApiKey});return()=>teardown()},[sessionState]);const theme=MeganavData.themes[themeName];const absUrl=path=>_absUrl(path,urlBase);return React.createElement("nav",{className:`ui-meganav-wrapper ${theme.backgroundColor} ${theme.barShadow}`,"data-id":"meganav","aria-label":"Main"},notice&&React.createElement(Notice,{...notice.props,config:notice.config}),React.createElement("div",{className:"ui-meganav ui-grid-px"},React.createElement("div",{className:"mr-24"},React.createElement(Logo,{dataId:"meganav-logo",href:urlBase,logoUrl:paths?.logo})),React.createElement(MeganavItemsDesktop,{panels:panels,paths:paths,theme:theme,absUrl:absUrl,statusUrl:statusUrl}),sessionState?React.createElement(SignIn,{sessionState:sessionState,theme:theme,loginLink:loginLink,absUrl:absUrl,searchDataId:searchDataId}):React.createElement(SignInPlaceholder,null),React.createElement(MeganavItemsMobile,{panels:panels,sessionState:sessionState,paths:paths,theme:theme,loginLink:loginLink,absUrl:absUrl,statusUrl:statusUrl,searchDataId:searchDataId})))};export default Meganav;
2
- //# sourceMappingURL=LegacyMeganav.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/core/LegacyMeganav.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useState } from \"react\";\n\nimport { connectState } from \"./remote-data-store.js\";\nimport { selectSessionData } from \"./remote-session-data.js\";\n\nimport Logo from \"./Logo\";\nimport MeganavData from \"./LegacyMeganav/component.json\";\nimport MeganavScripts from \"./LegacyMeganav/component.js\";\nimport MeganavItemsDesktop from \"./MeganavItemsDesktop\";\nimport MeganavItemsSignedIn from \"./MeganavItemsSignedIn\";\nimport MeganavItemsMobile from \"./MeganavItemsMobile\";\nimport Notice from \"./Notice\";\nimport _absUrl from \"./url-base.js\";\nimport MeganavContentProducts from \"./MeganavContentProducts\";\nimport MeganavContentUseCases from \"./MeganavContentUseCases\";\nimport MeganavContentCompany from \"./MeganavContentCompany\";\nimport MeganavContentDevelopers from \"./MeganavContentDevelopers\";\nimport MeganavSearch from \"./MeganavSearch\";\nimport { ColorClass } from \"./styles/colors/types\";\n\nexport type MeganavTheme = {\n backgroundColor?: ColorClass;\n textColor?: ColorClass;\n buttonBackgroundColor?: ColorClass;\n buttonTextColor?: ColorClass;\n mobileMenuColor: ColorClass;\n logoTextColor?: ColorClass;\n barShadow?: string;\n};\n\nexport type AbsUrl = (path: string) => string;\n\nexport type MeganavPaths = {\n logo?: string;\n iconSprites: string;\n ablyStack: string;\n blogThumb1: string;\n blogThumb2: string;\n blogThumb3: string;\n awsLogo?: string;\n};\n\nexport type MeganavPanels = {\n [index: string]: ({\n paths,\n absUrl,\n statusUrl,\n }: {\n paths?: MeganavPaths;\n absUrl: (path: string) => string;\n statusUrl: string;\n }) => ReactNode;\n};\n\nexport type MeganavSessionState = {\n signedIn: boolean;\n logOut: {\n token: string;\n href: string;\n text: string;\n };\n accountName: string;\n preferredEmail: string;\n account: {\n links: {\n dashboard: {\n href: string;\n };\n };\n };\n mySettings: {\n text: string;\n href: string;\n };\n myAccessTokens: {\n text: string;\n href: string;\n };\n};\n\ntype SignInProps = {\n sessionState: MeganavSessionState;\n theme: MeganavTheme;\n loginLink: string;\n absUrl: AbsUrl;\n searchDataId?: string;\n};\n\n// This type is based on the API response from the notice API and the data\n// passed into the Meganav component, which then turns it into something\n// the Notice component can use. The type is exported for the benefit of\n// Voltaire\nexport type MeganavNoticeProps = {\n props: {\n title: string;\n bodyText: string;\n buttonLink: string;\n buttonLabel: string;\n closeBtn: boolean;\n };\n config: {\n cookieId: string;\n noticeId: string | number;\n options: {\n collapse: boolean;\n };\n };\n};\n\ntype MeganavProps = {\n paths?: MeganavPaths;\n themeName: \"white\" | \"black\" | \"transparentToWhite\";\n notice?: MeganavNoticeProps;\n loginLink?: string;\n urlBase?: string;\n addSearchApiKey: string;\n statusUrl: string;\n searchDataId?: string;\n};\n\nconst SignIn = ({\n sessionState,\n theme,\n loginLink,\n absUrl,\n searchDataId,\n}: SignInProps) => {\n return sessionState.signedIn ? (\n <MeganavItemsSignedIn\n absUrl={absUrl}\n sessionState={sessionState}\n theme={theme}\n searchDataId={searchDataId}\n />\n ) : (\n <ul className=\"hidden md:flex items-center\">\n <li className=\"ui-meganav-item\">\n <a\n href={absUrl(\"/contact\")}\n className={`ui-meganav-link ${theme.textColor}`}\n data-id=\"meganav-link\"\n >\n Contact us\n </a>\n </li>\n <li className=\"ui-meganav-item\">\n <a\n href={absUrl(loginLink)}\n className={`ui-meganav-link mr-0 ${theme.textColor}`}\n data-id=\"meganav-link\"\n >\n Login\n </a>\n </li>\n <li className=\"ui-meganav-item\">\n <MeganavSearch absUrl={absUrl} dataId={searchDataId} />\n </li>\n <li className=\"ui-meganav-item\">\n <a\n href={absUrl(\"/sign-up\")}\n data-id=\"meganav-sign-up-btn\"\n className={`ui-btn p-btn-small ${theme.buttonBackgroundColor} ${theme.buttonTextColor}`}\n >\n Sign up free\n </a>\n </li>\n </ul>\n );\n};\n\nconst SignInPlaceholder = () => <div />;\n\nconst panels = {\n MeganavContentProducts,\n MeganavContentUseCases,\n MeganavContentCompany,\n MeganavContentDevelopers,\n};\n\nconst Meganav = ({\n paths,\n themeName = \"white\",\n notice,\n loginLink = \"/login\",\n urlBase,\n addSearchApiKey,\n statusUrl,\n searchDataId,\n}: MeganavProps) => {\n const [sessionState, setSessionState] = useState<MeganavSessionState>();\n\n useEffect(() => {\n // Note if state is never updated, sessionState stays null and never removes the placeholder.\n // This makes SSR consistent (ie. we always show the placeholder)\n connectState(selectSessionData, setSessionState);\n }, []);\n\n useEffect(() => {\n const teardown = MeganavScripts({ themeName, addSearchApiKey });\n return () => teardown();\n }, [sessionState]);\n\n const theme = MeganavData.themes[themeName] as MeganavTheme;\n const absUrl = (path: string) => _absUrl(path, urlBase);\n\n return (\n <nav\n className={`ui-meganav-wrapper ${theme.backgroundColor} ${theme.barShadow}`}\n data-id=\"meganav\"\n aria-label=\"Main\"\n >\n {notice && <Notice {...notice.props} config={notice.config} />}\n <div className=\"ui-meganav ui-grid-px\">\n <div className=\"mr-24\">\n <Logo dataId=\"meganav-logo\" href={urlBase} logoUrl={paths?.logo} />\n </div>\n\n <MeganavItemsDesktop\n panels={panels}\n paths={paths}\n theme={theme}\n absUrl={absUrl}\n statusUrl={statusUrl}\n />\n\n {/* Because we load the session state through fetch, we display a placeholder until fetch returns */}\n {sessionState ? (\n <SignIn\n sessionState={sessionState}\n theme={theme}\n loginLink={loginLink}\n absUrl={absUrl}\n searchDataId={searchDataId}\n />\n ) : (\n <SignInPlaceholder />\n )}\n\n <MeganavItemsMobile\n panels={panels}\n sessionState={sessionState}\n paths={paths}\n theme={theme}\n loginLink={loginLink}\n absUrl={absUrl}\n statusUrl={statusUrl}\n searchDataId={searchDataId}\n />\n </div>\n </nav>\n );\n};\n\nexport default Meganav;\n"],"names":["React","useEffect","useState","connectState","selectSessionData","Logo","MeganavData","MeganavScripts","MeganavItemsDesktop","MeganavItemsSignedIn","MeganavItemsMobile","Notice","_absUrl","MeganavContentProducts","MeganavContentUseCases","MeganavContentCompany","MeganavContentDevelopers","MeganavSearch","SignIn","sessionState","theme","loginLink","absUrl","searchDataId","signedIn","ul","className","li","a","href","textColor","data-id","dataId","buttonBackgroundColor","buttonTextColor","SignInPlaceholder","div","panels","Meganav","paths","themeName","notice","urlBase","addSearchApiKey","statusUrl","setSessionState","teardown","themes","path","nav","backgroundColor","barShadow","aria-label","props","config","logoUrl","logo"],"mappings":"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"}