@ably/ui 15.6.0-dev.274a3001 → 15.6.0-dev.bdcefb0
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.
- package/core/DropdownMenu.js +1 -1
- package/core/DropdownMenu.js.map +1 -1
- package/core/Flash.js +1 -1
- package/core/Flash.js.map +1 -1
- package/core/Flyout.js +1 -1
- package/core/Flyout.js.map +1 -1
- package/core/Header/HeaderLinks.js +1 -1
- package/core/Header/HeaderLinks.js.map +1 -1
- package/core/Header.js +1 -1
- package/core/Header.js.map +1 -1
- package/core/LegacyMeganav/MeganavBlogPostsList/component.js +2 -0
- package/core/LegacyMeganav/MeganavBlogPostsList/component.js.map +1 -0
- package/core/LegacyMeganav/MeganavControl/component.js +2 -0
- package/core/LegacyMeganav/MeganavControl/component.js.map +1 -0
- package/core/LegacyMeganav/MeganavControlMobileDropdown/component.js +2 -0
- package/core/LegacyMeganav/MeganavControlMobileDropdown/component.js.map +1 -0
- package/core/LegacyMeganav/MeganavControlMobilePanelClose/component.js +2 -0
- package/core/LegacyMeganav/MeganavControlMobilePanelClose/component.js.map +1 -0
- package/core/LegacyMeganav/MeganavControlMobilePanelOpen/component.js +2 -0
- package/core/LegacyMeganav/MeganavControlMobilePanelOpen/component.js.map +1 -0
- package/core/LegacyMeganav/MeganavSearchAutocomplete/component.js +2 -0
- package/core/LegacyMeganav/MeganavSearchAutocomplete/component.js.map +1 -0
- package/core/LegacyMeganav/MeganavSearchSuggestions/component.js +2 -0
- package/core/LegacyMeganav/MeganavSearchSuggestions/component.js.map +1 -0
- package/core/LegacyMeganav/component.js +2 -0
- package/core/{Meganav → LegacyMeganav}/component.js.map +1 -1
- package/core/LegacyMeganav.js +2 -0
- package/core/LegacyMeganav.js.map +1 -0
- package/core/Meganav/.DS_Store +0 -0
- package/core/Meganav/Meganav.js +2 -0
- package/core/Meganav/Meganav.js.map +1 -0
- package/core/Meganav/MeganavMobile.js +2 -0
- package/core/Meganav/MeganavMobile.js.map +1 -0
- package/core/Meganav/MeganavPanel.js +2 -0
- package/core/Meganav/MeganavPanel.js.map +1 -0
- package/core/Meganav/data.js +2 -0
- package/core/Meganav/data.js.map +1 -0
- package/core/Meganav/images/fan-engagement-nav-image.png +0 -0
- package/core/Meganav/images/founders-nav-image.png +0 -0
- package/core/MeganavBlogPostsList.js.map +1 -1
- package/core/MeganavContentCompany.js.map +1 -1
- package/core/MeganavContentDevelopers.js.map +1 -1
- package/core/MeganavContentProducts.js.map +1 -1
- package/core/MeganavContentUseCases.js.map +1 -1
- package/core/MeganavControl.js.map +1 -1
- package/core/MeganavControlMobileDropdown.js.map +1 -1
- package/core/MeganavItemsDesktop.js +1 -1
- package/core/MeganavItemsDesktop.js.map +1 -1
- package/core/MeganavItemsMobile.js +1 -1
- package/core/MeganavItemsMobile.js.map +1 -1
- package/core/MeganavItemsSignedIn.js.map +1 -1
- package/core/MeganavSearch.js.map +1 -1
- package/core/MeganavSearchPanel.js.map +1 -1
- package/core/MeganavSearchSuggestions.js.map +1 -1
- package/core/Notice.js +1 -1
- package/core/Notice.js.map +1 -1
- package/core/SignOutLink.js.map +1 -1
- package/core/images/award/g2-best-meets-requirements-2025.png +0 -0
- package/core/images/award/g2-best-support-2025.png +0 -0
- package/core/images/award/g2-high-performer-2025.png +0 -0
- package/core/images/award/g2-users-most-likely-to-recommend-2025.png +0 -0
- package/index.d.ts +237 -151
- package/package.json +1 -1
- package/core/Meganav/component.js +0 -2
- package/core/Meganav.js +0 -2
- package/core/Meganav.js.map +0 -1
- package/core/MeganavBlogPostsList/component.js +0 -2
- package/core/MeganavBlogPostsList/component.js.map +0 -1
- package/core/MeganavControl/component.js +0 -2
- package/core/MeganavControl/component.js.map +0 -1
- package/core/MeganavControlMobileDropdown/component.js +0 -2
- package/core/MeganavControlMobileDropdown/component.js.map +0 -1
- package/core/MeganavControlMobilePanelClose/component.js +0 -2
- package/core/MeganavControlMobilePanelClose/component.js.map +0 -1
- package/core/MeganavControlMobilePanelOpen/component.js +0 -2
- package/core/MeganavControlMobilePanelOpen/component.js.map +0 -1
- package/core/MeganavSearchAutocomplete/component.js +0 -2
- package/core/MeganavSearchAutocomplete/component.js.map +0 -1
- package/core/MeganavSearchSuggestions/component.js +0 -2
- package/core/MeganavSearchSuggestions/component.js.map +0 -1
- package/core/hooks/use-rails-ujs-hooks.js +0 -2
- package/core/hooks/use-rails-ujs-hooks.js.map +0 -1
- package/core/styles/colors/computed-colors.json +0 -1
- /package/core/{Meganav → LegacyMeganav}/component.css +0 -0
- /package/core/{Meganav → LegacyMeganav}/component.json +0 -0
package/index.d.ts
CHANGED
|
@@ -343,28 +343,51 @@ declare module '@ably/ui/core/DropdownMenu' {
|
|
|
343
343
|
import { ReactNode } from "react";
|
|
344
344
|
import { IconName } from "@ably/ui/core/Icon/types";
|
|
345
345
|
type DropdownMenuProps = {
|
|
346
|
+
/**
|
|
347
|
+
* The content to be displayed within the dropdown menu.
|
|
348
|
+
*/
|
|
346
349
|
children: ReactNode;
|
|
347
350
|
};
|
|
348
351
|
type TriggerProps = {
|
|
352
|
+
/**
|
|
353
|
+
* The content to be displayed within the trigger element.
|
|
354
|
+
*/
|
|
349
355
|
children: ReactNode;
|
|
350
|
-
|
|
356
|
+
/**
|
|
357
|
+
* Additional class names to apply to the trigger element.
|
|
358
|
+
*/
|
|
359
|
+
triggerClassNames?: string;
|
|
360
|
+
/**
|
|
361
|
+
* A description for the trigger element, used for accessibility purposes.
|
|
362
|
+
*/
|
|
363
|
+
description?: string;
|
|
351
364
|
};
|
|
352
365
|
type ContentProps = {
|
|
366
|
+
/**
|
|
367
|
+
* The content to be displayed within the dropdown menu.
|
|
368
|
+
*/
|
|
353
369
|
children: ReactNode;
|
|
370
|
+
/**
|
|
371
|
+
* The position of the dropdown menu relative to the trigger element.
|
|
372
|
+
* Defaults to "right".
|
|
373
|
+
*/
|
|
354
374
|
anchorPosition?: string;
|
|
355
|
-
|
|
375
|
+
/**
|
|
376
|
+
* Additional class names to apply to the content container.
|
|
377
|
+
*/
|
|
378
|
+
contentClassNames?: string;
|
|
356
379
|
};
|
|
357
380
|
type LinkProps = {
|
|
358
381
|
url: string;
|
|
359
382
|
title: string;
|
|
360
|
-
subtitle
|
|
361
|
-
iconName
|
|
362
|
-
children
|
|
383
|
+
subtitle?: string;
|
|
384
|
+
iconName?: IconName;
|
|
385
|
+
children?: ReactNode;
|
|
363
386
|
};
|
|
364
387
|
const DropdownMenu: {
|
|
365
388
|
({ children }: DropdownMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
366
|
-
Trigger: ({ children,
|
|
367
|
-
Content: ({ children, anchorPosition,
|
|
389
|
+
Trigger: ({ children, triggerClassNames, description, }: TriggerProps) => import("react/jsx-runtime").JSX.Element;
|
|
390
|
+
Content: ({ children, anchorPosition, contentClassNames, }: ContentProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
368
391
|
Link: ({ url, title, subtitle, iconName, children }: LinkProps) => import("react/jsx-runtime").JSX.Element;
|
|
369
392
|
};
|
|
370
393
|
export default DropdownMenu;
|
|
@@ -417,7 +440,7 @@ type FlashProps = {
|
|
|
417
440
|
};
|
|
418
441
|
type FlashesProps = {
|
|
419
442
|
flashes: {
|
|
420
|
-
items:
|
|
443
|
+
items: FlashProps[];
|
|
421
444
|
};
|
|
422
445
|
};
|
|
423
446
|
type BackendFlashesProps = {
|
|
@@ -452,9 +475,9 @@ type FlyoutProps = {
|
|
|
452
475
|
*/
|
|
453
476
|
menuItems: {
|
|
454
477
|
/**
|
|
455
|
-
*
|
|
478
|
+
* name for the menu item.
|
|
456
479
|
*/
|
|
457
|
-
|
|
480
|
+
name: string;
|
|
458
481
|
/**
|
|
459
482
|
* Optional content to be displayed in the flyout panel.
|
|
460
483
|
*/
|
|
@@ -526,6 +549,32 @@ export type ThemedScrollpoint = {
|
|
|
526
549
|
id: string;
|
|
527
550
|
className: string;
|
|
528
551
|
};
|
|
552
|
+
/**
|
|
553
|
+
* Represents the state of the user session in the header.
|
|
554
|
+
*/
|
|
555
|
+
export type HeaderSessionState = {
|
|
556
|
+
/**
|
|
557
|
+
* Indicates if the user is signed in.
|
|
558
|
+
*/
|
|
559
|
+
signedIn: boolean;
|
|
560
|
+
/**
|
|
561
|
+
* Information required to log out the user.
|
|
562
|
+
*/
|
|
563
|
+
logOut: {
|
|
564
|
+
/**
|
|
565
|
+
* Token used for logging out.
|
|
566
|
+
*/
|
|
567
|
+
token: string;
|
|
568
|
+
/**
|
|
569
|
+
* URL to log out the user.
|
|
570
|
+
*/
|
|
571
|
+
href: string;
|
|
572
|
+
};
|
|
573
|
+
/**
|
|
574
|
+
* Name of the user's account.
|
|
575
|
+
*/
|
|
576
|
+
accountName: string;
|
|
577
|
+
};
|
|
529
578
|
/**
|
|
530
579
|
* Props for the Header component.
|
|
531
580
|
*/
|
|
@@ -570,31 +619,7 @@ export type HeaderProps = {
|
|
|
570
619
|
/**
|
|
571
620
|
* State of the user session.
|
|
572
621
|
*/
|
|
573
|
-
sessionState?:
|
|
574
|
-
/**
|
|
575
|
-
* Indicates if the user is signed in.
|
|
576
|
-
*/
|
|
577
|
-
signedIn: boolean;
|
|
578
|
-
/**
|
|
579
|
-
* Account information.
|
|
580
|
-
*/
|
|
581
|
-
account: {
|
|
582
|
-
/**
|
|
583
|
-
* Links related to the account.
|
|
584
|
-
*/
|
|
585
|
-
links: {
|
|
586
|
-
/**
|
|
587
|
-
* Dashboard link information.
|
|
588
|
-
*/
|
|
589
|
-
dashboard: {
|
|
590
|
-
/**
|
|
591
|
-
* URL for the dashboard link.
|
|
592
|
-
*/
|
|
593
|
-
href: string;
|
|
594
|
-
};
|
|
595
|
-
};
|
|
596
|
-
};
|
|
597
|
-
};
|
|
622
|
+
sessionState?: HeaderSessionState;
|
|
598
623
|
/**
|
|
599
624
|
* Array of themed scrollpoints. The header will change its appearance based on the scrollpoint in view.
|
|
600
625
|
*/
|
|
@@ -658,50 +683,63 @@ export default Icon;
|
|
|
658
683
|
//# sourceMappingURL=Icon.d.ts.map
|
|
659
684
|
}
|
|
660
685
|
|
|
661
|
-
declare module '@ably/ui/core/
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
iconColor?: ColorClass | ColorThemeSet;
|
|
669
|
-
} & React.AnchorHTMLAttributes<HTMLAnchorElement>;
|
|
670
|
-
const LinkButton: React.FC<LinkButtonProps>;
|
|
671
|
-
export default LinkButton;
|
|
672
|
-
//# sourceMappingURL=LinkButton.d.ts.map
|
|
686
|
+
declare module '@ably/ui/core/LegacyMeganav/MeganavControl/component' {
|
|
687
|
+
export default MeganavControl;
|
|
688
|
+
function MeganavControl(): {
|
|
689
|
+
teardown: () => void;
|
|
690
|
+
clear: () => void;
|
|
691
|
+
}[];
|
|
692
|
+
//# sourceMappingURL=component.d.ts.map
|
|
673
693
|
}
|
|
674
694
|
|
|
675
|
-
declare module '@ably/ui/core/
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
695
|
+
declare module '@ably/ui/core/LegacyMeganav/MeganavControlMobileDropdown/component' {
|
|
696
|
+
export default MeganavControlMobileDropdown;
|
|
697
|
+
function MeganavControlMobileDropdown({ clearPanels }: {
|
|
698
|
+
clearPanels: any;
|
|
699
|
+
}): {
|
|
700
|
+
teardown: () => void;
|
|
701
|
+
clear: () => void;
|
|
680
702
|
};
|
|
681
|
-
|
|
682
|
-
export default Loader;
|
|
683
|
-
//# sourceMappingURL=Loader.d.ts.map
|
|
703
|
+
//# sourceMappingURL=component.d.ts.map
|
|
684
704
|
}
|
|
685
705
|
|
|
686
|
-
declare module '@ably/ui/core/
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
logoAlt?: string;
|
|
692
|
-
href?: string;
|
|
693
|
-
additionalImgAttrs?: object;
|
|
694
|
-
additionalLinkAttrs?: object;
|
|
695
|
-
theme?: "light" | "dark";
|
|
696
|
-
variant?: "default" | "mono";
|
|
697
|
-
orientation?: "default" | "stacked";
|
|
698
|
-
};
|
|
699
|
-
const _default: React.MemoExoticComponent<({ dataId, href, additionalImgAttrs, additionalLinkAttrs, theme, variant, orientation, logoUrl, logoAlt, }: LogoProps) => import("react/jsx-runtime").JSX.Element>;
|
|
706
|
+
declare module '@ably/ui/core/LegacyMeganav/MeganavControlMobilePanelClose/component' {
|
|
707
|
+
function _default(): {
|
|
708
|
+
teardown: () => void;
|
|
709
|
+
clear: () => void;
|
|
710
|
+
}[];
|
|
700
711
|
export default _default;
|
|
701
|
-
//# sourceMappingURL=
|
|
712
|
+
//# sourceMappingURL=component.d.ts.map
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
declare module '@ably/ui/core/LegacyMeganav/MeganavControlMobilePanelOpen/component' {
|
|
716
|
+
function _default(): {
|
|
717
|
+
teardown: () => void;
|
|
718
|
+
clear: () => void;
|
|
719
|
+
}[];
|
|
720
|
+
export default _default;
|
|
721
|
+
//# sourceMappingURL=component.d.ts.map
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
declare module '@ably/ui/core/LegacyMeganav/MeganavSearchAutocomplete/component' {
|
|
725
|
+
function _default(apiKey: any): {
|
|
726
|
+
teardown: () => void;
|
|
727
|
+
clear: () => void;
|
|
728
|
+
}[];
|
|
729
|
+
export default _default;
|
|
730
|
+
//# sourceMappingURL=component.d.ts.map
|
|
702
731
|
}
|
|
703
732
|
|
|
704
|
-
declare module '@ably/ui/core/
|
|
733
|
+
declare module '@ably/ui/core/LegacyMeganav/MeganavSearchSuggestions/component' {
|
|
734
|
+
export default MeganavSearchSuggestions;
|
|
735
|
+
function MeganavSearchSuggestions(): {
|
|
736
|
+
teardown: () => void;
|
|
737
|
+
clear: () => void;
|
|
738
|
+
};
|
|
739
|
+
//# sourceMappingURL=component.d.ts.map
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
declare module '@ably/ui/core/LegacyMeganav/component' {
|
|
705
743
|
export default function Meganav({ themeName, addSearchApiKey }: {
|
|
706
744
|
themeName: any;
|
|
707
745
|
addSearchApiKey: any;
|
|
@@ -709,7 +747,7 @@ export default function Meganav({ themeName, addSearchApiKey }: {
|
|
|
709
747
|
//# sourceMappingURL=component.d.ts.map
|
|
710
748
|
}
|
|
711
749
|
|
|
712
|
-
declare module '@ably/ui/core/
|
|
750
|
+
declare module '@ably/ui/core/LegacyMeganav' {
|
|
713
751
|
import { ReactNode } from "react";
|
|
714
752
|
import { ColorClass } from "@ably/ui/core/styles/colors/types";
|
|
715
753
|
export type MeganavTheme = {
|
|
@@ -726,6 +764,9 @@ export type MeganavPaths = {
|
|
|
726
764
|
logo?: string;
|
|
727
765
|
iconSprites: string;
|
|
728
766
|
ablyStack: string;
|
|
767
|
+
blogThumb1: string;
|
|
768
|
+
blogThumb2: string;
|
|
769
|
+
blogThumb3: string;
|
|
729
770
|
awsLogo?: string;
|
|
730
771
|
};
|
|
731
772
|
export type MeganavPanels = {
|
|
@@ -760,7 +801,7 @@ export type MeganavSessionState = {
|
|
|
760
801
|
href: string;
|
|
761
802
|
};
|
|
762
803
|
};
|
|
763
|
-
export type
|
|
804
|
+
export type MeganavNoticeProps = {
|
|
764
805
|
props: {
|
|
765
806
|
title: string;
|
|
766
807
|
bodyText: string;
|
|
@@ -779,7 +820,7 @@ export type NoticeApiProps = {
|
|
|
779
820
|
type MeganavProps = {
|
|
780
821
|
paths?: MeganavPaths;
|
|
781
822
|
themeName: "white" | "black" | "transparentToWhite";
|
|
782
|
-
notice?:
|
|
823
|
+
notice?: MeganavNoticeProps;
|
|
783
824
|
loginLink?: string;
|
|
784
825
|
urlBase?: string;
|
|
785
826
|
addSearchApiKey: string;
|
|
@@ -788,11 +829,119 @@ type MeganavProps = {
|
|
|
788
829
|
};
|
|
789
830
|
const Meganav: ({ paths, themeName, notice, loginLink, urlBase, addSearchApiKey, statusUrl, searchDataId, }: MeganavProps) => import("react/jsx-runtime").JSX.Element;
|
|
790
831
|
export default Meganav;
|
|
832
|
+
//# sourceMappingURL=LegacyMeganav.d.ts.map
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
declare module '@ably/ui/core/LinkButton' {
|
|
836
|
+
import React from "react";
|
|
837
|
+
import { ButtonPropsBase } from "@ably/ui/core/Button";
|
|
838
|
+
import { ColorClass, ColorThemeSet } from "@ably/ui/core/styles/colors/types";
|
|
839
|
+
export type LinkButtonProps = ButtonPropsBase & {
|
|
840
|
+
disabled?: boolean;
|
|
841
|
+
onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;
|
|
842
|
+
iconColor?: ColorClass | ColorThemeSet;
|
|
843
|
+
} & React.AnchorHTMLAttributes<HTMLAnchorElement>;
|
|
844
|
+
const LinkButton: React.FC<LinkButtonProps>;
|
|
845
|
+
export default LinkButton;
|
|
846
|
+
//# sourceMappingURL=LinkButton.d.ts.map
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
declare module '@ably/ui/core/Loader' {
|
|
850
|
+
type LoaderProps = {
|
|
851
|
+
size?: string;
|
|
852
|
+
ringColor?: string;
|
|
853
|
+
additionalCSS?: string;
|
|
854
|
+
};
|
|
855
|
+
const Loader: ({ ringColor, size, additionalCSS, }: LoaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
856
|
+
export default Loader;
|
|
857
|
+
//# sourceMappingURL=Loader.d.ts.map
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
declare module '@ably/ui/core/Logo' {
|
|
861
|
+
import React from "react";
|
|
862
|
+
type LogoProps = {
|
|
863
|
+
dataId?: string;
|
|
864
|
+
logoUrl?: string;
|
|
865
|
+
logoAlt?: string;
|
|
866
|
+
href?: string;
|
|
867
|
+
additionalImgAttrs?: object;
|
|
868
|
+
additionalLinkAttrs?: object;
|
|
869
|
+
theme?: "light" | "dark";
|
|
870
|
+
variant?: "default" | "mono";
|
|
871
|
+
orientation?: "default" | "stacked";
|
|
872
|
+
};
|
|
873
|
+
const _default: React.MemoExoticComponent<({ dataId, href, additionalImgAttrs, additionalLinkAttrs, theme, variant, orientation, logoUrl, logoAlt, }: LogoProps) => import("react/jsx-runtime").JSX.Element>;
|
|
874
|
+
export default _default;
|
|
875
|
+
//# sourceMappingURL=Logo.d.ts.map
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
declare module '@ably/ui/core/Meganav/Meganav' {
|
|
879
|
+
import { HeaderSessionState } from ".@ably/ui/core/Header";
|
|
880
|
+
export type MeganavProps = {
|
|
881
|
+
sessionState: HeaderSessionState;
|
|
882
|
+
searchDataId: string;
|
|
883
|
+
};
|
|
884
|
+
const Meganav: ({ sessionState, searchDataId }: MeganavProps) => import("react/jsx-runtime").JSX.Element;
|
|
885
|
+
export default Meganav;
|
|
791
886
|
//# sourceMappingURL=Meganav.d.ts.map
|
|
792
887
|
}
|
|
793
888
|
|
|
889
|
+
declare module '@ably/ui/core/Meganav/MeganavMobile' {
|
|
890
|
+
import { AccordionData } from ".@ably/ui/core/Accordion/types";
|
|
891
|
+
export const MeganavMobile: ({ mobileNavItems, }: {
|
|
892
|
+
mobileNavItems: AccordionData[];
|
|
893
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
894
|
+
//# sourceMappingURL=MeganavMobile.d.ts.map
|
|
895
|
+
}
|
|
896
|
+
|
|
897
|
+
declare module '@ably/ui/core/Meganav/MeganavPanel' {
|
|
898
|
+
import React from "react";
|
|
899
|
+
import { FlyoutPanelHighlight, FlyoutPanelList } from "@ably/ui/core/data";
|
|
900
|
+
export const MeganavPanel: ({ displayProductTile, panelLeft, panelLeftClassName, panelRightHeading, panelRightItems, panelRightBottom, }: {
|
|
901
|
+
displayProductTile?: boolean;
|
|
902
|
+
panelLeft?: FlyoutPanelHighlight;
|
|
903
|
+
panelLeftClassName?: string;
|
|
904
|
+
panelRightHeading?: string;
|
|
905
|
+
panelRightItems: FlyoutPanelList[];
|
|
906
|
+
panelRightBottom?: React.ReactNode;
|
|
907
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
908
|
+
//# sourceMappingURL=MeganavPanel.d.ts.map
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
declare module '@ably/ui/core/Meganav/data' {
|
|
912
|
+
import React from "react";
|
|
913
|
+
import { IconName } from ".@ably/ui/core/Icon/types";
|
|
914
|
+
export type FlyoutPanelList = {
|
|
915
|
+
label: string;
|
|
916
|
+
icon: IconName;
|
|
917
|
+
link: string;
|
|
918
|
+
isMobile?: boolean;
|
|
919
|
+
};
|
|
920
|
+
export type FlyoutPanelHighlight = {
|
|
921
|
+
heading: string;
|
|
922
|
+
content: string;
|
|
923
|
+
labelLink: string;
|
|
924
|
+
url: string;
|
|
925
|
+
image: string;
|
|
926
|
+
};
|
|
927
|
+
export type MenuItem = {
|
|
928
|
+
name: string;
|
|
929
|
+
link?: string;
|
|
930
|
+
isHiddenMobile?: boolean;
|
|
931
|
+
content?: React.ReactNode;
|
|
932
|
+
panelClassName?: string;
|
|
933
|
+
};
|
|
934
|
+
export const menuItemLinks: {
|
|
935
|
+
name: string;
|
|
936
|
+
link: string;
|
|
937
|
+
isHiddenMobile: boolean;
|
|
938
|
+
}[];
|
|
939
|
+
export const menuItemsForHeader: MenuItem[];
|
|
940
|
+
//# sourceMappingURL=data.d.ts.map
|
|
941
|
+
}
|
|
942
|
+
|
|
794
943
|
declare module '@ably/ui/core/MeganavBlogPostsList' {
|
|
795
|
-
import { AbsUrl } from "@ably/ui/core/
|
|
944
|
+
import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
|
|
796
945
|
type MeganavBlogPostsListProps = {
|
|
797
946
|
recentBlogPosts: {
|
|
798
947
|
link: string;
|
|
@@ -807,7 +956,7 @@ export default MeganavBlogPostsList;
|
|
|
807
956
|
}
|
|
808
957
|
|
|
809
958
|
declare module '@ably/ui/core/MeganavContentCompany' {
|
|
810
|
-
import { AbsUrl, MeganavPaths } from "@ably/ui/core/
|
|
959
|
+
import { AbsUrl, MeganavPaths } from "@ably/ui/core/LegacyMeganav";
|
|
811
960
|
type MeganavContentCompanyProps = {
|
|
812
961
|
absUrl: AbsUrl;
|
|
813
962
|
paths?: MeganavPaths;
|
|
@@ -818,7 +967,7 @@ export default MeganavContentCompany;
|
|
|
818
967
|
}
|
|
819
968
|
|
|
820
969
|
declare module '@ably/ui/core/MeganavContentDevelopers' {
|
|
821
|
-
import { AbsUrl } from "@ably/ui/core/
|
|
970
|
+
import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
|
|
822
971
|
const MeganavContentDevelopers: ({ absUrl, statusUrl, }: {
|
|
823
972
|
absUrl: AbsUrl;
|
|
824
973
|
statusUrl: string;
|
|
@@ -828,7 +977,7 @@ export default MeganavContentDevelopers;
|
|
|
828
977
|
}
|
|
829
978
|
|
|
830
979
|
declare module '@ably/ui/core/MeganavContentProducts' {
|
|
831
|
-
import { AbsUrl, MeganavPaths } from "@ably/ui/core/
|
|
980
|
+
import { AbsUrl, MeganavPaths } from "@ably/ui/core/LegacyMeganav";
|
|
832
981
|
type MeganavContentProductsProps = {
|
|
833
982
|
paths?: MeganavPaths;
|
|
834
983
|
absUrl: AbsUrl;
|
|
@@ -839,7 +988,7 @@ export default MeganavContentProducts;
|
|
|
839
988
|
}
|
|
840
989
|
|
|
841
990
|
declare module '@ably/ui/core/MeganavContentUseCases' {
|
|
842
|
-
import { AbsUrl } from "@ably/ui/core/
|
|
991
|
+
import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
|
|
843
992
|
const MeganavContentUseCases: ({ absUrl }: {
|
|
844
993
|
absUrl: AbsUrl;
|
|
845
994
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -847,18 +996,9 @@ export default MeganavContentUseCases;
|
|
|
847
996
|
//# sourceMappingURL=MeganavContentUseCases.d.ts.map
|
|
848
997
|
}
|
|
849
998
|
|
|
850
|
-
declare module '@ably/ui/core/MeganavControl/component' {
|
|
851
|
-
export default MeganavControl;
|
|
852
|
-
function MeganavControl(): {
|
|
853
|
-
teardown: () => void;
|
|
854
|
-
clear: () => void;
|
|
855
|
-
}[];
|
|
856
|
-
//# sourceMappingURL=component.d.ts.map
|
|
857
|
-
}
|
|
858
|
-
|
|
859
999
|
declare module '@ably/ui/core/MeganavControl' {
|
|
860
1000
|
import { ReactNode } from "react";
|
|
861
|
-
import { MeganavTheme } from "@ably/ui/core/
|
|
1001
|
+
import { MeganavTheme } from "@ably/ui/core/LegacyMeganav";
|
|
862
1002
|
type MeganavControlProps = {
|
|
863
1003
|
ariaControls: string;
|
|
864
1004
|
ariaLabel: string;
|
|
@@ -871,19 +1011,8 @@ export default MeganavControl;
|
|
|
871
1011
|
//# sourceMappingURL=MeganavControl.d.ts.map
|
|
872
1012
|
}
|
|
873
1013
|
|
|
874
|
-
declare module '@ably/ui/core/MeganavControlMobileDropdown/component' {
|
|
875
|
-
export default MeganavControlMobileDropdown;
|
|
876
|
-
function MeganavControlMobileDropdown({ clearPanels }: {
|
|
877
|
-
clearPanels: any;
|
|
878
|
-
}): {
|
|
879
|
-
teardown: () => void;
|
|
880
|
-
clear: () => void;
|
|
881
|
-
};
|
|
882
|
-
//# sourceMappingURL=component.d.ts.map
|
|
883
|
-
}
|
|
884
|
-
|
|
885
1014
|
declare module '@ably/ui/core/MeganavControlMobileDropdown' {
|
|
886
|
-
import { MeganavTheme } from "@ably/ui/core/
|
|
1015
|
+
import { MeganavTheme } from "@ably/ui/core/LegacyMeganav";
|
|
887
1016
|
const MeganavControlMobileDropdown: ({ theme }: {
|
|
888
1017
|
theme: MeganavTheme;
|
|
889
1018
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -891,15 +1020,6 @@ export default MeganavControlMobileDropdown;
|
|
|
891
1020
|
//# sourceMappingURL=MeganavControlMobileDropdown.d.ts.map
|
|
892
1021
|
}
|
|
893
1022
|
|
|
894
|
-
declare module '@ably/ui/core/MeganavControlMobilePanelClose/component' {
|
|
895
|
-
function _default(): {
|
|
896
|
-
teardown: () => void;
|
|
897
|
-
clear: () => void;
|
|
898
|
-
}[];
|
|
899
|
-
export default _default;
|
|
900
|
-
//# sourceMappingURL=component.d.ts.map
|
|
901
|
-
}
|
|
902
|
-
|
|
903
1023
|
declare module '@ably/ui/core/MeganavControlMobilePanelClose' {
|
|
904
1024
|
type MeganavControlMobilePanelCloseProps = {
|
|
905
1025
|
ariaControls: string;
|
|
@@ -910,15 +1030,6 @@ export default MeganavControlMobilePanelClose;
|
|
|
910
1030
|
//# sourceMappingURL=MeganavControlMobilePanelClose.d.ts.map
|
|
911
1031
|
}
|
|
912
1032
|
|
|
913
|
-
declare module '@ably/ui/core/MeganavControlMobilePanelOpen/component' {
|
|
914
|
-
function _default(): {
|
|
915
|
-
teardown: () => void;
|
|
916
|
-
clear: () => void;
|
|
917
|
-
}[];
|
|
918
|
-
export default _default;
|
|
919
|
-
//# sourceMappingURL=component.d.ts.map
|
|
920
|
-
}
|
|
921
|
-
|
|
922
1033
|
declare module '@ably/ui/core/MeganavControlMobilePanelOpen' {
|
|
923
1034
|
import { ReactNode } from "react";
|
|
924
1035
|
type MeganavControlMobilePanelOpenProps = {
|
|
@@ -932,7 +1043,7 @@ export default MeganavControlMobilePanelOpen;
|
|
|
932
1043
|
|
|
933
1044
|
declare module '@ably/ui/core/MeganavItemsDesktop' {
|
|
934
1045
|
import React from "react";
|
|
935
|
-
import { AbsUrl, MeganavPanels, MeganavPaths, MeganavTheme } from "@ably/ui/core/
|
|
1046
|
+
import { AbsUrl, MeganavPanels, MeganavPaths, MeganavTheme } from "@ably/ui/core/LegacyMeganav";
|
|
936
1047
|
type MeganavDesktopItems = {
|
|
937
1048
|
panels: MeganavPanels;
|
|
938
1049
|
paths?: MeganavPaths;
|
|
@@ -948,7 +1059,7 @@ export default _default;
|
|
|
948
1059
|
|
|
949
1060
|
declare module '@ably/ui/core/MeganavItemsMobile' {
|
|
950
1061
|
import React from "react";
|
|
951
|
-
import { AbsUrl, MeganavPanels, MeganavPaths, MeganavSessionState, MeganavTheme } from "@ably/ui/core/
|
|
1062
|
+
import { AbsUrl, MeganavPanels, MeganavPaths, MeganavSessionState, MeganavTheme } from "@ably/ui/core/LegacyMeganav";
|
|
952
1063
|
type MeganavItemsMobileProps = {
|
|
953
1064
|
panels: MeganavPanels;
|
|
954
1065
|
paths?: MeganavPaths;
|
|
@@ -965,7 +1076,7 @@ export default _default;
|
|
|
965
1076
|
}
|
|
966
1077
|
|
|
967
1078
|
declare module '@ably/ui/core/MeganavItemsSignedIn' {
|
|
968
|
-
import { AbsUrl, MeganavSessionState, MeganavTheme } from "@ably/ui/core/
|
|
1079
|
+
import { AbsUrl, MeganavSessionState, MeganavTheme } from "@ably/ui/core/LegacyMeganav";
|
|
969
1080
|
type MeganavItemsSignedIn = {
|
|
970
1081
|
sessionState: MeganavSessionState;
|
|
971
1082
|
theme: MeganavTheme;
|
|
@@ -978,7 +1089,7 @@ export default MeganavItemsSignedIn;
|
|
|
978
1089
|
}
|
|
979
1090
|
|
|
980
1091
|
declare module '@ably/ui/core/MeganavSearch' {
|
|
981
|
-
import { AbsUrl } from "@ably/ui/core/
|
|
1092
|
+
import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
|
|
982
1093
|
const MeganavSearch: ({ absUrl, dataId, }: {
|
|
983
1094
|
absUrl: AbsUrl;
|
|
984
1095
|
dataId?: string;
|
|
@@ -987,15 +1098,6 @@ export default MeganavSearch;
|
|
|
987
1098
|
//# sourceMappingURL=MeganavSearch.d.ts.map
|
|
988
1099
|
}
|
|
989
1100
|
|
|
990
|
-
declare module '@ably/ui/core/MeganavSearchAutocomplete/component' {
|
|
991
|
-
function _default(apiKey: any): {
|
|
992
|
-
teardown: () => void;
|
|
993
|
-
clear: () => void;
|
|
994
|
-
}[];
|
|
995
|
-
export default _default;
|
|
996
|
-
//# sourceMappingURL=component.d.ts.map
|
|
997
|
-
}
|
|
998
|
-
|
|
999
1101
|
declare module '@ably/ui/core/MeganavSearchAutocomplete' {
|
|
1000
1102
|
const MeganavSearchAutocomplete: () => import("react/jsx-runtime").JSX.Element;
|
|
1001
1103
|
export default MeganavSearchAutocomplete;
|
|
@@ -1003,7 +1105,7 @@ export default MeganavSearchAutocomplete;
|
|
|
1003
1105
|
}
|
|
1004
1106
|
|
|
1005
1107
|
declare module '@ably/ui/core/MeganavSearchPanel' {
|
|
1006
|
-
import { AbsUrl } from "@ably/ui/core/
|
|
1108
|
+
import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
|
|
1007
1109
|
const MeganavSearchPanel: ({ absUrl }: {
|
|
1008
1110
|
absUrl: AbsUrl;
|
|
1009
1111
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1011,17 +1113,8 @@ export default MeganavSearchPanel;
|
|
|
1011
1113
|
//# sourceMappingURL=MeganavSearchPanel.d.ts.map
|
|
1012
1114
|
}
|
|
1013
1115
|
|
|
1014
|
-
declare module '@ably/ui/core/MeganavSearchSuggestions/component' {
|
|
1015
|
-
export default MeganavSearchSuggestions;
|
|
1016
|
-
function MeganavSearchSuggestions(): {
|
|
1017
|
-
teardown: () => void;
|
|
1018
|
-
clear: () => void;
|
|
1019
|
-
};
|
|
1020
|
-
//# sourceMappingURL=component.d.ts.map
|
|
1021
|
-
}
|
|
1022
|
-
|
|
1023
1116
|
declare module '@ably/ui/core/MeganavSearchSuggestions' {
|
|
1024
|
-
import { AbsUrl } from "@ably/ui/core/
|
|
1117
|
+
import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
|
|
1025
1118
|
type MeganavSearchSuggestionsProps = {
|
|
1026
1119
|
absUrl: AbsUrl;
|
|
1027
1120
|
displaySupportLink: boolean;
|
|
@@ -1248,7 +1341,7 @@ export default ProductTile;
|
|
|
1248
1341
|
|
|
1249
1342
|
declare module '@ably/ui/core/SignOutLink' {
|
|
1250
1343
|
import { MouseEventHandler, ReactNode } from "react";
|
|
1251
|
-
import { AbsUrl } from "@ably/ui/core/
|
|
1344
|
+
import { AbsUrl } from "@ably/ui/core/LegacyMeganav";
|
|
1252
1345
|
type SignOutLinkProps = {
|
|
1253
1346
|
token: string;
|
|
1254
1347
|
href: string;
|
|
@@ -1462,13 +1555,6 @@ export function queryIdAll(val: any, root?: Document): NodeListOf<Element>;
|
|
|
1462
1555
|
//# sourceMappingURL=dom-query.d.ts.map
|
|
1463
1556
|
}
|
|
1464
1557
|
|
|
1465
|
-
declare module '@ably/ui/core/hooks/use-rails-ujs-hooks' {
|
|
1466
|
-
import { RefObject } from "react";
|
|
1467
|
-
const useRailsUjsLinks: () => RefObject<HTMLDivElement>;
|
|
1468
|
-
export default useRailsUjsLinks;
|
|
1469
|
-
//# sourceMappingURL=use-rails-ujs-hooks.d.ts.map
|
|
1470
|
-
}
|
|
1471
|
-
|
|
1472
1558
|
declare module '@ably/ui/core/hubspot-chat-toggle' {
|
|
1473
1559
|
export default function toggleChatWidget(params: any): (() => void) | undefined;
|
|
1474
1560
|
//# sourceMappingURL=hubspot-chat-toggle.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ably/ui",
|
|
3
|
-
"version": "15.6.0-dev.
|
|
3
|
+
"version": "15.6.0-dev.bdcefb0",
|
|
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",
|
|
@@ -1,2 +0,0 @@
|
|
|
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
|
package/core/Meganav.js
DELETED
|
@@ -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"./Meganav/component.json";import MeganavScripts from"./Meganav/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=Meganav.js.map
|
package/core/Meganav.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/Meganav.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 \"./Meganav/component.json\";\nimport MeganavScripts from \"./Meganav/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 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 NoticeApiProps = {\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?: NoticeApiProps;\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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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{queryIdAll}from"../dom-query";import{selectRecentBlogPosts}from"../remote-blogs-posts";import{connectState}from"../remote-data-store";const template=({link,title,pubDate})=>{const[li,a,heading,copy]=["li","a","p","p"].map(el=>document.createElement(el));a.href=link;a.classList.add("ui-meganav-media","group");heading.textContent=title;heading.classList.add("ui-meganav-media-heading");copy.textContent=pubDate;copy.classList.add("ui-meganav-media-copy");a.appendChild(heading);a.appendChild(copy);li.appendChild(a);return li};export default(()=>{connectState(selectRecentBlogPosts,recentBlogPosts=>{if(Array.isArray(recentBlogPosts)&&recentBlogPosts.length>0){const sections=queryIdAll("meganav-company-panel-blog-section");const containers=queryIdAll("meganav-company-panel-recent-blog-posts");Array.from(containers).forEach(container=>{const fragment=document.createDocumentFragment();recentBlogPosts.forEach(post=>fragment.appendChild(template(post)));container.appendChild(fragment)});Array.from(sections).forEach(section=>section.classList.remove("hidden"))}})});
|
|
2
|
-
//# sourceMappingURL=component.js.map
|