@windstream/react-shared-components 0.0.97 → 0.0.99

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 (139) hide show
  1. package/README.md +635 -635
  2. package/dist/contentful/index.esm.js +1 -1
  3. package/dist/contentful/index.esm.js.map +1 -1
  4. package/dist/contentful/index.js +1 -1
  5. package/dist/contentful/index.js.map +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/package.json +177 -177
  8. package/src/components/accordion/Accordion.stories.tsx +230 -230
  9. package/src/components/accordion/types.ts +11 -11
  10. package/src/components/alert-card/AlertCard.stories.tsx +171 -171
  11. package/src/components/alert-card/index.tsx +38 -38
  12. package/src/components/alert-card/types.ts +12 -12
  13. package/src/components/brand-button/BrandButton.stories.tsx +223 -223
  14. package/src/components/brand-button/helpers.ts +35 -35
  15. package/src/components/brand-button/index.tsx +115 -115
  16. package/src/components/brand-button/types.ts +37 -37
  17. package/src/components/button/Button.stories.tsx +108 -108
  18. package/src/components/button/index.tsx +27 -27
  19. package/src/components/button/types.ts +14 -14
  20. package/src/components/call-button/CallButton.stories.tsx +324 -324
  21. package/src/components/call-button/index.tsx +86 -86
  22. package/src/components/call-button/types.ts +11 -11
  23. package/src/components/checkbox/Checkbox.stories.tsx +247 -247
  24. package/src/components/checkbox/index.tsx +197 -197
  25. package/src/components/checkbox/types.ts +27 -27
  26. package/src/components/checklist/Checklist.stories.tsx +150 -150
  27. package/src/components/checklist/index.tsx +55 -55
  28. package/src/components/checklist/types.ts +14 -14
  29. package/src/components/collapse/Collapse.stories.tsx +255 -255
  30. package/src/components/collapse/index.tsx +46 -46
  31. package/src/components/collapse/types.ts +6 -6
  32. package/src/components/divider/Divider.stories.tsx +205 -205
  33. package/src/components/divider/index.tsx +22 -22
  34. package/src/components/divider/type.ts +3 -3
  35. package/src/components/image/Image.stories.tsx +113 -113
  36. package/src/components/image/index.tsx +25 -25
  37. package/src/components/image/types.ts +40 -40
  38. package/src/components/input/Input.stories.tsx +325 -325
  39. package/src/components/input/index.tsx +177 -177
  40. package/src/components/input/types.ts +37 -37
  41. package/src/components/link/Link.stories.tsx +163 -163
  42. package/src/components/link/types.ts +25 -25
  43. package/src/components/list/List.stories.tsx +272 -272
  44. package/src/components/list/index.tsx +88 -88
  45. package/src/components/list/list-item/index.tsx +38 -38
  46. package/src/components/list/list-item/types.ts +13 -13
  47. package/src/components/list/types.ts +29 -29
  48. package/src/components/material-icon/MaterialIcon.stories.tsx +322 -322
  49. package/src/components/material-icon/constants.ts +98 -98
  50. package/src/components/material-icon/index.tsx +47 -47
  51. package/src/components/material-icon/types.ts +31 -31
  52. package/src/components/modal/Modal.stories.tsx +171 -171
  53. package/src/components/modal/index.tsx +164 -164
  54. package/src/components/modal/types.ts +24 -24
  55. package/src/components/next-image/index.tsx +32 -32
  56. package/src/components/next-image/types.ts +1 -1
  57. package/src/components/radio-button/RadioButton.stories.tsx +307 -307
  58. package/src/components/radio-button/index.tsx +75 -75
  59. package/src/components/radio-button/types.ts +21 -21
  60. package/src/components/see-more/SeeMore.stories.tsx +181 -181
  61. package/src/components/see-more/index.tsx +44 -44
  62. package/src/components/see-more/types.ts +4 -4
  63. package/src/components/select/Select.stories.tsx +411 -411
  64. package/src/components/select/index.tsx +150 -150
  65. package/src/components/select/types.ts +35 -35
  66. package/src/components/select-plan-button/SelectPlanButton.stories.tsx +184 -184
  67. package/src/components/select-plan-button/index.tsx +57 -57
  68. package/src/components/select-plan-button/types.ts +14 -14
  69. package/src/components/skeleton/Skeleton.stories.tsx +179 -179
  70. package/src/components/skeleton/index.tsx +61 -61
  71. package/src/components/skeleton/types.ts +4 -4
  72. package/src/components/spinner/Spinner.stories.tsx +335 -335
  73. package/src/components/spinner/index.tsx +44 -44
  74. package/src/components/spinner/types.ts +5 -5
  75. package/src/components/text/Text.stories.tsx +321 -321
  76. package/src/components/text/index.tsx +25 -25
  77. package/src/components/text/types.ts +45 -45
  78. package/src/components/tooltip/Tooltip.stories.tsx +219 -219
  79. package/src/components/tooltip/index.tsx +74 -74
  80. package/src/components/tooltip/types.ts +7 -7
  81. package/src/components/view-cart-button/ViewCartButton.stories.tsx +252 -252
  82. package/src/components/view-cart-button/index.tsx +42 -42
  83. package/src/components/view-cart-button/types.ts +5 -5
  84. package/src/contentful/blocks/button/Button.stories.tsx +40 -40
  85. package/src/contentful/blocks/button/index.tsx +107 -107
  86. package/src/contentful/blocks/button/types.ts +34 -34
  87. package/src/contentful/blocks/callout/Callout.stories.tsx +23 -23
  88. package/src/contentful/blocks/callout/index.tsx +66 -66
  89. package/src/contentful/blocks/cards/Cards.stories.tsx +23 -23
  90. package/src/contentful/blocks/cards/index.tsx +13 -13
  91. package/src/contentful/blocks/cards/product-card/index.tsx +206 -206
  92. package/src/contentful/blocks/cards/product-card/types.ts +28 -28
  93. package/src/contentful/blocks/cards/testimonial-card/index.tsx +88 -88
  94. package/src/contentful/blocks/cards/testimonial-card/types.tsx +12 -12
  95. package/src/contentful/blocks/cards/types.ts +1 -1
  96. package/src/contentful/blocks/carousel/Carousel.stories.tsx +23 -23
  97. package/src/contentful/blocks/carousel/helper.tsx +356 -356
  98. package/src/contentful/blocks/carousel/index.tsx +74 -74
  99. package/src/contentful/blocks/carousel/types.ts +143 -143
  100. package/src/contentful/blocks/cta-callout/CtaCallout.stories.tsx +46 -46
  101. package/src/contentful/blocks/cta-callout/index.tsx +60 -60
  102. package/src/contentful/blocks/cta-callout/types.ts +26 -26
  103. package/src/contentful/blocks/find-kinetic/index.tsx +124 -124
  104. package/src/contentful/blocks/floating-banner/FloatingBanner.stories.tsx +34 -34
  105. package/src/contentful/blocks/floating-banner/types.ts +22 -22
  106. package/src/contentful/blocks/footer/Footer.stories.tsx +30 -30
  107. package/src/contentful/blocks/image-promo-bar/ImagePromoBar.stories.tsx +23 -23
  108. package/src/contentful/blocks/image-promo-bar/helper.tsx +28 -28
  109. package/src/contentful/blocks/image-promo-bar/index.tsx +234 -234
  110. package/src/contentful/blocks/image-promo-bar/types.ts +44 -44
  111. package/src/contentful/blocks/image-promo-bar/vimeo-embed.tsx +93 -93
  112. package/src/contentful/blocks/image-promo-bar/youtube-embed.tsx +46 -46
  113. package/src/contentful/blocks/modal/constants.ts +53 -53
  114. package/src/contentful/blocks/modal/index.tsx +91 -91
  115. package/src/contentful/blocks/modal/types.ts +12 -12
  116. package/src/contentful/blocks/navigation/desktop-link-groups.tsx/index.tsx +111 -111
  117. package/src/contentful/blocks/navigation/index.tsx +385 -385
  118. package/src/contentful/blocks/navigation/mobile-link-groups.tsx/index.tsx +80 -80
  119. package/src/contentful/blocks/navigation/types.ts +41 -41
  120. package/src/contentful/blocks/primary-hero/PrimaryHero.stories.tsx +23 -23
  121. package/src/contentful/blocks/primary-hero/index.tsx +229 -229
  122. package/src/contentful/blocks/primary-hero/types.ts +35 -35
  123. package/src/contentful/blocks/shape-background-wrapper/ShapeBackgroundWrapper.stories.tsx +26 -26
  124. package/src/contentful/blocks/shape-background-wrapper/index.tsx +124 -124
  125. package/src/contentful/blocks/shape-background-wrapper/types.ts +36 -36
  126. package/src/contentful/blocks/text/Text.stories.tsx +23 -23
  127. package/src/contentful/blocks/text/index.tsx +12 -12
  128. package/src/contentful/blocks/text/types.ts +1 -1
  129. package/src/contentful/index.ts +57 -57
  130. package/src/hooks/use-body-scroll-lock.ts +34 -34
  131. package/src/hooks/use-outside-click.ts +17 -17
  132. package/src/index.ts +96 -96
  133. package/src/next/index.ts +5 -5
  134. package/src/setupTests.ts +46 -46
  135. package/src/stories/DocsTemplate.tsx +24 -24
  136. package/src/styles/globals.css +343 -343
  137. package/src/types/global.d.ts +9 -9
  138. package/src/types/micro-components.ts +99 -99
  139. package/src/utils/index.ts +49 -49
@@ -1,229 +1,229 @@
1
- import React from "react";
2
- import { PrimaryHeroProps } from "./types";
3
-
4
- import { Checklist } from "@shared/components/checklist";
5
- import { NextImage } from "@shared/components/next-image";
6
- import { Text } from "@shared/components/text";
7
- import { Button } from "@shared/contentful/blocks/button";
8
- import { cx } from "@shared/utils";
9
-
10
- export const PrimaryHero: React.FC<PrimaryHeroProps> = props => {
11
- const {
12
- title,
13
- showAsHeading,
14
- subTitle,
15
- primaryCta1,
16
- carouselImages,
17
- bottomLink,
18
- price,
19
- priceCallout,
20
- priceSuffix,
21
- checklist,
22
- renderCheckPlans,
23
- badgeImage,
24
- pricingDescriptionDisclaimer,
25
- secondaryCta,
26
- secondaryCtaPrefix,
27
- onModalButtonClick,
28
- } = props;
29
-
30
- const bottomLinkLabel = bottomLink?.buttonLabel ?? bottomLink?.label;
31
-
32
- return (
33
- <div className="component-container p-5 lg:h-[724px] lg:p-0">
34
- <div
35
- className={cx(
36
- "primary-hero-container mx-auto flex flex-col sm:items-center sm:text-center lg:h-full lg:max-w-120 lg:flex-row lg:items-center lg:justify-between lg:gap-4 lg:px-4 lg:text-left"
37
- )}
38
- >
39
- {/* Left column: navy background, headline, body, address, button, link */}
40
- <div className={cx("relative flex flex-col text-white sm:w-[485px]")}>
41
- <div className="flex flex-col gap-5 lg:gap-6">
42
- {title && (
43
- <Text
44
- as={showAsHeading ? "h1" : "h2"}
45
- className="heading2 lg:heading1"
46
- >
47
- {title}
48
- </Text>
49
- )}
50
- {subTitle && (
51
- <Text as="p" className="subheading3 lg:subheading1">
52
- {subTitle}
53
- </Text>
54
- )}
55
-
56
- {/* price callout */}
57
- {price ? (
58
- <div className="flex">
59
- <div className="mr-2 mt-0.5">
60
- {priceCallout
61
- ? priceCallout.split("|").map((line, index) => (
62
- <Text key={index} as="p" className="body2">
63
- {line}
64
- </Text>
65
- ))
66
- : null}
67
- </div>
68
- <div className="flex">
69
- <Text as="p" className="subheading1 mt-0.5">
70
- $
71
- </Text>
72
- <Text as="p" className="subheading5">
73
- {price}
74
- </Text>
75
- {priceSuffix ? (
76
- <Text as="p" className="subheading1 mt-0.5">
77
- {priceSuffix}
78
- </Text>
79
- ) : null}
80
- </div>
81
- </div>
82
- ) : null}
83
-
84
- {/* checklist */}
85
- {checklist && (
86
- <Checklist
87
- listItemClassName="text-white body2"
88
- items={checklist.map(item => item.title)}
89
- />
90
- )}
91
-
92
- {/* CTA section */}
93
- <div className="flex flex-col gap-3">
94
- {/* desktop CTA */}
95
- {primaryCta1 && (
96
- <div className={cx("hidden lg:flex lg:flex-col")}>
97
- <Button
98
- {...primaryCta1}
99
- renderCheckPlans={renderCheckPlans}
100
- onModalButtonClick={onModalButtonClick}
101
- />
102
- </div>
103
- )}
104
-
105
- {secondaryCtaPrefix || secondaryCta ? (
106
- <div className="flex">
107
- {secondaryCtaPrefix && (
108
- <Text as="span" className="body2 mr-1">
109
- {secondaryCtaPrefix}
110
- </Text>
111
- )}
112
- {secondaryCta && (
113
- <Button
114
- linkClassName="body2 text-text-inverse"
115
- onModalButtonClick={onModalButtonClick}
116
- {...secondaryCta}
117
- />
118
- )}
119
- </div>
120
- ) : null}
121
-
122
- {/* desktop bottom link */}
123
- {bottomLink && (bottomLinkLabel || bottomLink?.href) && (
124
- <div className="hidden lg:block">
125
- <Button
126
- {...bottomLink}
127
- linkClassName="text-footnote text-white"
128
- onModalButtonClick={onModalButtonClick}
129
- />
130
- </div>
131
- )}
132
-
133
- {pricingDescriptionDisclaimer ? (
134
- <Text as="p" className="body3">
135
- {pricingDescriptionDisclaimer}
136
- </Text>
137
- ) : null}
138
- </div>
139
- </div>
140
- </div>
141
-
142
- {/* mobile hero image and bottom link */}
143
- <div className="lg:hidden">
144
- <div className={"relative my-8"}>
145
- {badgeImage ? (
146
- <NextImage
147
- src={badgeImage}
148
- alt={"Badge"}
149
- className="absolute left-5 top-5 aspect-square w-26 object-cover object-center"
150
- width={100}
151
- height={100}
152
- loading="eager"
153
- />
154
- ) : null}
155
- {carouselImages && carouselImages[0] ? (
156
- <NextImage
157
- src={carouselImages[0]}
158
- alt={"Hero"}
159
- className="aspect-[1.71:1] sm:aspect-[1.41:1] rounded-[40px] object-cover object-center sm:h-[420px]"
160
- width={350}
161
- height={205}
162
- loading="eager"
163
- />
164
- ) : null}
165
- </div>
166
-
167
- {bottomLink && (bottomLinkLabel || bottomLink?.href) && (
168
- <div>
169
- <Button
170
- {...bottomLink}
171
- onModalButtonClick={onModalButtonClick}
172
- linkClassName="body3 text-white"
173
- />
174
- </div>
175
- )}
176
-
177
- {pricingDescriptionDisclaimer ? (
178
- <Text as="p" className="body3">
179
- {pricingDescriptionDisclaimer}
180
- </Text>
181
- ) : null}
182
-
183
- {secondaryCtaPrefix || secondaryCta ? (
184
- <div className="flex">
185
- {secondaryCtaPrefix && (
186
- <Text as="span" className="body2 mr-1">
187
- {secondaryCtaPrefix}
188
- </Text>
189
- )}
190
- {secondaryCta && (
191
- <Button
192
- {...secondaryCta}
193
- onModalButtonClick={onModalButtonClick}
194
- linkClassName="text-white"
195
- />
196
- )}
197
- </div>
198
- ) : null}
199
- </div>
200
-
201
- {/* Right column: bright blue background, diagonal top edge, hero image */}
202
- <div className={cx("relative hidden lg:block")}>
203
- {badgeImage ? (
204
- <NextImage
205
- src={badgeImage}
206
- alt={"Badge"}
207
- className="absolute -left-26 top-18 aspect-square w-52 object-cover object-center"
208
- width={200}
209
- height={200}
210
- loading="eager"
211
- />
212
- ) : null}
213
- {carouselImages && carouselImages[0] ? (
214
- <NextImage
215
- src={carouselImages[0]}
216
- alt={"Hero"}
217
- className="aspect-square rounded-[40px] object-cover object-center"
218
- width={600}
219
- height={600}
220
- loading="eager"
221
- />
222
- ) : null}
223
- </div>
224
- </div>
225
- </div>
226
- );
227
- };
228
-
229
- export default PrimaryHero;
1
+ import React from "react";
2
+ import { PrimaryHeroProps } from "./types";
3
+
4
+ import { Checklist } from "@shared/components/checklist";
5
+ import { NextImage } from "@shared/components/next-image";
6
+ import { Text } from "@shared/components/text";
7
+ import { Button } from "@shared/contentful/blocks/button";
8
+ import { cx } from "@shared/utils";
9
+
10
+ export const PrimaryHero: React.FC<PrimaryHeroProps> = props => {
11
+ const {
12
+ title,
13
+ showAsHeading,
14
+ subTitle,
15
+ primaryCta1,
16
+ carouselImages,
17
+ bottomLink,
18
+ price,
19
+ priceCallout,
20
+ priceSuffix,
21
+ checklist,
22
+ renderCheckPlans,
23
+ badgeImage,
24
+ pricingDescriptionDisclaimer,
25
+ secondaryCta,
26
+ secondaryCtaPrefix,
27
+ onModalButtonClick,
28
+ } = props;
29
+
30
+ const bottomLinkLabel = bottomLink?.buttonLabel ?? bottomLink?.label;
31
+
32
+ return (
33
+ <div className="component-container p-5 lg:h-[724px] lg:p-0">
34
+ <div
35
+ className={cx(
36
+ "primary-hero-container mx-auto flex flex-col sm:items-center sm:text-center lg:h-full lg:max-w-120 lg:flex-row lg:items-center lg:justify-between lg:gap-4 lg:px-4 lg:text-left"
37
+ )}
38
+ >
39
+ {/* Left column: navy background, headline, body, address, button, link */}
40
+ <div className={cx("relative flex flex-col text-white sm:w-[485px]")}>
41
+ <div className="flex flex-col gap-5 lg:gap-6">
42
+ {title && (
43
+ <Text
44
+ as={showAsHeading ? "h1" : "h2"}
45
+ className="heading2 lg:heading1"
46
+ >
47
+ {title}
48
+ </Text>
49
+ )}
50
+ {subTitle && (
51
+ <Text as="p" className="subheading3 lg:subheading1">
52
+ {subTitle}
53
+ </Text>
54
+ )}
55
+
56
+ {/* price callout */}
57
+ {price ? (
58
+ <div className="flex">
59
+ <div className="mr-2 mt-0.5">
60
+ {priceCallout
61
+ ? priceCallout.split("|").map((line, index) => (
62
+ <Text key={index} as="p" className="body2">
63
+ {line}
64
+ </Text>
65
+ ))
66
+ : null}
67
+ </div>
68
+ <div className="flex">
69
+ <Text as="p" className="subheading1 mt-0.5">
70
+ $
71
+ </Text>
72
+ <Text as="p" className="subheading5">
73
+ {price}
74
+ </Text>
75
+ {priceSuffix ? (
76
+ <Text as="p" className="subheading1 mt-0.5">
77
+ {priceSuffix}
78
+ </Text>
79
+ ) : null}
80
+ </div>
81
+ </div>
82
+ ) : null}
83
+
84
+ {/* checklist */}
85
+ {checklist && (
86
+ <Checklist
87
+ listItemClassName="text-white body2"
88
+ items={checklist.map(item => item.title)}
89
+ />
90
+ )}
91
+
92
+ {/* CTA section */}
93
+ <div className="flex flex-col gap-3">
94
+ {/* desktop CTA */}
95
+ {primaryCta1 && (
96
+ <div className={cx("hidden lg:flex lg:flex-col")}>
97
+ <Button
98
+ {...primaryCta1}
99
+ renderCheckPlans={renderCheckPlans}
100
+ onModalButtonClick={onModalButtonClick}
101
+ />
102
+ </div>
103
+ )}
104
+
105
+ {secondaryCtaPrefix || secondaryCta ? (
106
+ <div className="flex">
107
+ {secondaryCtaPrefix && (
108
+ <Text as="span" className="body2 mr-1">
109
+ {secondaryCtaPrefix}
110
+ </Text>
111
+ )}
112
+ {secondaryCta && (
113
+ <Button
114
+ linkClassName="body2 text-text-inverse"
115
+ onModalButtonClick={onModalButtonClick}
116
+ {...secondaryCta}
117
+ />
118
+ )}
119
+ </div>
120
+ ) : null}
121
+
122
+ {/* desktop bottom link */}
123
+ {bottomLink && (bottomLinkLabel || bottomLink?.href) && (
124
+ <div className="hidden lg:block">
125
+ <Button
126
+ {...bottomLink}
127
+ linkClassName="text-footnote text-white"
128
+ onModalButtonClick={onModalButtonClick}
129
+ />
130
+ </div>
131
+ )}
132
+
133
+ {pricingDescriptionDisclaimer ? (
134
+ <Text as="p" className="body3">
135
+ {pricingDescriptionDisclaimer}
136
+ </Text>
137
+ ) : null}
138
+ </div>
139
+ </div>
140
+ </div>
141
+
142
+ {/* mobile hero image and bottom link */}
143
+ <div className="lg:hidden">
144
+ <div className={"relative my-8"}>
145
+ {badgeImage ? (
146
+ <NextImage
147
+ src={badgeImage}
148
+ alt={"Badge"}
149
+ className="absolute left-5 top-5 aspect-square w-26 object-cover object-center"
150
+ width={100}
151
+ height={100}
152
+ loading="eager"
153
+ />
154
+ ) : null}
155
+ {carouselImages && carouselImages[0] ? (
156
+ <NextImage
157
+ src={carouselImages[0]}
158
+ alt={"Hero"}
159
+ className="aspect-[1.71:1] sm:aspect-[1.41:1] rounded-[40px] object-cover object-center sm:h-[420px]"
160
+ width={350}
161
+ height={205}
162
+ loading="eager"
163
+ />
164
+ ) : null}
165
+ </div>
166
+
167
+ {bottomLink && (bottomLinkLabel || bottomLink?.href) && (
168
+ <div>
169
+ <Button
170
+ {...bottomLink}
171
+ onModalButtonClick={onModalButtonClick}
172
+ linkClassName="body3 text-white"
173
+ />
174
+ </div>
175
+ )}
176
+
177
+ {pricingDescriptionDisclaimer ? (
178
+ <Text as="p" className="body3">
179
+ {pricingDescriptionDisclaimer}
180
+ </Text>
181
+ ) : null}
182
+
183
+ {secondaryCtaPrefix || secondaryCta ? (
184
+ <div className="flex">
185
+ {secondaryCtaPrefix && (
186
+ <Text as="span" className="body2 mr-1">
187
+ {secondaryCtaPrefix}
188
+ </Text>
189
+ )}
190
+ {secondaryCta && (
191
+ <Button
192
+ {...secondaryCta}
193
+ onModalButtonClick={onModalButtonClick}
194
+ linkClassName="text-white"
195
+ />
196
+ )}
197
+ </div>
198
+ ) : null}
199
+ </div>
200
+
201
+ {/* Right column: bright blue background, diagonal top edge, hero image */}
202
+ <div className={cx("relative hidden lg:block")}>
203
+ {badgeImage ? (
204
+ <NextImage
205
+ src={badgeImage}
206
+ alt={"Badge"}
207
+ className="absolute -left-26 top-18 aspect-square w-52 object-cover object-center"
208
+ width={200}
209
+ height={200}
210
+ loading="eager"
211
+ />
212
+ ) : null}
213
+ {carouselImages && carouselImages[0] ? (
214
+ <NextImage
215
+ src={carouselImages[0]}
216
+ alt={"Hero"}
217
+ className="aspect-square rounded-[40px] object-cover object-center"
218
+ width={600}
219
+ height={600}
220
+ loading="eager"
221
+ />
222
+ ) : null}
223
+ </div>
224
+ </div>
225
+ </div>
226
+ );
227
+ };
228
+
229
+ export default PrimaryHero;
@@ -1,35 +1,35 @@
1
- import React from "react";
2
-
3
- import { CheckPlansProps } from "@shared/types/micro-components";
4
-
5
- export type PrimaryHeroProps = {
6
- title: string;
7
- showAsHeading?: boolean;
8
- subTitle?: string;
9
- price?: string;
10
- priceSuffix?: string;
11
- priceCallout?: string;
12
- pricingDescription?: string;
13
- pricingDescriptionDisclaimer?: string;
14
- checklist?: {
15
- title: string;
16
- iconUrl?: string;
17
- anchorId?: string;
18
- }[];
19
- logoLockup?: string;
20
- checkAvailabilityEyebrow?: string;
21
- primaryCtaPrefix1?: string;
22
- primaryCtaPrefix2?: string;
23
- primaryCta1?: any;
24
- primaryCta2?: any;
25
- secondaryCtaPrefix?: string;
26
- secondaryCta?: any;
27
- bottomLink?: any;
28
- carouselImages?: string[];
29
- squareImage?: boolean;
30
- badgeImage?: string;
31
- textColor?: string;
32
- maxWidth?: boolean;
33
- renderCheckPlans?: (overrides?: CheckPlansProps) => React.ReactNode;
34
- onModalButtonClick?: (id?: string) => void;
35
- };
1
+ import React from "react";
2
+
3
+ import { CheckPlansProps } from "@shared/types/micro-components";
4
+
5
+ export type PrimaryHeroProps = {
6
+ title: string;
7
+ showAsHeading?: boolean;
8
+ subTitle?: string;
9
+ price?: string;
10
+ priceSuffix?: string;
11
+ priceCallout?: string;
12
+ pricingDescription?: string;
13
+ pricingDescriptionDisclaimer?: string;
14
+ checklist?: {
15
+ title: string;
16
+ iconUrl?: string;
17
+ anchorId?: string;
18
+ }[];
19
+ logoLockup?: string;
20
+ checkAvailabilityEyebrow?: string;
21
+ primaryCtaPrefix1?: string;
22
+ primaryCtaPrefix2?: string;
23
+ primaryCta1?: any;
24
+ primaryCta2?: any;
25
+ secondaryCtaPrefix?: string;
26
+ secondaryCta?: any;
27
+ bottomLink?: any;
28
+ carouselImages?: string[];
29
+ squareImage?: boolean;
30
+ badgeImage?: string;
31
+ textColor?: string;
32
+ maxWidth?: boolean;
33
+ renderCheckPlans?: (overrides?: CheckPlansProps) => React.ReactNode;
34
+ onModalButtonClick?: (id?: string) => void;
35
+ };
@@ -1,26 +1,26 @@
1
- import { ShapeBackgroundWrapper } from "./index";
2
-
3
- import { DocsPage } from "@shared/stories/DocsTemplate";
4
- import type { Meta, StoryObj } from "@storybook/react";
5
-
6
- const meta: Meta<typeof ShapeBackgroundWrapper> = {
7
- title: "Contentful Blocks/ShapeBackgroundWrapper",
8
- component: ShapeBackgroundWrapper,
9
- tags: ["autodocs"],
10
- parameters: {
11
- layout: "centered",
12
- docs: {
13
- page: DocsPage,
14
- description: {
15
- component:
16
- "Contentful shape background wrapper block. Wraps children with optional SVG shape background.",
17
- },
18
- },
19
- },
20
- args: {
21
- children: "Content",
22
- },
23
- };
24
- export default meta;
25
- type Story = StoryObj<typeof meta>;
26
- export const Default: Story = {};
1
+ import { ShapeBackgroundWrapper } from "./index";
2
+
3
+ import { DocsPage } from "@shared/stories/DocsTemplate";
4
+ import type { Meta, StoryObj } from "@storybook/react";
5
+
6
+ const meta: Meta<typeof ShapeBackgroundWrapper> = {
7
+ title: "Contentful Blocks/ShapeBackgroundWrapper",
8
+ component: ShapeBackgroundWrapper,
9
+ tags: ["autodocs"],
10
+ parameters: {
11
+ layout: "centered",
12
+ docs: {
13
+ page: DocsPage,
14
+ description: {
15
+ component:
16
+ "Contentful shape background wrapper block. Wraps children with optional SVG shape background.",
17
+ },
18
+ },
19
+ },
20
+ args: {
21
+ children: "Content",
22
+ },
23
+ };
24
+ export default meta;
25
+ type Story = StoryObj<typeof meta>;
26
+ export const Default: Story = {};