@nuskin/marketing-components 1.40.0 → 1.40.2

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 (130) hide show
  1. package/dist/index.d.mts +446 -0
  2. package/dist/index.d.ts +446 -11
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +1 -1
  6. package/dist/index.mjs.map +1 -1
  7. package/package.json +1 -1
  8. package/dist/button/Button.d.ts +0 -4
  9. package/dist/button/Button.stories.d.ts +0 -28
  10. package/dist/button/Button.styled.d.ts +0 -47
  11. package/dist/button/ButtonWrapper.d.ts +0 -9
  12. package/dist/button/helpers.d.ts +0 -59
  13. package/dist/button/index.d.ts +0 -3
  14. package/dist/button/specs/Button.spec.d.ts +0 -1
  15. package/dist/button/specs/ButtonWrapper.spec.d.ts +0 -1
  16. package/dist/button/types.d.ts +0 -42
  17. package/dist/bynder-media/BynderMedia.d.ts +0 -3
  18. package/dist/bynder-media/BynderMedia.styled.d.ts +0 -36
  19. package/dist/bynder-media/index.d.ts +0 -3
  20. package/dist/bynder-media/specs/bynder-utils.spec.d.ts +0 -1
  21. package/dist/bynder-media/specs/mockData.d.ts +0 -139
  22. package/dist/bynder-media/types.d.ts +0 -61
  23. package/dist/bynder-media/utils.d.ts +0 -3
  24. package/dist/carousel/Carousel.d.ts +0 -6
  25. package/dist/carousel/Carousel.stories.d.ts +0 -14
  26. package/dist/carousel/CarouselLayout.styled.d.ts +0 -50
  27. package/dist/carousel/hooks/useCarouselLayout.d.ts +0 -31
  28. package/dist/carousel/hooks/useCarouselResize.d.ts +0 -6
  29. package/dist/carousel/index.d.ts +0 -2
  30. package/dist/carousel/mocks/MockContentCard.d.ts +0 -20
  31. package/dist/carousel/mocks/MockHeroBanner.d.ts +0 -18
  32. package/dist/carousel/mocks/MockProductCard.d.ts +0 -9
  33. package/dist/carousel/mocks/index.d.ts +0 -7
  34. package/dist/carousel/mocks/mockAssets.d.ts +0 -15
  35. package/dist/carousel/shared.d.ts +0 -27
  36. package/dist/carousel/specs/Carousel.spec.d.ts +0 -1
  37. package/dist/carousel/specs/useCarouselResize.spec.d.ts +0 -1
  38. package/dist/carousel/specs/utils.spec.d.ts +0 -1
  39. package/dist/carousel/types.d.ts +0 -56
  40. package/dist/carousel/utils.d.ts +0 -47
  41. package/dist/column-control/ColumnControl.d.ts +0 -4
  42. package/dist/column-control/ColumnControl.stories.d.ts +0 -13
  43. package/dist/column-control/ColumnControl.styled.d.ts +0 -49
  44. package/dist/column-control/index.d.ts +0 -2
  45. package/dist/column-control/mocks/MockContentCard.d.ts +0 -13
  46. package/dist/column-control/mocks/MockProductCard.d.ts +0 -9
  47. package/dist/column-control/mocks/index.d.ts +0 -5
  48. package/dist/column-control/specs/ColumnControl.spec.d.ts +0 -1
  49. package/dist/column-control/specs/utils.spec.d.ts +0 -1
  50. package/dist/column-control/types.d.ts +0 -48
  51. package/dist/column-control/utils.d.ts +0 -24
  52. package/dist/content-card/ContentCard.d.ts +0 -4
  53. package/dist/content-card/ContentCard.stories.d.ts +0 -12
  54. package/dist/content-card/ContentCard.styled.d.ts +0 -35
  55. package/dist/content-card/constants.d.ts +0 -3
  56. package/dist/content-card/index.d.ts +0 -2
  57. package/dist/content-card/specs/ContentCard.spec.d.ts +0 -1
  58. package/dist/content-card/specs/helpers.spec.d.ts +0 -1
  59. package/dist/content-card/types.d.ts +0 -31
  60. package/dist/content-card/utils/helpers.d.ts +0 -20
  61. package/dist/hero-banner/HeroBanner.d.ts +0 -4
  62. package/dist/hero-banner/HeroBanner.stories.d.ts +0 -17
  63. package/dist/hero-banner/HeroBanner.styled.d.ts +0 -35
  64. package/dist/hero-banner/components/TypographyFields.d.ts +0 -13
  65. package/dist/hero-banner/constants.d.ts +0 -5
  66. package/dist/hero-banner/helpers.d.ts +0 -12
  67. package/dist/hero-banner/index.d.ts +0 -2
  68. package/dist/hero-banner/specs/HeroBanner.spec.d.ts +0 -1
  69. package/dist/hero-banner/specs/helpers.spec.d.ts +0 -1
  70. package/dist/hero-banner/types.d.ts +0 -26
  71. package/dist/hooks/index.d.ts +0 -3
  72. package/dist/hooks/use-toggle-font-color/useMainContrast.d.ts +0 -8
  73. package/dist/hooks/use-toggle-font-color/useMainContrast.spec.d.ts +0 -1
  74. package/dist/hooks/use-toggle-font-color/useToggleFontColor.d.ts +0 -8
  75. package/dist/hooks/use-toggle-font-color/useToggleFontColor.spec.d.ts +0 -1
  76. package/dist/hooks/useRouteReplacer.d.ts +0 -10
  77. package/dist/hooks/useRouteReplacer.spec.d.ts +0 -1
  78. package/dist/image/CsImage.d.ts +0 -4
  79. package/dist/image/CsImage.stories.d.ts +0 -7
  80. package/dist/image/CsImage.styled.d.ts +0 -8
  81. package/dist/image/index.d.ts +0 -1
  82. package/dist/image/specs/CsImage.spec.d.ts +0 -1
  83. package/dist/image/types.d.ts +0 -73
  84. package/dist/marketing-banner/MarketingBanner.d.ts +0 -7
  85. package/dist/marketing-banner/MarketingBanner.stories.d.ts +0 -206
  86. package/dist/marketing-banner/MarketingBanner.styled.d.ts +0 -62
  87. package/dist/marketing-banner/components/BannerText.d.ts +0 -7
  88. package/dist/marketing-banner/components/BannerText.styled.d.ts +0 -23
  89. package/dist/marketing-banner/components/index.d.ts +0 -1
  90. package/dist/marketing-banner/components/specs/BannerText.spec.d.ts +0 -5
  91. package/dist/marketing-banner/constants.d.ts +0 -22
  92. package/dist/marketing-banner/hooks/index.d.ts +0 -2
  93. package/dist/marketing-banner/hooks/useCarousel.d.ts +0 -14
  94. package/dist/marketing-banner/hooks/useReducedMotion.d.ts +0 -5
  95. package/dist/marketing-banner/index.d.ts +0 -3
  96. package/dist/marketing-banner/specs/MarketingBanner.spec.d.ts +0 -5
  97. package/dist/marketing-banner/specs/mockData.d.ts +0 -22
  98. package/dist/marketing-banner/specs/useCarousel.spec.d.ts +0 -5
  99. package/dist/marketing-banner/specs/utils.spec.d.ts +0 -1
  100. package/dist/marketing-banner/styles/mixins.d.ts +0 -53
  101. package/dist/marketing-banner/styles/theme.d.ts +0 -99
  102. package/dist/marketing-banner/types.d.ts +0 -57
  103. package/dist/marketing-banner/utils/index.d.ts +0 -1
  104. package/dist/marketing-banner/utils/utils.d.ts +0 -4
  105. package/dist/rich-text/RichText.d.ts +0 -27
  106. package/dist/rich-text/RichText.stories.d.ts +0 -8
  107. package/dist/rich-text/index.d.ts +0 -1
  108. package/dist/rich-text/specs/RichText.spec.d.ts +0 -1
  109. package/dist/spacing-divider/SpacingDivider.d.ts +0 -4
  110. package/dist/spacing-divider/SpacingDivider.stories.d.ts +0 -6
  111. package/dist/spacing-divider/SpacingDivider.styled.d.ts +0 -9
  112. package/dist/spacing-divider/index.d.ts +0 -2
  113. package/dist/spacing-divider/specs/SpacingDivider.spec.d.ts +0 -1
  114. package/dist/spacing-divider/types.d.ts +0 -26
  115. package/dist/spacing-divider/utils/specs/utils.spec.d.ts +0 -1
  116. package/dist/spacing-divider/utils/utils.d.ts +0 -13
  117. package/dist/text/CsText.d.ts +0 -15
  118. package/dist/text/CsText.stories.d.ts +0 -7
  119. package/dist/text/index.d.ts +0 -1
  120. package/dist/text/specs/CsText.spec.d.ts +0 -1
  121. package/dist/typography/Typography.d.ts +0 -18
  122. package/dist/typography/Typography.stories.d.ts +0 -6
  123. package/dist/typography/Typography.styled.d.ts +0 -80
  124. package/dist/typography/index.d.ts +0 -3
  125. package/dist/typography/specs/Typography.spec.d.ts +0 -1
  126. package/dist/typography/types.d.ts +0 -18
  127. package/dist/utils/deviceConstants.d.ts +0 -13
  128. package/dist/utils/route-utils.d.ts +0 -18
  129. package/dist/utils/specs/route-utils.spec.d.ts +0 -1
  130. package/dist/utils/viewportLayoutUtils.d.ts +0 -4
@@ -1,15 +0,0 @@
1
- /** Nu Skin media URLs for ColumnControl mock slides. */
2
- export declare const MOCK_ASSETS: {
3
- readonly hero: {
4
- readonly scienceApproach: "https://media.nuskin.com/transform/a3481f54-c1d6-440b-98c1-f6320a06f5f0/india-specific-science-approach-hero-banner?io=transform:fill,width:1440,height:500&format=webp&quality=95";
5
- readonly joeChang: "https://media.nuskin.com/transform/d0a2299a-1476-4eb0-af54-b8fd66eaf880/nu-skin-science-main-page-joe-chang-banner?io=transform:fill,width:1440,height:520&focuspoint=0.32,0.54&format=webp&quality=95";
6
- readonly homepage2: "https://media.nuskin.com/transform/fb7385be-c941-4436-8a30-63b177c4b02d/New-Homepage-Banners-2";
7
- readonly videoPrysm: "https://media.nuskin.com/asset/9994f1f0-dc3d-4019-9dab-ebf690c11322/mp4/Prysm-Home-Page-Banner.mp4";
8
- readonly videoPoster: "https://media.nuskin.com/m/65719e352613af80/original/Prysm-Home-Page-Banner.mp4";
9
- };
10
- readonly product: {
11
- readonly boldInnovators: "https://media.nuskin.com/transform/04654929-3c89-4232-9cb2-2ea72d3602c9/india-science-bold-innovators-image?format=webp&quality=95";
12
- readonly qualityProcess: "https://media.nuskin.com/transform/2bd009a8-288b-42de-be93-05c143e67822/nu-skin-science-6s-quality-process-image?io=transform:fill,width:1440,height:1400&format=webp&quality=95&io=transform:scale,width:600,height:600";
13
- readonly rigorousResearch: "https://media.nuskin.com/transform/8754ed36-3705-4d85-a633-e8dbb7e326aa/nu-skin-science-rigorous-reasearch-image?io=transform:fill,width:720,height:460&format=webp&quality=95&io=transform:scale,width:600,height:600";
14
- };
15
- };
@@ -1,27 +0,0 @@
1
- import React from 'react';
2
- declare const Slider: any;
3
- declare const CarouselContainer: any;
4
- declare const ArrowButton: any;
5
- declare const InnerWrapper: any;
6
- declare const SlideSection: any;
7
- declare const SlideInner: any;
8
- declare const SlideContentInner: any;
9
- export { Slider, CarouselContainer, ArrowButton, InnerWrapper, SlideSection, SlideInner, SlideContentInner };
10
- export interface SliderRefInstance {
11
- slickPrev: () => void;
12
- slickNext: () => void;
13
- }
14
- export declare function getSlideKey(index: number): string;
15
- export declare function renderSlidesContent<T>(params: {
16
- slidesForRender: T[];
17
- renderSlide: (slide: T, index: number) => React.ReactNode;
18
- presetColumns: number;
19
- gap: number;
20
- isVariableWidth: boolean;
21
- getSlideWidth: (index: number) => string;
22
- stackedVerticalGap: number;
23
- stackedItemHeight: string;
24
- stackedItemMaxHeight?: number;
25
- useFlexLayout?: boolean;
26
- $?: Record<string, unknown>;
27
- }): import("react/jsx-runtime").JSX.Element[];
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom';
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,56 +0,0 @@
1
- import React from 'react';
2
- /** Gap between columns/slides: preset name → px (none: 0, small: 8, medium: 12, large: 16) */
3
- export type GapPreset = 'none' | 'small' | 'medium' | 'large';
4
- export declare const GAP_PRESET_VALUES: Record<GapPreset, number>;
5
- /** Resolve gap to pixels. Accepts preset name or legacy number (for backward compatibility). */
6
- export declare function getGapPx(gap?: GapPreset | number): number;
7
- export type CarouselPreset = 'single-full' | 'two-equal' | 'two-small-large' | 'three-equal' | 'three-small-medium-large' | 'four-equal';
8
- export type Alignment = 'left' | 'center' | 'right';
9
- /** Render callback: consumer renders each slide from their data. */
10
- export type CarouselRenderSlide<T = unknown> = (slide: T, index: number) => React.ReactNode;
11
- export type CarouselProps<T = unknown> = Readonly<{
12
- /** Slide data (CMS/consumer shape). Rendered via renderSlide. */
13
- slides: T[];
14
- /** Called to render each slide. Receives slide data and index. */
15
- renderSlide: CarouselRenderSlide<T>;
16
- preset?: CarouselPreset;
17
- /** Convenience props that override autoplay.enabled */
18
- autoplayEnabled?: boolean;
19
- /** Autoplay interval in seconds (e.g. 3 = 3s). Passed to slider as ms internally. */
20
- autoplayDuration?: number;
21
- /** Convenience props that override navigation.showArrows */
22
- showArrows?: boolean;
23
- /** Convenience props that override navigation.showPagination */
24
- showPagination?: boolean;
25
- onSlideChange?: (index: number) => void;
26
- className?: string;
27
- slickSettings?: any;
28
- /** Spacing between columns/slides: 'none'|'small'|'medium'|'large' (0,8,12,16px) or legacy number */
29
- gap?: GapPreset | number;
30
- height?: string;
31
- fullWidth?: boolean;
32
- emptyBlockParentClass?: string;
33
- /** Override empty placeholder label. Defaults: "Add items to the column control" (grid) or "Add items to the carousel" (carousel). */
34
- emptyPlaceholderText?: string;
35
- /** Position of slider dots: 'inside' overlays within the slider; 'outside' places them below as part of the height. Defaults to 'inside'. */
36
- dotsPosition?: 'inside' | 'outside';
37
- isEditing?: boolean;
38
- parent$?: Record<string, unknown>;
39
- $?: Record<string, unknown>;
40
- }>;
41
- export interface CarouselSlideProps {
42
- children: React.ReactNode;
43
- isActive: boolean;
44
- preset: CarouselPreset;
45
- alignment: Alignment;
46
- index: number;
47
- slideCount: number;
48
- }
49
- export { DEVICE_SIZES, MAX_SLIDE_HEIGHT_PX } from '../utils/deviceConstants';
50
- import { DEVICE_SIZES } from '../utils/deviceConstants';
51
- export type DeviceSize = keyof typeof DEVICE_SIZES;
52
- export declare const MIN_SLIDE_WIDTH_PX = 280;
53
- export declare const MIN_SLIDE_HEIGHT_PX = 320;
54
- /** Minimum height (px) for empty placeholder slots in column control/carousel. */
55
- export declare const MIN_EMPTY_PLACEHOLDER_HEIGHT_PX = 220;
56
- export declare const MAX_ALLOWED_COLUMN_CONTROL_ITEMS = 4;
@@ -1,47 +0,0 @@
1
- import React from 'react';
2
- import type { CarouselProps } from './types';
3
- export { getPresetColumns } from '../utils/viewportLayoutUtils';
4
- export declare function unwrapComponent<T>(mod: T): any;
5
- export declare const EmptyPlaceholder: React.FC<Readonly<{
6
- emptyBlockParentClass?: string;
7
- text?: string;
8
- }>>;
9
- export declare function isVariableWidthPreset(preset: CarouselProps['preset'], windowWidth: number): boolean;
10
- export declare function getVariableSlideWidth(preset: CarouselProps['preset'], index: number, windowWidth: number): string;
11
- export declare function getSlidesToShowByViewport(windowWidth: number, presetColumns: number): number;
12
- export declare function buildCarouselResponsiveSettings(params: {
13
- presetColumns: number;
14
- slidesLength: number;
15
- isEditing: boolean;
16
- shouldShowDots: boolean;
17
- }): ({
18
- breakpoint: 600;
19
- settings: {
20
- slidesToShow: number;
21
- slidesToScroll: number;
22
- swipeToSlide: boolean;
23
- arrows: boolean;
24
- dots: boolean;
25
- variableWidth: boolean;
26
- };
27
- } | {
28
- breakpoint: 768;
29
- settings: {
30
- slidesToShow: number;
31
- slidesToScroll: number;
32
- swipeToSlide: boolean;
33
- arrows: boolean;
34
- dots: boolean;
35
- variableWidth: boolean;
36
- };
37
- } | {
38
- breakpoint: 1024;
39
- settings: {
40
- slidesToShow: number;
41
- slidesToScroll: number;
42
- swipeToSlide: boolean;
43
- arrows: boolean;
44
- dots: boolean;
45
- variableWidth: boolean;
46
- };
47
- })[];
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { type ColumnControlProps } from './types';
3
- declare const _default: React.FC<ColumnControlProps>;
4
- export default _default;
@@ -1,13 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
- import ColumnControl from './ColumnControl';
3
- declare const meta: Meta<typeof ColumnControl>;
4
- export default meta;
5
- type Story = StoryObj<typeof ColumnControl>;
6
- export declare const TwoByOne: Story;
7
- export declare const ThreeByOne: Story;
8
- export declare const FourByOne: Story;
9
- export declare const TwoByTwo: Story;
10
- export declare const ThreeByTwo: Story;
11
- export declare const FourByTwo: Story;
12
- export declare const EmptyState: Story;
13
- export declare const FewerSlidesThanPreset: Story;
@@ -1,49 +0,0 @@
1
- export declare const ColumnControlContainer: import("@emotion/styled").StyledComponent<{
2
- theme?: import("@emotion/react").Theme;
3
- as?: React.ElementType;
4
- } & {
5
- gap: number;
6
- height: string;
7
- columnHeight: string;
8
- maxColumnHeight?: number;
9
- fullWidth?: boolean;
10
- dotsInside?: boolean;
11
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {}>;
12
- export declare const TabletGridContainer: import("@emotion/styled").StyledComponent<{
13
- theme?: import("@emotion/react").Theme;
14
- as?: React.ElementType;
15
- } & {
16
- gap: number;
17
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
18
- export declare const SlideSection: import("@emotion/styled").StyledComponent<{
19
- theme?: import("@emotion/react").Theme;
20
- as?: React.ElementType;
21
- } & {
22
- useFlexLayout: boolean;
23
- stackedVerticalGap: number;
24
- stackedItemHeight: string;
25
- stackedItemMaxHeight?: number;
26
- slideWidth?: string;
27
- flexBasis?: string;
28
- gap: number;
29
- columns: number;
30
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {}>;
31
- export declare const SlideInner: import("@emotion/styled").StyledComponent<{
32
- theme?: import("@emotion/react").Theme;
33
- as?: React.ElementType;
34
- } & {
35
- stackedItemHeight: string;
36
- stackedItemMaxHeight?: number;
37
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
38
- export declare const SlideContentInner: import("@emotion/styled").StyledComponent<{
39
- theme?: import("@emotion/react").Theme;
40
- as?: React.ElementType;
41
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
42
- export declare const InnerWrapper: import("@emotion/styled").StyledComponent<{
43
- theme?: import("@emotion/react").Theme;
44
- as?: React.ElementType;
45
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
46
- export declare const EmptyPlaceholderWrapper: import("@emotion/styled").StyledComponent<{
47
- theme?: import("@emotion/react").Theme;
48
- as?: React.ElementType;
49
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -1,2 +0,0 @@
1
- export { default as ColumnControl } from './ColumnControl';
2
- export type { ColumnControlProps } from './types';
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- type ImageHeightPreset = 'short' | 'medium' | 'tall';
3
- export interface MockContentCardProps {
4
- imageSrc?: string;
5
- imageAlt?: string;
6
- imageHeight?: ImageHeightPreset | number;
7
- title?: string;
8
- description?: string;
9
- ctaText?: string;
10
- ctaHref?: string;
11
- }
12
- declare const MockContentCard: React.FC<MockContentCardProps>;
13
- export default MockContentCard;
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- export interface MockProductCardProps {
3
- imageSrc: string;
4
- imageAlt?: string;
5
- title?: string;
6
- eyebrow?: string;
7
- }
8
- declare const MockProductCard: React.FC<MockProductCardProps>;
9
- export default MockProductCard;
@@ -1,5 +0,0 @@
1
- export { default as MockContentCard } from './MockContentCard';
2
- export type { MockContentCardProps } from './MockContentCard';
3
- export { default as MockProductCard } from './MockProductCard';
4
- export type { MockProductCardProps } from './MockProductCard';
5
- export { MOCK_ASSETS } from '../../carousel/mocks/mockAssets';
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom';
@@ -1 +0,0 @@
1
- export {};
@@ -1,48 +0,0 @@
1
- import React from 'react';
2
- /** Gap between columns/slides: preset name → px (none: 0, small: 8, medium: 12, large: 16) */
3
- export type GapPreset = 'none' | 'small' | 'medium' | 'large';
4
- export declare const GAP_PRESET_VALUES: Record<GapPreset, number>;
5
- /** Resolve gap to pixels. Accepts preset name or legacy number (for backward compatibility). */
6
- export declare function getGapPx(gap?: GapPreset | number): number;
7
- export type ColumnControlGridLayout = '2x1' | '3x1' | '4x1' | '2x2' | '3x2' | '4x2';
8
- export type SlidePreset = 'single-full' | 'two-equal' | 'two-small-large' | 'three-equal' | 'three-small-medium-large' | 'four-equal';
9
- export type Alignment = 'left' | 'center' | 'right';
10
- /** Render callback: consumer renders each slide from their data. */
11
- export type RenderSlideCallback<T = unknown> = (slide: T, index: number) => React.ReactNode;
12
- export type ColumnControlProps<T = unknown> = Readonly<{
13
- /** Slide data (CMS/consumer shape). Rendered via renderSlide. */
14
- slides: T[];
15
- /** Called to render each slide. Receives slide data and index. */
16
- renderSlide: RenderSlideCallback<T>;
17
- /** Preset-based sizing is deprecated. Use ColumnControl (grid) with layout. */
18
- preset?: SlidePreset;
19
- /** Grid layout for ColumnControl (grid) mode: "<columns>x<rows>" (e.g. "3x2"). */
20
- layout?: ColumnControlGridLayout;
21
- className?: string;
22
- /** Spacing between columns/slides: 'none'|'small'|'medium'|'large' (0,8,12,16px) or legacy number */
23
- gap?: GapPreset | number;
24
- height?: string;
25
- fullWidth?: boolean;
26
- emptyBlockParentClass?: string;
27
- /** Override empty placeholder label. Defaults: "Add items to the column control". */
28
- emptyPlaceholderText?: string;
29
- isEditing?: boolean;
30
- parent$?: Record<string, unknown>;
31
- $?: Record<string, unknown>;
32
- }>;
33
- export interface ColumnControlSlideProps {
34
- children: React.ReactNode;
35
- isActive: boolean;
36
- preset: SlidePreset;
37
- alignment: Alignment;
38
- index: number;
39
- slideCount: number;
40
- }
41
- export { DEVICE_SIZES, MAX_SLIDE_HEIGHT_PX } from '../utils/deviceConstants';
42
- import { DEVICE_SIZES } from '../utils/deviceConstants';
43
- export type DeviceSize = keyof typeof DEVICE_SIZES;
44
- export declare const MIN_SLIDE_WIDTH_PX = 280;
45
- export declare const MIN_SLIDE_HEIGHT_PX = 320;
46
- /** Minimum height (px) for empty placeholder slots in column control. */
47
- export declare const MIN_EMPTY_PLACEHOLDER_HEIGHT_PX = 220;
48
- export declare const MAX_ALLOWED_COLUMN_CONTROL_ITEMS = 8;
@@ -1,24 +0,0 @@
1
- import React from 'react';
2
- import type { ColumnControlGridLayout, SlidePreset } from './types';
3
- import { getPresetColumns } from '../utils/viewportLayoutUtils';
4
- export interface ViewportLayoutState {
5
- isStackedViewport: boolean;
6
- isTabletGridViewport: boolean;
7
- stackedItemHeight: string;
8
- stackedItemMaxHeight: number;
9
- stackedVerticalGap: number;
10
- containerHeight: string;
11
- }
12
- export declare function getViewportLayoutState(isGridLayout: boolean, windowWidth: number, gapPx: number, height?: string): ViewportLayoutState;
13
- export interface GridDimensions {
14
- columns: number;
15
- rows: number;
16
- }
17
- export declare function getGridDimensions(layout: ColumnControlGridLayout | undefined): GridDimensions;
18
- export declare function getMaxChildrenForLayout(layout: ColumnControlGridLayout | undefined): number;
19
- export declare function mapPresetToGridLayout(preset: SlidePreset | undefined): ColumnControlGridLayout;
20
- export declare const EmptyPlaceholder: React.FC<Readonly<{
21
- emptyBlockParentClass?: string;
22
- text?: string;
23
- }>>;
24
- export { getPresetColumns };
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { ContentCardProps } from './types';
3
- declare const ContentCard: React.FC<ContentCardProps>;
4
- export default ContentCard;
@@ -1,12 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
- import ContentCard from './ContentCard';
3
- declare const meta: Meta<typeof ContentCard>;
4
- export default meta;
5
- type Story = StoryObj<typeof ContentCard>;
6
- export declare const Default: Story;
7
- export declare const GifCard: Story;
8
- export declare const VideoCard: Story;
9
- export declare const CardAsLink: Story;
10
- export declare const NoCta: Story;
11
- export declare const ButtonOpenInNewTab: Story;
12
- export declare const CardLinkOpenInNewTab: Story;
@@ -1,35 +0,0 @@
1
- export declare const Card: import("@emotion/styled").StyledComponent<{
2
- theme?: import("@emotion/react").Theme;
3
- as?: React.ElementType;
4
- } & {
5
- align?: "left" | "center" | "right";
6
- borderRadius?: string;
7
- backgroundColor?: string;
8
- textColor?: string;
9
- $maxHeight?: number;
10
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {}>;
11
- export declare const MediaWrapper: import("@emotion/styled").StyledComponent<{
12
- theme?: import("@emotion/react").Theme;
13
- as?: React.ElementType;
14
- } & {
15
- $inlineMedia?: boolean;
16
- $mediaHeight?: number;
17
- $mediaMaxHeight?: number;
18
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
19
- export declare const Content: import("@emotion/styled").StyledComponent<{
20
- theme?: import("@emotion/react").Theme;
21
- as?: React.ElementType;
22
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
23
- /** Wrapper for body Typography to preserve line-clamp and flex. */
24
- export declare const BodyWrapper: import("@emotion/styled").StyledComponent<{
25
- theme?: import("@emotion/react").Theme;
26
- as?: React.ElementType;
27
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
28
- export declare const CtaWrapper: import("@emotion/styled").StyledComponent<{
29
- theme?: import("@emotion/react").Theme;
30
- as?: React.ElementType;
31
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
32
- export declare const ContentInner: import("@emotion/styled").StyledComponent<{
33
- theme?: import("@emotion/react").Theme;
34
- as?: React.ElementType;
35
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -1,3 +0,0 @@
1
- export declare const DEFAULT_MAX_HEIGHT = 750;
2
- /** Max height for media (img/video); taller assets are capped, shorter stay at natural size. */
3
- export declare const MAX_MEDIA_HEIGHT_PX = 400;
@@ -1,2 +0,0 @@
1
- export { default as ContentCard } from './ContentCard';
2
- export type { ContentCardProps } from './types';
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom';
@@ -1 +0,0 @@
1
- export {};
@@ -1,31 +0,0 @@
1
- import { ButtonBlockProp } from '../button/types';
2
- export type ContentAlignment = 'left' | 'center' | 'right';
3
- export type CtaStyle = 'card' | 'button' | 'none';
4
- export type LinkTarget = '_self' | '_blank';
5
- export interface ContentCardProps {
6
- title?: string;
7
- subtitle?: string;
8
- body?: string;
9
- media?: string;
10
- cta?: ButtonBlockProp;
11
- card_cta_group?: ButtonBlockProp;
12
- button_cta_group?: ButtonBlockProp;
13
- cta_style?: CtaStyle;
14
- content_alignment?: ContentAlignment;
15
- _metadata?: {
16
- uid?: string;
17
- };
18
- max_height?: number;
19
- background_color?: string;
20
- text_color?: string;
21
- border_radius?: string;
22
- isEditing?: boolean;
23
- parent$?: Record<string, unknown>;
24
- $?: {
25
- media?: Record<string, unknown>;
26
- body?: Record<string, unknown>;
27
- title?: Record<string, unknown>;
28
- subtitle?: Record<string, unknown>;
29
- button?: Record<string, unknown>;
30
- };
31
- }
@@ -1,20 +0,0 @@
1
- import type { ButtonBlockProp, ButtonProps } from '../../button/types';
2
- import type { ContentAlignment, CtaStyle, LinkTarget, ContentCardProps } from '../types';
3
- export declare function getEffectiveCta(cta: ButtonBlockProp | undefined): ButtonProps | null;
4
- export declare const getTitle: (title: string, isEditing: boolean) => string;
5
- export declare function normalizeContentAlignment(alignment?: string | null): ContentAlignment;
6
- export declare function normalizeCtaStyle(value?: string | null): CtaStyle;
7
- export declare function resolveTarget(target?: 'Yes' | 'No' | null): LinkTarget | undefined;
8
- export declare function getCtaState(cta: ButtonBlockProp | undefined, ctaStyle: ContentCardProps['cta_style']): {
9
- ctaStyleNormalized: CtaStyle;
10
- effectiveCta: ButtonProps | null;
11
- isCardLink: boolean;
12
- showButton: boolean;
13
- cardTarget: LinkTarget | undefined;
14
- };
15
- export declare function getMediaLayout(media: ContentCardProps['media']): {
16
- mediaInfo: import("../..").BynderMediaExtracted | null;
17
- isInlineMedia: boolean;
18
- mediaHeightValue: number | undefined;
19
- mediaMaxHeightValue: number | undefined;
20
- };
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { HeroBannerProps } from './types';
3
- declare const HeroBanner: React.FC<HeroBannerProps>;
4
- export default HeroBanner;
@@ -1,17 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
- import HeroBanner from './HeroBanner';
3
- declare const meta: Meta<typeof HeroBanner>;
4
- export default meta;
5
- type Story = StoryObj<typeof HeroBanner>;
6
- export declare const ProductLaunch: Story;
7
- export declare const HomepageHero: Story;
8
- export declare const CampaignHero: Story;
9
- export declare const VideoHero: Story;
10
- export declare const LeftAligned: Story;
11
- export declare const CenterAligned: Story;
12
- export declare const RightAligned: Story;
13
- export declare const NoGradient: Story;
14
- export declare const EditingMode: Story;
15
- export declare const MinimalContent: Story;
16
- export declare const NoMedia: Story;
17
- export declare const ResponsiveImage: Story;
@@ -1,35 +0,0 @@
1
- import { GradientDepth } from './helpers';
2
- export declare const MediaLayer: import("@emotion/styled").StyledComponent<{
3
- theme?: import("@emotion/react").Theme;
4
- as?: React.ElementType;
5
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
6
- export declare const Container: import("@emotion/styled").StyledComponent<{
7
- theme?: import("@emotion/react").Theme;
8
- as?: React.ElementType;
9
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {}>;
10
- export declare const GradientOverlay: import("@emotion/styled").StyledComponent<{
11
- theme?: import("@emotion/react").Theme;
12
- as?: React.ElementType;
13
- } & {
14
- direction: string;
15
- depth: GradientDepth;
16
- color: "black" | "white";
17
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
18
- export declare const Overlay: import("@emotion/styled").StyledComponent<{
19
- theme?: import("@emotion/react").Theme;
20
- as?: React.ElementType;
21
- } & {
22
- justifyContent?: string;
23
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
24
- export declare const Content: import("@emotion/styled").StyledComponent<{
25
- theme?: import("@emotion/react").Theme;
26
- as?: React.ElementType;
27
- } & {
28
- textAlign?: string;
29
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
30
- export declare const HERO_CTA_WRAPPER_CLASS = "hero-banner-button-wrapper";
31
- export declare const ButtonWrapper: import("@emotion/styled").StyledComponent<{
32
- theme?: import("@emotion/react").Theme;
33
- as?: React.ElementType;
34
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
35
- export declare const getJustifyContent: (alignment: "left" | "center" | "right") => "center" | "flex-start" | "flex-end";
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import type { TextColor } from '../helpers';
3
- interface TypographyFieldsProps {
4
- brandcaption?: string;
5
- title?: string;
6
- subtitle?: string;
7
- body?: string;
8
- isEditing: boolean;
9
- editTags?: Record<string, unknown>;
10
- textColor?: TextColor;
11
- }
12
- export declare const TypographyFields: React.FC<TypographyFieldsProps>;
13
- export {};
@@ -1,5 +0,0 @@
1
- export declare const PLACEHOLDER_BRAND_CAPTION = "Enter Brand Caption";
2
- export declare const PLACEHOLDER_TITLE = "Enter Title";
3
- export declare const PLACEHOLDER_SUBTITLE = "Enter Subtitle";
4
- export declare const PLACEHOLDER_BODY = "Enter Body";
5
- export declare const ARIA_LABEL_HERO_BANNER = "Hero banner";
@@ -1,12 +0,0 @@
1
- export type GradientDepth = 'sm' | 'md' | 'lg';
2
- export type ContentAlignment = 'left' | 'center' | 'right';
3
- export type TextColor = 'black' | 'white';
4
- export declare const FULL_SIZE_PERCENT = "100%";
5
- export declare const MOBILE_BREAKPOINT = "(max-width: 768px)";
6
- export declare const DESKTOP_BREAKPOINT = "(min-width: 769px)";
7
- export declare function resolveContentAlignment(contentAlignment?: ContentAlignment): ContentAlignment;
8
- export declare function resolveGradientDepth(gradientDepth?: GradientDepth): GradientDepth;
9
- export declare function resolveTextColor(textColor?: string): TextColor;
10
- export declare function getGradientColor(textColor: TextColor): 'white' | 'black';
11
- export type GradientDirection = 'leftToRight' | 'radial' | 'rightToLeft';
12
- export declare function getGradientDirection(contentAlignment: ContentAlignment): GradientDirection;
@@ -1,2 +0,0 @@
1
- export { default as HeroBanner } from './HeroBanner';
2
- export * from './types';
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom';
@@ -1 +0,0 @@
1
- export {};
@@ -1,26 +0,0 @@
1
- import { GradientDepth } from './helpers';
2
- import { ButtonBlockProp } from '../button';
3
- export type ContentAlignment = 'left' | 'center' | 'right';
4
- export type HeroBannerMediaType = 'image' | 'gif' | 'video';
5
- export interface HeroBanner$ {
6
- [key: string]: unknown;
7
- button?: Record<string, unknown>;
8
- media?: Record<string, unknown>;
9
- $?: Record<string, unknown>;
10
- }
11
- export interface HeroBannerProps {
12
- title?: string;
13
- subtitle?: string;
14
- body?: string;
15
- brandcaption?: string;
16
- button?: ButtonBlockProp;
17
- media?: string;
18
- class_name?: string;
19
- content_alignment?: ContentAlignment;
20
- gradient_enabled?: boolean;
21
- gradient_depth?: GradientDepth;
22
- text_color?: string;
23
- $?: HeroBanner$;
24
- parent$?: Record<string, unknown>;
25
- isEditing?: boolean;
26
- }
@@ -1,3 +0,0 @@
1
- export { default as useRouteReplacer } from './useRouteReplacer';
2
- export { default as useMainContrast } from './use-toggle-font-color/useMainContrast';
3
- export { default as useToggleFontColor } from './use-toggle-font-color/useToggleFontColor';
@@ -1,8 +0,0 @@
1
- /**
2
- * @returns {main:#FFFFFF, contrast:#252525} when passed true
3
- */
4
- declare const useMainContrast: (toggleValue?: boolean) => {
5
- main: string;
6
- contrast: string;
7
- };
8
- export default useMainContrast;
@@ -1,8 +0,0 @@
1
- /**
2
- * Used to fetch the appropriate theme color for primary and contrast.
3
- * Usually black or similar, and white for contrast.
4
- * @param toggleValue the CS toggle value between black and white font color.
5
- * @returns hex value of the color.
6
- */
7
- declare const useToggleFontColor: (toggleValue?: boolean) => string;
8
- export default useToggleFontColor;