@axos-web-dev/shared-components 1.0.77-patch.7 → 1.0.77-patch.8

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 (47) hide show
  1. package/dist/Blockquote/Blockquote.module.js +3 -3
  2. package/dist/Calculators/ApyCalculator/index.js +1 -1
  3. package/dist/Carousel/index.js +9 -9
  4. package/dist/Comparison/Comparison.js +4 -4
  5. package/dist/HeroBanner/HeroBanner.css.d.ts +2 -0
  6. package/dist/HeroBanner/HeroBanner.css.js +4 -0
  7. package/dist/HeroBanner/HeroBanner.d.ts +1 -1
  8. package/dist/HeroBanner/HeroBanner.interface.d.ts +3 -0
  9. package/dist/HeroBanner/HeroBanner.js +47 -1
  10. package/dist/HeroBanner/index.js +3 -1
  11. package/dist/IconBillboard/IconBillboard.css.d.ts +1 -0
  12. package/dist/IconBillboard/IconBillboard.css.js +2 -0
  13. package/dist/IconBillboard/IconBillboard.d.ts +1 -2
  14. package/dist/IconBillboard/IconBillboard.js +30 -85
  15. package/dist/IconBillboard/index.js +3 -3
  16. package/dist/IconBillboard/sections/CallToActionSection.d.ts +12 -0
  17. package/dist/IconBillboard/sections/CallToActionSection.js +101 -0
  18. package/dist/IconBillboard/sections/HeaderSection.d.ts +11 -0
  19. package/dist/IconBillboard/sections/HeaderSection.js +23 -0
  20. package/dist/IconBillboard/sections/IconSection.d.ts +7 -0
  21. package/dist/IconBillboard/sections/IconSection.js +18 -0
  22. package/dist/IconBillboard/sections/ItemsSection.d.ts +11 -0
  23. package/dist/IconBillboard/sections/ItemsSection.js +11 -0
  24. package/dist/IconBillboard/sections/LayoutSection.d.ts +8 -0
  25. package/dist/IconBillboard/sections/LayoutSection.js +6 -0
  26. package/dist/ImageBillboard/ImageBillboardSet.js +1 -1
  27. package/dist/ImageLink/ImageLinkSet.js +3 -3
  28. package/dist/Insight/Featured/CategorySelector.js +1 -1
  29. package/dist/Insight/Featured/Featured.js +9 -9
  30. package/dist/Insight/Featured/Header.js +8 -8
  31. package/dist/NavigationMenu/AxosAdvisor/NavBar.module.js +52 -52
  32. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.module.js +53 -53
  33. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.module.js +16 -16
  34. package/dist/NavigationMenu/AxosBank/NavBar.module.js +39 -39
  35. package/dist/NavigationMenu/AxosClearing/NavBar.module.js +37 -37
  36. package/dist/WalnutIframe/wrapper.module.js +3 -3
  37. package/dist/assets/Blockquote/Blockquote.css.css +68 -68
  38. package/dist/assets/HeroBanner/HeroBanner.css +12 -0
  39. package/dist/assets/IconBillboard/IconBillboard.css +21 -1
  40. package/dist/assets/NavigationMenu/AxosAdvisor/NavBar.css.css +597 -597
  41. package/dist/assets/NavigationMenu/AxosAdvisorServices/NavBar.css.css +618 -618
  42. package/dist/assets/NavigationMenu/AxosBank/MobileMenu/MobileMenu.css.css +191 -191
  43. package/dist/assets/NavigationMenu/AxosBank/NavBar.css.css +473 -473
  44. package/dist/assets/NavigationMenu/AxosClearing/NavBar.css.css +458 -458
  45. package/dist/assets/WalnutIframe/wrapper.css.css +48 -49
  46. package/dist/main.js +6 -4
  47. package/package.json +133 -133
@@ -1,6 +1,6 @@
1
- import '../assets/Blockquote/Blockquote.css.css';const quote_spacer = "_quote_spacer_1r8g1_1";
2
- const author = "_author_1r8g1_13";
3
- const quote = "_quote_1r8g1_1";
1
+ import '../assets/Blockquote/Blockquote.css.css';const quote_spacer = "_quote_spacer_1mzku_1";
2
+ const author = "_author_1mzku_7";
3
+ const quote = "_quote_1mzku_1";
4
4
  const css = {
5
5
  quote_spacer,
6
6
  author,
@@ -18,7 +18,7 @@ const ApyCalculator = ({
18
18
  const calculator_variant = getVariant(variant);
19
19
  const AXOS_ONE_APY = +process.env.NEXT_PUBLIC_AXOS_ONE_APY;
20
20
  const [initialDeposit, setInititalDeposit] = useState(1e3);
21
- const [APR, setAPR] = useState(AXOS_ONE_APY - 0.11);
21
+ const [APR, setAPR] = useState(AXOS_ONE_APY - 0.1);
22
22
  const [APY, setAPY] = useState(AXOS_ONE_APY);
23
23
  const [months, setMonths] = useState(12);
24
24
  const [compounding, setCompounding] = useState(360);
@@ -1,10 +1,12 @@
1
1
  "use client";
2
2
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
+ import clsx from "clsx";
3
4
  import React, { useEffect, Children, cloneElement } from "react";
5
+ import { getVariant } from "../utils/getVariant.js";
4
6
  import { section_text } from "../IconBillboard/IconBillboard.css.js";
5
7
  import "../icons/ArrowIcon/ArrowIcon.css.js";
6
8
  import "../icons/CheckIcon/CheckIcon.css.js";
7
- import '../assets/VideoWrapper/VideoWrapper.css';import '../assets/VideoTile/VideoTile.css';import '../assets/TopicalNavSet/TopicalNavSet.css';import '../assets/TopicalNavItem/TopicalNavItem.css';import '../assets/Topic/Topic.css';import '../assets/TextBlock/TextBlock.css';import '../assets/SocialMediaBar/SocialMediaBar.css';import '../assets/SecondaryFooter/SecondaryFooter.css';import '../assets/Pagination/Pagination.css';import '../assets/PageNavSet/PageNavigationSet.css';import '../assets/NavigationMenu/LaVictoire/NavBar.css';import '../assets/NavigationMenu/AxosALTS/NavBar.css';import '../assets/NavigationMenu/AxosClearing/NavBar.css';import '../assets/NavigationMenu/AxosBank/SubNavbar.css';import '../assets/NavigationMenu/AxosBank/NavBar.css';import '../assets/NavigationMenu/AxosAdvisorServices/SubNavbar.css';import '../assets/NavigationMenu/AxosAdvisorServices/NavBar.css';import '../assets/NavigationMenu/AxosAdvisor/SubNavbar.css';import '../assets/NavigationMenu/AxosAdvisor/NavBar.css';import '../assets/Insight/Insight.css';import '../assets/Insight/Featured/Header.css';import '../assets/Insight/Featured/CategorySelector.css';import '../assets/Insight/Featured/Featured.css';import '../assets/ImageLink/ImageLink.css';import '../assets/HelpArticle/HelpArticle.css';import '../assets/FooterSiteMap/AxosBank/FooterSiteMap.css';import '../assets/FooterDisclosure/LVF/LaVictorieFooter.css';import '../assets/DownloadTile/DownloadTile.css';import '../assets/CollectInformationAlert/CollectInformationAlert.css';import '../assets/CallToActionBar/CallToActionBar.css';import '../assets/AwardsItem/AwardsItem.css';import '../assets/AwardsBanner/AwardsBanner.css';import '../assets/Auth/SignIn.css';import '../assets/Auth/ErrorAlert.css';import '../assets/Calculators/MarginTradingCalculator/MarginTradingCalculator.css';import '../assets/Forms/QuickPricer/UserInformation.css';import '../assets/Forms/QuickPricer/QuickPricerResults.css';import '../assets/Modal/Modal.css';import '../assets/BulletItem/BulletItem.css';import '../assets/Typography/Typography.css';import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/DownloadIcon/DownloadIcon.css';import '../assets/themes/victorie.css';import '../assets/themes/premier.css';import '../assets/themes/axos.css';/* empty css */
9
+ import '../assets/VideoWrapper/VideoWrapper.css';import '../assets/VideoTile/VideoTile.css';import '../assets/TopicalNavSet/TopicalNavSet.css';import '../assets/TopicalNavItem/TopicalNavItem.css';import '../assets/Topic/Topic.css';import '../assets/TextBlock/TextBlock.css';import '../assets/SocialMediaBar/SocialMediaBar.css';import '../assets/SecondaryFooter/SecondaryFooter.css';import '../assets/Pagination/Pagination.css';import '../assets/PageNavSet/PageNavigationSet.css';import '../assets/NavigationMenu/LaVictoire/NavBar.css';import '../assets/NavigationMenu/AxosALTS/NavBar.css';import '../assets/NavigationMenu/AxosClearing/NavBar.css';import '../assets/NavigationMenu/AxosBank/SubNavbar.css';import '../assets/NavigationMenu/AxosBank/NavBar.css';import '../assets/NavigationMenu/AxosAdvisorServices/SubNavbar.css';import '../assets/NavigationMenu/AxosAdvisorServices/NavBar.css';import '../assets/NavigationMenu/AxosAdvisor/SubNavbar.css';import '../assets/NavigationMenu/AxosAdvisor/NavBar.css';import '../assets/Insight/Insight.css';import '../assets/Insight/Featured/Header.css';import '../assets/Insight/Featured/CategorySelector.css';import '../assets/Insight/Featured/Featured.css';import '../assets/ImageLink/ImageLink.css';import '../assets/HelpArticle/HelpArticle.css';import '../assets/FooterSiteMap/AxosBank/FooterSiteMap.css';import '../assets/FooterDisclosure/LVF/LaVictorieFooter.css';import '../assets/DownloadTile/DownloadTile.css';import '../assets/CollectInformationAlert/CollectInformationAlert.css';import '../assets/CallToActionBar/CallToActionBar.css';import '../assets/AwardsItem/AwardsItem.css';import '../assets/AwardsBanner/AwardsBanner.css';import '../assets/Auth/SignIn.css';import '../assets/Auth/ErrorAlert.css';import '../assets/Calculators/MarginTradingCalculator/MarginTradingCalculator.css';import '../assets/Forms/QuickPricer/UserInformation.css';import '../assets/Modal/Modal.css';import '../assets/Forms/QuickPricer/QuickPricerResults.css';import '../assets/BulletItem/BulletItem.css';import '../assets/Typography/Typography.css';import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/DownloadIcon/DownloadIcon.css';import '../assets/themes/victorie.css';import '../assets/themes/premier.css';import '../assets/themes/axos.css';/* empty css */
8
10
  /* empty css */
9
11
  /* empty css */
10
12
  /* empty css */
@@ -13,23 +15,16 @@ import SvgQuoteIconGrey from "../icons/QuoteIconGrey.js";
13
15
  import SvgQuoteIconWhite from "../icons/QuoteIconWhite.js";
14
16
  import SvgQuoteIconYellow from "../icons/QuoteIconYellow.js";
15
17
  import "../utils/allowedAxosDomains.js";
16
- import { getVariant } from "../utils/getVariant.js";
17
- import clsx from "clsx";
18
18
  /* empty css */
19
19
  /* empty css */
20
20
  import "../Accordion/Accordion.js";
21
21
  import "../Accordion/Accordion.css.js";
22
22
  import "../AlertBanner/AlertBanner.css.js";
23
23
  import "../Article/Article.css.js";
24
- import "../Interstitial/Interstitial-variants.css.js";
25
- import "../Chevron/Chevron.css.js";
26
- /* empty css */
27
- import "../Modal/contextApi/store.js";
28
- import "../Button/Button.css.js";
29
- import "react-use";
30
24
  import "../ArticlesSet/ArticlesSet.css.js";
31
25
  import "../Calculators/calculator.css.js";
32
26
  import "../Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css.js";
27
+ import "../Button/Button.css.js";
33
28
  import "../Calculators/ApyCalculator/ApyCalculator.css.js";
34
29
  import "../Table/Table.css.js";
35
30
  import "../Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js";
@@ -52,8 +47,13 @@ import "../Forms/SalesforceFieldsForm.js";
52
47
  import "../Input/RadioButton.css.js";
53
48
  import "../Input/Checkbox.css.js";
54
49
  import "../LoadingIndicator/LoadingIndicator.css.js";
50
+ import "react-use";
51
+ import "../Chevron/Chevron.css.js";
52
+ import "../Interstitial/Interstitial-variants.css.js";
55
53
  import "../Inputs/Input.css.js";
56
54
  /* empty css */
55
+ /* empty css */
56
+ import "../Modal/contextApi/store.js";
57
57
  import "../Hyperlink/Hyperlink.css.js";
58
58
  /* empty css */
59
59
  import "iframe-resizer";
@@ -1,13 +1,13 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
+ import clsx from "clsx";
2
3
  import "react";
3
- import { BulletItem } from "../BulletItem/BulletItem.js";
4
- import { Chevron } from "../Chevron/index.js";
5
4
  import { getVariant } from "../utils/getVariant.js";
6
- import clsx from "clsx";
5
+ import { title } from "../IconBillboard/IconBillboard.css.js";
6
+ import { BulletItem } from "../BulletItem/BulletItem.js";
7
7
  import { Button } from "../Button/Button.js";
8
8
  import "../Button/Button.css.js";
9
9
  import "react-use";
10
- import { title } from "../IconBillboard/IconBillboard.css.js";
10
+ import { Chevron } from "../Chevron/index.js";
11
11
  import SvgStarIcon from "../icons/Star/index.js";
12
12
  import "../Accordion/Accordion.js";
13
13
  import "../Accordion/Accordion.css.js";
@@ -73,3 +73,5 @@ export declare const headline_text: import('@vanilla-extract/recipes').RuntimeFn
73
73
  }>;
74
74
  export declare const hero_btns: string;
75
75
  export declare const hero_embedded_image: string;
76
+ export declare const hero_sub_bullets: string;
77
+ export declare const hero_bullet_item: string;
@@ -18,14 +18,18 @@ var heroSupertag = createRuntimeFn({ defaultClassName: "_1ye8k3fd", variantClass
18
18
  var headline_text = createRuntimeFn({ defaultClassName: "_1ye8k3fi", variantClassNames: { variant: { primary: "_1ye8k3fj", secondary: "_1ye8k3fk", tertiary: "_1ye8k3fl", quaternary: "_1ye8k3fm" } }, defaultVariants: {}, compoundVariants: [] });
19
19
  var hero_btns = "_1ye8k3fn";
20
20
  var hero_embedded_image = "_1ye8k3fo";
21
+ var hero_sub_bullets = "_1ye8k3fp";
22
+ var hero_bullet_item = "_1ye8k3fq";
21
23
  export {
22
24
  headline_text,
23
25
  heroSupertag,
24
26
  hero_banner,
25
27
  hero_btns,
28
+ hero_bullet_item,
26
29
  hero_content,
27
30
  hero_embedded_image,
28
31
  hero_img,
32
+ hero_sub_bullets,
29
33
  hero_text,
30
34
  hero_wrapper,
31
35
  img_contents,
@@ -1,3 +1,3 @@
1
1
  import { HeroBannerInterface } from './HeroBanner.interface';
2
2
 
3
- export declare const HeroBanner: ({ id, eyebrow, headline, bodyCopy, callToActionRow, bannerType, image, imagePlacement, variant, selection, isSelectionBanner, }: HeroBannerInterface) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const HeroBanner: ({ id, eyebrow, headline, bodyCopy, bullets, subBodyCopy, callToActionRow, bannerType, image, imagePlacement, variant, selection, isSelectionBanner, }: HeroBannerInterface) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,4 @@
1
+ import { BulletItemProps } from '../BulletItem';
1
2
  import { ChevronProps } from '../Chevron/Chevron.interface';
2
3
  import { ReactNode } from 'react';
3
4
 
@@ -25,5 +26,7 @@ export interface HeroBannerInterface extends HeroBannerWithImage, HeroBannerWith
25
26
  eyebrow?: string | ReactNode;
26
27
  headline?: string | ReactNode;
27
28
  bodyCopy?: string | ReactNode;
29
+ bullets: BulletItemProps[];
30
+ subBodyCopy?: string | ReactNode;
28
31
  callToActionRow?: ChevronProps[];
29
32
  }
@@ -4,10 +4,18 @@ import "../Button/Button.css.js";
4
4
  import "react";
5
5
  import "react-use";
6
6
  import { Chevron } from "../Chevron/index.js";
7
+ import "../icons/ArrowIcon/ArrowIcon.css.js";
8
+ import "../icons/CheckIcon/CheckIcon.css.js";
9
+ import SvgCheckIcon from "../icons/CheckIcon/index.js";
10
+ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/DownloadIcon/DownloadIcon.css';import '../assets/themes/victorie.css';import '../assets/themes/premier.css';import '../assets/themes/axos.css';/* empty css */
11
+ /* empty css */
12
+ /* empty css */
13
+ /* empty css */
14
+ /* empty css */
7
15
  import { getVariant } from "../utils/getVariant.js";
8
16
  import Image from "next/image.js";
9
17
  import clsx from "clsx";
10
- import { logout, hero_banner, hero_wrapper, hero_content, reversed, hero_text, heroSupertag, headline_text, hero_btns, hero_img, img_contents, reversed_lg_image } from "./HeroBanner.css.js";
18
+ import { logout, hero_banner, hero_wrapper, hero_content, reversed, hero_text, heroSupertag, headline_text, hero_bullet_item, hero_sub_bullets, hero_btns, hero_img, img_contents, reversed_lg_image } from "./HeroBanner.css.js";
11
19
  import { lg_hero_banner, lg_hero_content, lg_hero_text, lg_hero_eyebrow, lg_headline_text, lg_hero_img, lg_hero_sizing } from "./LargeBanner.css.js";
12
20
  import { selection_section_icon_img, selection_section_icon, selection_section, selection_section_bg, selection_section_content, selection_headline_text } from "./SelectionBanner.css.js";
13
21
  const HeroBanner = ({
@@ -15,6 +23,8 @@ const HeroBanner = ({
15
23
  eyebrow,
16
24
  headline,
17
25
  bodyCopy,
26
+ bullets,
27
+ subBodyCopy,
18
28
  callToActionRow,
19
29
  bannerType = "Hero",
20
30
  image,
@@ -59,6 +69,42 @@ const HeroBanner = ({
59
69
  }
60
70
  ),
61
71
  /* @__PURE__ */ jsx(Fragment, { children: bodyCopy }),
72
+ bullets && bullets.length > 0 && /* @__PURE__ */ jsx("ul", { className: "list_unstyled mb_0 push_up_24", children: bullets.map(
73
+ ({ id: id2, icon, copy, subBullet }) => !subBullet ? /* @__PURE__ */ jsxs(
74
+ "li",
75
+ {
76
+ className: `list_item flex ${hero_bullet_item}`,
77
+ children: [
78
+ /* @__PURE__ */ jsx("div", { className: "img_item", children: getVariant(variant) ? /* @__PURE__ */ jsx(
79
+ SvgCheckIcon,
80
+ {
81
+ variant: getVariant(variant) === "primary" || getVariant(variant) === "secondary" ? "primary" : "secondary"
82
+ }
83
+ ) : /* @__PURE__ */ jsx("img", { src: icon?.src, alt: icon?.altText }) }),
84
+ /* @__PURE__ */ jsx("span", { children: copy })
85
+ ]
86
+ },
87
+ id2
88
+ ) : /* @__PURE__ */ jsx(
89
+ "ul",
90
+ {
91
+ className: clsx(hero_sub_bullets, "mb_0", "push_up"),
92
+ children: /* @__PURE__ */ jsxs("li", { className: "list_item flex", children: [
93
+ /* @__PURE__ */ jsx("div", { className: "img_item", children: /* @__PURE__ */ jsx(
94
+ "img",
95
+ {
96
+ style: { maxWidth: "max-content" },
97
+ src: icon?.src,
98
+ alt: icon?.altText
99
+ }
100
+ ) }),
101
+ /* @__PURE__ */ jsx("span", { children: copy })
102
+ ] })
103
+ },
104
+ id2
105
+ )
106
+ ) }),
107
+ subBodyCopy && /* @__PURE__ */ jsx("div", { className: "push_up_24", children: subBodyCopy }),
62
108
  callToActionRow && callToActionRow.length > 0 && /* @__PURE__ */ jsx("div", { className: `${hero_btns}`, children: callToActionRow.map(
63
109
  ({
64
110
  id: id2,
@@ -1,5 +1,5 @@
1
1
  import { HeroBanner } from "./HeroBanner.js";
2
- import { headline_text, heroSupertag, hero_banner, hero_btns, hero_content, hero_embedded_image, hero_img, hero_text, hero_wrapper, img_contents, logout, reversed, reversed_lg_image } from "./HeroBanner.css.js";
2
+ import { headline_text, heroSupertag, hero_banner, hero_btns, hero_bullet_item, hero_content, hero_embedded_image, hero_img, hero_sub_bullets, hero_text, hero_wrapper, img_contents, logout, reversed, reversed_lg_image } from "./HeroBanner.css.js";
3
3
  import { selection_headline_text, selection_section, selection_section_bg, selection_section_content, selection_section_icon, selection_section_icon_img } from "./SelectionBanner.css.js";
4
4
  export {
5
5
  HeroBanner,
@@ -7,9 +7,11 @@ export {
7
7
  heroSupertag,
8
8
  hero_banner,
9
9
  hero_btns,
10
+ hero_bullet_item,
10
11
  hero_content,
11
12
  hero_embedded_image,
12
13
  hero_img,
14
+ hero_sub_bullets,
13
15
  hero_text,
14
16
  hero_wrapper,
15
17
  img_contents,
@@ -121,5 +121,6 @@ export declare const section_body: import('@vanilla-extract/recipes').RuntimeFn<
121
121
  };
122
122
  };
123
123
  }>;
124
+ export declare const link_wrapper: string;
124
125
  export type ContainerVariants = RecipeVariants<typeof containerIconBillboard>;
125
126
  export type LayoutVariants = RecipeVariants<typeof layout>;
@@ -17,6 +17,7 @@ var section_text = "_1r4ovbui";
17
17
  var header_section = createRuntimeFn({ defaultClassName: "_1r4ovbuj", variantClassNames: { variant: { primary: "_1r4ovbuk", secondary: "_1r4ovbul", tertiary: "_1r4ovbum", quaternary: "_1r4ovbun" } }, defaultVariants: {}, compoundVariants: [] });
18
18
  var section_container = "_1r4ovbuo";
19
19
  var section_body = createRuntimeFn({ defaultClassName: "_1r4ovbup", variantClassNames: { variant: { primary: "_1r4ovbuq", secondary: "_1r4ovbur", tertiary: "_1r4ovbus", quaternary: "_1r4ovbut" } }, defaultVariants: {}, compoundVariants: [] });
20
+ var link_wrapper = "_1r4ovbuu";
20
21
  export {
21
22
  billboard_icon,
22
23
  buttons,
@@ -25,6 +26,7 @@ export {
25
26
  headerIconBillboard,
26
27
  header_section,
27
28
  layout,
29
+ link_wrapper,
28
30
  list,
29
31
  listItem,
30
32
  section_body,
@@ -1,5 +1,5 @@
1
1
  import { ChevronProps } from '../Chevron/Chevron.interface';
2
- import { PropsWithChildren, ReactNode } from 'react';
2
+ import { ReactNode } from 'react';
3
3
  import { ImageInterface } from '.';
4
4
  import { ContainerVariants, LayoutVariants } from './IconBillboard.css';
5
5
 
@@ -15,5 +15,4 @@ export interface FocusProps {
15
15
  set?: boolean;
16
16
  id?: string;
17
17
  }
18
- export declare const Icon: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
19
18
  export declare const IconBillboard: (props: FocusProps & ContainerVariants & LayoutVariants) => import("react/jsx-runtime").JSX.Element;
@@ -1,15 +1,14 @@
1
1
  "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import { useRef, useState, useEffect, createElement } from "react";
4
- import { BulletItem } from "../BulletItem/BulletItem.js";
5
- import { Chevron } from "../Chevron/index.js";
6
- import { getVariant } from "../utils/getVariant.js";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
7
3
  import clsx from "clsx";
8
- import { Button } from "../Button/Button.js";
9
- import "../Button/Button.css.js";
10
- import "react-use";
11
- import { billboard_icon, layout, headerIconBillboard, title, list, content, buttons, containerIconBillboard } from "./IconBillboard.css.js";
12
- const Icon = ({ children }) => /* @__PURE__ */ jsx("div", { className: billboard_icon, role: "presentation", children });
4
+ import { useRef, useState, useEffect } from "react";
5
+ import { getVariant } from "../utils/getVariant.js";
6
+ import { content, containerIconBillboard, link_wrapper } from "./IconBillboard.css.js";
7
+ import { LayoutSection } from "./sections/LayoutSection.js";
8
+ import { IconSection } from "./sections/IconSection.js";
9
+ import { HeaderSection } from "./sections/HeaderSection.js";
10
+ import { ItemsSection } from "./sections/ItemsSection.js";
11
+ import { useFullClick, CallToActionSection } from "./sections/CallToActionSection.js";
13
12
  const IconBillboard = (props) => {
14
13
  const {
15
14
  callToActionRow,
@@ -36,96 +35,42 @@ const IconBillboard = (props) => {
36
35
  }
37
36
  }
38
37
  }, []);
38
+ const { isClickable, handleClick, chevronText } = useFullClick(callToActionRow);
39
39
  return /* @__PURE__ */ jsxs(
40
40
  "div",
41
41
  {
42
+ id,
43
+ onClick: handleClick,
44
+ role: isClickable ? "link" : void 0,
45
+ title: isClickable ? chevronText : void 0,
42
46
  className: clsx(
43
47
  containerIconBillboard({ variant }),
44
48
  `${set ? "" : "containment"}`,
45
- "billboard rounded flex_col gap_24 is_icon"
49
+ "billboard rounded flex_col gap_24 is_icon",
50
+ isClickable && link_wrapper
46
51
  ),
47
- id,
48
52
  children: [
49
- /* @__PURE__ */ jsxs("div", { className: `flex_col middle ${layout({ side })}`, children: [
50
- icon && /* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(
51
- "img",
52
- {
53
- src: icon?.src,
54
- alt: icon?.alt ?? "",
55
- className: "img_fluid",
56
- height: icon?.height,
57
- width: icon?.width
58
- }
59
- ) }),
60
- /* @__PURE__ */ jsxs("div", { className: clsx(content), children: [
61
- /* @__PURE__ */ jsxs("div", { className: headerIconBillboard, children: [
62
- headline && createElement(
53
+ /* @__PURE__ */ jsxs(LayoutSection, { side, children: [
54
+ /* @__PURE__ */ jsx(IconSection, { icon }),
55
+ /* @__PURE__ */ jsxs("div", { className: content, children: [
56
+ /* @__PURE__ */ jsx(
57
+ HeaderSection,
58
+ {
59
+ headline,
63
60
  headingLevel,
64
- {
65
- ref: headingRef,
66
- className: `${title({ variant })}`
67
- },
68
- headline
69
- ),
70
- body && /* @__PURE__ */ jsx("div", { children: body })
71
- ] }),
72
- items && items?.length > 0 && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("ul", { className: clsx(list, "list_unstyled"), children: items?.map((item) => /* @__PURE__ */ jsx(BulletItem, { id: item.id, variant, children: item.content }, item.id)) }) })
61
+ headingRef,
62
+ body,
63
+ variant
64
+ }
65
+ ),
66
+ /* @__PURE__ */ jsx(ItemsSection, { items, variant })
73
67
  ] })
74
68
  ] }),
75
- callToActionRow && /* @__PURE__ */ jsx("div", { className: buttons, children: callToActionRow.map(
76
- ({
77
- id: id2,
78
- variant: variant2,
79
- displayText,
80
- targetUrl,
81
- type,
82
- marketingIntersitial,
83
- newTab,
84
- ...rest
85
- }) => type === "Button" ? rest.as == "button" ? /* @__PURE__ */ jsx(
86
- Button,
87
- {
88
- targetUrl,
89
- color: getVariant(variant2),
90
- size: "medium",
91
- rounded: "medium",
92
- marketingIntersitial,
93
- newTab,
94
- as: "button",
95
- type: "button",
96
- action: rest?.onClick,
97
- children: displayText
98
- },
99
- id2
100
- ) : /* @__PURE__ */ jsx(
101
- Button,
102
- {
103
- targetUrl,
104
- color: getVariant(variant2),
105
- size: "medium",
106
- rounded: "medium",
107
- marketingIntersitial,
108
- newTab,
109
- children: displayText
110
- },
111
- id2
112
- ) : /* @__PURE__ */ jsx(
113
- Chevron,
114
- {
115
- targetUrl,
116
- variant: getVariant(variant2),
117
- marketingIntersitial,
118
- newTab,
119
- children: displayText
120
- },
121
- id2
122
- )
123
- ) })
69
+ /* @__PURE__ */ jsx(CallToActionSection, { callToActionRow })
124
70
  ]
125
71
  }
126
72
  );
127
73
  };
128
74
  export {
129
- Icon,
130
75
  IconBillboard
131
76
  };
@@ -1,8 +1,7 @@
1
- import { Icon, IconBillboard } from "./IconBillboard.js";
2
- import { billboard_icon, buttons, containerIconBillboard, content, headerIconBillboard, header_section, layout, list, listItem, section_body, section_container, section_text, title } from "./IconBillboard.css.js";
1
+ import { IconBillboard } from "./IconBillboard.js";
2
+ import { billboard_icon, buttons, containerIconBillboard, content, headerIconBillboard, header_section, layout, link_wrapper, list, listItem, section_body, section_container, section_text, title } from "./IconBillboard.css.js";
3
3
  import { IconBillboardSet } from "./IconBillboardSet.js";
4
4
  export {
5
- Icon,
6
5
  IconBillboard,
7
6
  IconBillboardSet,
8
7
  billboard_icon,
@@ -12,6 +11,7 @@ export {
12
11
  headerIconBillboard,
13
12
  header_section,
14
13
  layout,
14
+ link_wrapper,
15
15
  list,
16
16
  listItem,
17
17
  section_body,
@@ -0,0 +1,12 @@
1
+ import { ChevronProps } from '../../Chevron/Chevron.interface';
2
+
3
+ interface CallToActionSectionProps {
4
+ callToActionRow?: ChevronProps[];
5
+ }
6
+ export declare const useFullClick: (callToActionRow?: ChevronProps[]) => {
7
+ isClickable: boolean;
8
+ handleClick: (e: React.MouseEvent<HTMLDivElement>) => void;
9
+ chevronText: string | undefined;
10
+ };
11
+ export declare const CallToActionSection: ({ callToActionRow, }: CallToActionSectionProps) => import("react/jsx-runtime").JSX.Element | null;
12
+ export {};
@@ -0,0 +1,101 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Button } from "../../Button/Button.js";
4
+ import "../../Button/Button.css.js";
5
+ import { useMemo } from "react";
6
+ import "react-use";
7
+ import { buttons } from "../IconBillboard.css.js";
8
+ import { Chevron } from "../../Chevron/index.js";
9
+ import { getVariant } from "../../utils/getVariant.js";
10
+ const useFullClick = (callToActionRow) => {
11
+ return useMemo(() => {
12
+ let chevronCount = 0;
13
+ let buttonCount = 0;
14
+ let chevronUrl;
15
+ let chevronText;
16
+ if (callToActionRow && callToActionRow.length > 0) {
17
+ callToActionRow.forEach((cta) => {
18
+ if (cta.type === "Button") {
19
+ buttonCount++;
20
+ } else {
21
+ chevronCount++;
22
+ chevronUrl = cta.targetUrl;
23
+ chevronText = cta.displayText;
24
+ }
25
+ });
26
+ }
27
+ const isClickable = chevronCount === 1 && buttonCount === 0 && typeof chevronUrl === "string" && chevronUrl.length > 0;
28
+ const handleClick = (e) => {
29
+ if (!isClickable) return;
30
+ const linkEl = e.currentTarget.querySelector("a");
31
+ if (linkEl && linkEl instanceof HTMLAnchorElement) {
32
+ window.location.href = linkEl.href;
33
+ }
34
+ };
35
+ return {
36
+ isClickable,
37
+ handleClick,
38
+ chevronText
39
+ };
40
+ }, [callToActionRow]);
41
+ };
42
+ const CallToActionSection = ({
43
+ callToActionRow
44
+ }) => {
45
+ if (!Array.isArray(callToActionRow) || callToActionRow.length === 0) {
46
+ return null;
47
+ }
48
+ return /* @__PURE__ */ jsx("div", { className: buttons, children: callToActionRow.map(
49
+ ({
50
+ id,
51
+ variant,
52
+ displayText,
53
+ targetUrl,
54
+ type,
55
+ marketingIntersitial,
56
+ newTab,
57
+ ...rest
58
+ }) => type === "Button" ? rest.as == "button" ? /* @__PURE__ */ jsx(
59
+ Button,
60
+ {
61
+ targetUrl,
62
+ color: getVariant(variant),
63
+ size: "medium",
64
+ rounded: "medium",
65
+ marketingIntersitial,
66
+ newTab,
67
+ as: "button",
68
+ type: "button",
69
+ action: rest?.onClick,
70
+ children: displayText
71
+ },
72
+ id
73
+ ) : /* @__PURE__ */ jsx(
74
+ Button,
75
+ {
76
+ targetUrl,
77
+ color: getVariant(variant),
78
+ size: "medium",
79
+ rounded: "medium",
80
+ marketingIntersitial,
81
+ newTab,
82
+ children: displayText
83
+ },
84
+ id
85
+ ) : /* @__PURE__ */ jsx(
86
+ Chevron,
87
+ {
88
+ targetUrl,
89
+ variant: getVariant(variant),
90
+ marketingIntersitial,
91
+ newTab,
92
+ children: displayText
93
+ },
94
+ id
95
+ )
96
+ ) });
97
+ };
98
+ export {
99
+ CallToActionSection,
100
+ useFullClick
101
+ };
@@ -0,0 +1,11 @@
1
+ import { ReactNode, Ref } from 'react';
2
+ import { QuaternaryTypes } from '../../utils';
3
+
4
+ export interface HeaderSectionProps {
5
+ body?: ReactNode | undefined;
6
+ headingLevel: "h2" | "h3";
7
+ headingRef: Ref<HTMLHeadingElement>;
8
+ headline?: ReactNode | undefined;
9
+ variant: QuaternaryTypes;
10
+ }
11
+ export declare const HeaderSection: ({ body, headingLevel, headingRef, headline, variant, }: HeaderSectionProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { headerIconBillboard, title } from "../IconBillboard.css.js";
4
+ const HeaderSection = ({
5
+ body,
6
+ headingLevel,
7
+ headingRef,
8
+ headline,
9
+ variant
10
+ }) => /* @__PURE__ */ jsxs("div", { className: headerIconBillboard, children: [
11
+ headline && React.createElement(
12
+ headingLevel,
13
+ {
14
+ ref: headingRef,
15
+ className: `${title({ variant })}`
16
+ },
17
+ headline
18
+ ),
19
+ body && /* @__PURE__ */ jsx("div", { children: body })
20
+ ] });
21
+ export {
22
+ HeaderSection
23
+ };
@@ -0,0 +1,7 @@
1
+ import { ImageInterface } from '..';
2
+
3
+ interface IconSectionProps {
4
+ icon?: ImageInterface;
5
+ }
6
+ export declare const IconSection: ({ icon }: IconSectionProps) => import("react/jsx-runtime").JSX.Element | null;
7
+ export {};
@@ -0,0 +1,18 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { billboard_icon } from "../IconBillboard.css.js";
3
+ const IconSection = ({ icon }) => {
4
+ if (!icon) return null;
5
+ return /* @__PURE__ */ jsx("div", { className: billboard_icon, role: "presentation", children: /* @__PURE__ */ jsx(
6
+ "img",
7
+ {
8
+ src: icon?.src,
9
+ alt: icon?.alt ?? "",
10
+ className: "img_fluid",
11
+ height: icon?.height,
12
+ width: icon?.width
13
+ }
14
+ ) });
15
+ };
16
+ export {
17
+ IconSection
18
+ };
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ import { QuaternaryTypes } from '../../utils';
3
+
4
+ export interface ItemsSectionProps {
5
+ items?: {
6
+ id: string;
7
+ content: ReactNode;
8
+ }[];
9
+ variant: QuaternaryTypes;
10
+ }
11
+ export declare const ItemsSection: ({ items, variant }: ItemsSectionProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,11 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import clsx from "clsx";
3
+ import { list } from "../IconBillboard.css.js";
4
+ import { BulletItem } from "../../BulletItem/BulletItem.js";
5
+ const ItemsSection = ({ items, variant }) => {
6
+ if (!items || items.length === 0) return null;
7
+ return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("ul", { className: clsx(list, "list_unstyled"), children: items.map((item) => /* @__PURE__ */ jsx(BulletItem, { id: item.id, variant, children: item.content }, item.id)) }) });
8
+ };
9
+ export {
10
+ ItemsSection
11
+ };