@windstream/react-shared-components 0.1.71 → 0.1.72

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 (208) hide show
  1. package/README.md +635 -635
  2. package/dist/contentful/index.d.ts +106 -30
  3. package/dist/contentful/index.esm.js +4 -2
  4. package/dist/contentful/index.esm.js.map +1 -1
  5. package/dist/contentful/index.js +4 -2
  6. package/dist/contentful/index.js.map +1 -1
  7. package/dist/core.d.ts +5 -5
  8. package/dist/index.d.ts +4 -4
  9. package/dist/index.esm.js +7 -5
  10. package/dist/index.esm.js.map +1 -1
  11. package/dist/index.js +7 -5
  12. package/dist/index.js.map +1 -1
  13. package/dist/next/index.esm.js +3 -1
  14. package/dist/next/index.esm.js.map +1 -1
  15. package/dist/next/index.js +3 -1
  16. package/dist/next/index.js.map +1 -1
  17. package/dist/styles.css +1 -1
  18. package/dist/utils/index.d.ts +15 -3
  19. package/dist/utils/index.esm.js +1 -1
  20. package/dist/utils/index.esm.js.map +1 -1
  21. package/dist/utils/index.js +1 -1
  22. package/dist/utils/index.js.map +1 -1
  23. package/package.json +185 -185
  24. package/src/components/accordion/Accordion.stories.tsx +230 -230
  25. package/src/components/accordion/index.tsx +70 -70
  26. package/src/components/accordion/types.ts +12 -12
  27. package/src/components/alert-card/AlertCard.stories.tsx +171 -171
  28. package/src/components/alert-card/index.tsx +41 -41
  29. package/src/components/alert-card/types.ts +13 -13
  30. package/src/components/brand-button/BrandButton.stories.tsx +223 -223
  31. package/src/components/brand-button/helpers.ts +35 -35
  32. package/src/components/brand-button/index.tsx +120 -120
  33. package/src/components/brand-button/types.ts +38 -38
  34. package/src/components/button/Button.stories.tsx +108 -108
  35. package/src/components/button/index.tsx +27 -27
  36. package/src/components/button/types.ts +14 -14
  37. package/src/components/call-button/CallButton.stories.tsx +324 -324
  38. package/src/components/call-button/index.tsx +106 -106
  39. package/src/components/call-button/types.ts +16 -16
  40. package/src/components/checkbox/Checkbox.stories.tsx +247 -247
  41. package/src/components/checkbox/index.tsx +197 -197
  42. package/src/components/checkbox/types.ts +27 -27
  43. package/src/components/checklist/Checklist.stories.tsx +150 -150
  44. package/src/components/checklist/index.tsx +61 -61
  45. package/src/components/checklist/types.ts +17 -17
  46. package/src/components/collapse/Collapse.stories.tsx +255 -255
  47. package/src/components/collapse/index.tsx +46 -46
  48. package/src/components/collapse/types.ts +6 -6
  49. package/src/components/divider/Divider.stories.tsx +205 -205
  50. package/src/components/divider/index.tsx +22 -22
  51. package/src/components/divider/type.ts +3 -3
  52. package/src/components/image/Image.stories.tsx +113 -113
  53. package/src/components/image/index.tsx +25 -25
  54. package/src/components/image/types.ts +40 -40
  55. package/src/components/input/Input.stories.tsx +325 -325
  56. package/src/components/input/index.tsx +177 -177
  57. package/src/components/input/types.ts +37 -37
  58. package/src/components/link/Link.stories.tsx +163 -163
  59. package/src/components/link/index.tsx +116 -116
  60. package/src/components/link/types.ts +25 -25
  61. package/src/components/list/List.stories.tsx +272 -272
  62. package/src/components/list/index.tsx +88 -88
  63. package/src/components/list/list-item/index.tsx +38 -38
  64. package/src/components/list/list-item/types.ts +13 -13
  65. package/src/components/list/types.ts +29 -29
  66. package/src/components/material-icon/MaterialIcon.stories.tsx +322 -322
  67. package/src/components/material-icon/constants.ts +99 -99
  68. package/src/components/material-icon/index.tsx +47 -47
  69. package/src/components/material-icon/types.ts +31 -31
  70. package/src/components/modal/Modal.stories.tsx +171 -171
  71. package/src/components/modal/index.tsx +164 -164
  72. package/src/components/modal/types.ts +24 -24
  73. package/src/components/next-image/index.tsx +74 -72
  74. package/src/components/next-image/types.ts +1 -1
  75. package/src/components/pagination/index.tsx +91 -91
  76. package/src/components/pagination/types.ts +6 -6
  77. package/src/components/radio-button/RadioButton.stories.tsx +307 -307
  78. package/src/components/radio-button/index.tsx +75 -75
  79. package/src/components/radio-button/types.ts +21 -21
  80. package/src/components/see-more/SeeMore.stories.tsx +181 -181
  81. package/src/components/see-more/index.tsx +44 -44
  82. package/src/components/see-more/types.ts +4 -4
  83. package/src/components/select/Select.stories.tsx +411 -411
  84. package/src/components/select/index.tsx +155 -155
  85. package/src/components/select/types.ts +36 -36
  86. package/src/components/select-plan-button/SelectPlanButton.stories.tsx +184 -184
  87. package/src/components/select-plan-button/index.tsx +63 -63
  88. package/src/components/select-plan-button/types.ts +17 -17
  89. package/src/components/skeleton/Skeleton.stories.tsx +179 -179
  90. package/src/components/skeleton/index.tsx +61 -61
  91. package/src/components/skeleton/types.ts +4 -4
  92. package/src/components/spinner/Spinner.stories.tsx +335 -335
  93. package/src/components/spinner/index.tsx +44 -44
  94. package/src/components/spinner/types.ts +5 -5
  95. package/src/components/text/Text.stories.tsx +321 -321
  96. package/src/components/text/index.tsx +25 -25
  97. package/src/components/text/types.ts +45 -45
  98. package/src/components/tooltip/Tooltip.stories.tsx +219 -219
  99. package/src/components/tooltip/index.tsx +74 -74
  100. package/src/components/tooltip/types.ts +7 -7
  101. package/src/components/view-cart-button/ViewCartButton.stories.tsx +252 -252
  102. package/src/components/view-cart-button/index.tsx +42 -42
  103. package/src/components/view-cart-button/types.ts +5 -5
  104. package/src/contentful/blocks/accordion/Accordion.stories.mocks.tsx +128 -128
  105. package/src/contentful/blocks/accordion/Accordion.stories.tsx +98 -106
  106. package/src/contentful/blocks/accordion/index.tsx +112 -112
  107. package/src/contentful/blocks/accordion/types.ts +34 -34
  108. package/src/contentful/blocks/address-input-banner/index.tsx +52 -52
  109. package/src/contentful/blocks/address-input-banner/types.ts +14 -14
  110. package/src/contentful/blocks/anchored-bottom-banner/index.tsx +181 -70
  111. package/src/contentful/blocks/anchored-bottom-banner/types.ts +13 -10
  112. package/src/contentful/blocks/blogs-grid/index.tsx +134 -134
  113. package/src/contentful/blocks/blogs-grid/types.ts +26 -26
  114. package/src/contentful/blocks/blogs-grid-base/index.tsx +119 -119
  115. package/src/contentful/blocks/blogs-grid-base/types.ts +36 -36
  116. package/src/contentful/blocks/breadcrumbs/index.tsx +81 -81
  117. package/src/contentful/blocks/breadcrumbs/types.ts +6 -6
  118. package/src/contentful/blocks/button/Button.stories.tsx +40 -40
  119. package/src/contentful/blocks/button/index.tsx +131 -131
  120. package/src/contentful/blocks/button/types.ts +39 -39
  121. package/src/contentful/blocks/callout/Callout.stories.tsx +23 -23
  122. package/src/contentful/blocks/callout/index.tsx +252 -88
  123. package/src/contentful/blocks/callout/types.ts +68 -15
  124. package/src/contentful/blocks/cards/Cards.stories.tsx +23 -23
  125. package/src/contentful/blocks/cards/blog-card/index.tsx +129 -129
  126. package/src/contentful/blocks/cards/blog-card/types.ts +34 -34
  127. package/src/contentful/blocks/cards/floating-image-card/index.tsx +119 -0
  128. package/src/contentful/blocks/cards/floating-image-card/types.ts +30 -0
  129. package/src/contentful/blocks/cards/full-image-card/index.tsx +130 -0
  130. package/src/contentful/blocks/cards/full-image-card/types.ts +29 -0
  131. package/src/contentful/blocks/cards/index.tsx +13 -13
  132. package/src/contentful/blocks/cards/product-card/index.tsx +251 -251
  133. package/src/contentful/blocks/cards/product-card/types.ts +28 -28
  134. package/src/contentful/blocks/cards/simple-card/index.tsx +325 -89
  135. package/src/contentful/blocks/cards/simple-card/types.ts +71 -28
  136. package/src/contentful/blocks/cards/testimonial-card/index.tsx +90 -90
  137. package/src/contentful/blocks/cards/testimonial-card/types.tsx +12 -12
  138. package/src/contentful/blocks/cards/types.ts +1 -1
  139. package/src/contentful/blocks/carousel/Carousel.stories.tsx +23 -23
  140. package/src/contentful/blocks/carousel/helper.tsx +440 -440
  141. package/src/contentful/blocks/carousel/index.tsx +85 -85
  142. package/src/contentful/blocks/carousel/types.ts +144 -144
  143. package/src/contentful/blocks/cart-retention-banner/index.tsx +105 -105
  144. package/src/contentful/blocks/cart-retention-banner/types.ts +11 -11
  145. package/src/contentful/blocks/comparison-table/index.tsx +29 -27
  146. package/src/contentful/blocks/comparison-table/types.ts +6 -6
  147. package/src/contentful/blocks/cookiebanner/index.tsx +146 -146
  148. package/src/contentful/blocks/cookiebanner/type.ts +7 -7
  149. package/src/contentful/blocks/cta-callout/CtaCallout.stories.tsx +46 -46
  150. package/src/contentful/blocks/cta-callout/index.tsx +71 -71
  151. package/src/contentful/blocks/cta-callout/types.ts +26 -26
  152. package/src/contentful/blocks/dynamic-tabs/index.tsx +204 -204
  153. package/src/contentful/blocks/dynamic-tabs/types.ts +21 -21
  154. package/src/contentful/blocks/email-input-block/index.tsx +116 -116
  155. package/src/contentful/blocks/email-input-block/types.ts +16 -16
  156. package/src/contentful/blocks/find-kinetic/FindKinetic.stories.tsx +23 -23
  157. package/src/contentful/blocks/find-kinetic/index.tsx +130 -130
  158. package/src/contentful/blocks/find-kinetic/types.ts +19 -19
  159. package/src/contentful/blocks/floating-banner/FloatingBanner.stories.tsx +34 -34
  160. package/src/contentful/blocks/floating-banner/index.tsx +97 -97
  161. package/src/contentful/blocks/floating-banner/types.ts +22 -22
  162. package/src/contentful/blocks/footer/Footer.stories.tsx +317 -204
  163. package/src/contentful/blocks/footer/index.tsx +91 -91
  164. package/src/contentful/blocks/footer/types.ts +13 -13
  165. package/src/contentful/blocks/image-promo-bar/ImagePromoBar.stories.tsx +23 -23
  166. package/src/contentful/blocks/image-promo-bar/helper.tsx +28 -28
  167. package/src/contentful/blocks/image-promo-bar/index.tsx +246 -246
  168. package/src/contentful/blocks/image-promo-bar/types.ts +44 -44
  169. package/src/contentful/blocks/image-promo-bar/vimeo-embed.tsx +93 -93
  170. package/src/contentful/blocks/image-promo-bar/youtube-embed.tsx +46 -46
  171. package/src/contentful/blocks/modal/constants.ts +53 -53
  172. package/src/contentful/blocks/modal/index.tsx +107 -107
  173. package/src/contentful/blocks/modal/types.ts +12 -12
  174. package/src/contentful/blocks/navigation/desktop-link-groups.tsx/index.tsx +124 -124
  175. package/src/contentful/blocks/navigation/index.tsx +462 -462
  176. package/src/contentful/blocks/navigation/mobile-link-groups.tsx/index.tsx +82 -82
  177. package/src/contentful/blocks/navigation/types.ts +64 -64
  178. package/src/contentful/blocks/primary-hero/PrimaryHero.stories.tsx +23 -23
  179. package/src/contentful/blocks/primary-hero/index.tsx +236 -236
  180. package/src/contentful/blocks/primary-hero/types.ts +37 -37
  181. package/src/contentful/blocks/search-block/index.tsx +90 -90
  182. package/src/contentful/blocks/search-block/types.ts +15 -15
  183. package/src/contentful/blocks/shape-background-wrapper/ShapeBackgroundWrapper.stories.tsx +26 -26
  184. package/src/contentful/blocks/shape-background-wrapper/index.tsx +124 -124
  185. package/src/contentful/blocks/shape-background-wrapper/types.ts +36 -36
  186. package/src/contentful/blocks/text/Text.stories.tsx +23 -23
  187. package/src/contentful/blocks/text/index.tsx +12 -12
  188. package/src/contentful/blocks/text/types.ts +1 -1
  189. package/src/contentful/index.ts +105 -105
  190. package/src/hooks/contentful/use-contentful-rich-text.tsx +309 -307
  191. package/src/hooks/contentful/use-processed-check-list.ts +63 -63
  192. package/src/hooks/use-body-scroll-lock.ts +34 -34
  193. package/src/hooks/use-carousel-swipe.ts +264 -264
  194. package/src/hooks/use-outside-click.ts +17 -17
  195. package/src/index.ts +101 -101
  196. package/src/next/index.ts +5 -5
  197. package/src/setupTests.ts +46 -46
  198. package/src/stories/DocsTemplate.tsx +24 -24
  199. package/src/styles/globals.css +343 -343
  200. package/src/types/global.d.ts +9 -9
  201. package/src/types/micro-components.ts +99 -99
  202. package/src/types/utm.ts +49 -49
  203. package/src/utils/contentful/to-document.ts +24 -24
  204. package/src/utils/cookie.ts +84 -84
  205. package/src/utils/cx.ts +49 -49
  206. package/src/utils/index.ts +41 -38
  207. package/src/utils/speed-card-bg.ts +24 -0
  208. package/src/utils/utm.ts +221 -221
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from 'react';
2
- import React__default, { ReactNode, FC } from 'react';
2
+ import React__default, { ReactNode, CSSProperties, FC } from 'react';
3
3
  import { ResponsiveSize } from '@shared/components/brand-button/types';
4
4
  import { Fill, Size } from '@shared/components/material-icon/types';
5
5
  import { CheckPlansProps, Asset, Button as Button$1, ButtonGroup } from '@shared/types/micro-components';
@@ -35,30 +35,6 @@ type ThemeKey$1 = "blue" | "green" | "yellow" | "purple" | "white" | "navy" | "c
35
35
 
36
36
  declare const Accordion: React__default.FC<AccordionProps>;
37
37
 
38
- type CalloutProps = {
39
- title?: string;
40
- enableHeading?: boolean;
41
- subtitle?: string;
42
- applyBoxShadow?: boolean;
43
- cardStackingMobile?: boolean;
44
- bottomText?: string;
45
- color?: "dark" | "light";
46
- cardsWidth?: string;
47
- maxCardsPerRow?: number;
48
- noGutter?: boolean;
49
- items: any[];
50
- maxWidth?: boolean;
51
- cardType?: "simple" | "blog";
52
- };
53
-
54
- declare const Callout: React__default.FC<CalloutProps>;
55
-
56
- type CardsProps = {};
57
-
58
- declare const Cards: React.FC<{
59
- fields: CardsProps;
60
- }>;
61
-
62
38
  type ButtonProps = {
63
39
  showButtonAs?: "solid" | "text" | "unstyled";
64
40
  buttonVariant?: "primary_brand" | "secondary" | "primary_inverse";
@@ -91,20 +67,117 @@ type ButtonProps = {
91
67
  iconSize?: Size;
92
68
  };
93
69
 
70
+ type CalloutCardType = "simple" | "blog" | "fullImage" | "floatingImage";
71
+ type CalloutCtaProps = ButtonProps & {
72
+ label?: string;
73
+ };
74
+ type CalloutItem = {
75
+ /**
76
+ * Optional per-item card type. When provided, overrides the top-level
77
+ * `cardType` for this single item — enables mixed card variants in one
78
+ * Callout (e.g. one full-image + two simple cards).
79
+ */
80
+ cardType?: CalloutCardType;
81
+ [key: string]: any;
82
+ };
83
+ type CalloutProps = {
84
+ /** Outer `<section>` id — anchor link target. */
85
+ anchorId?: string;
86
+ title?: string;
87
+ enableHeading?: boolean;
88
+ subtitle?: string;
89
+ description?: string;
90
+ finePrint?: ReactNode;
91
+ cta?: CalloutCtaProps;
92
+ applyBoxShadow?: boolean;
93
+ cardStackingMobile?: boolean;
94
+ bottomText?: string;
95
+ color?: "dark" | "light";
96
+ /**
97
+ * When `true` (default) cards are laid out in a responsive Tailwind
98
+ * grid sized by `maxCardsPerRow`. When `false` the cards stretch
99
+ * full-width and stack vertically (no inner widths).
100
+ */
101
+ cardsWidth?: boolean;
102
+ maxCardsPerRow?: number;
103
+ noGutter?: boolean;
104
+ items: CalloutItem[];
105
+ maxWidth?: boolean;
106
+ /** Top-level card type used when an item does not specify its own. */
107
+ cardType?: CalloutCardType;
108
+ /**
109
+ * Background color token. When omitted the section has no background
110
+ * (preserves prior behavior for existing 0.1.70 consumers).
111
+ */
112
+ backgroundColor?: "cream500" | "gray100" | "white" | "transparent" | "blue" | "green" | "navy" | "purple" | "yellow";
113
+ /** Raw background CSS value (overrides `backgroundColor` when present). */
114
+ background?: string;
115
+ /** Inline text color override applied to the heading region. */
116
+ textColor?: string;
117
+ /** Extra class names for the outer <section>. */
118
+ containerClassName?: string;
119
+ /** Extra class names for the inner content wrapper. */
120
+ innerClassName?: string;
121
+ };
122
+
123
+ declare const Callout: React__default.FC<CalloutProps>;
124
+
125
+ type CardsProps = {};
126
+
127
+ declare const Cards: React.FC<{
128
+ fields: CardsProps;
129
+ }>;
130
+
131
+ type PinwheelColor = "Blue-#307998" | "Green-#209A61" | "Orange-#DE7E0A" | "Purple-#7E1458" | (string & {});
132
+ type SimpleCardCtaBottom = {
133
+ title?: string;
134
+ href?: string;
135
+ };
94
136
  type Item = {
95
137
  title?: string;
96
138
  image?: string;
139
+ imageAlt?: string;
140
+ imageWidth?: number;
141
+ imageHeight?: number;
97
142
  imageAlignment?: "left" | "right" | "center";
98
- imageView?: "standard" | "icon" | "full";
143
+ iconAlignment?: "left" | "right" | "center";
144
+ /**
145
+ * Layout variant for the image. `standard` / `icon` render an inline
146
+ * icon above the content. `full` renders a full-bleed top image.
147
+ * `margin` is `full` with horizontal padding.
148
+ */
149
+ imageView?: "standard" | "icon" | "full" | "margin" | "inset";
150
+ body?: ReactNode;
151
+ /** Optional secondary rich-text region (port of local `richText`). */
152
+ richText?: ReactNode;
99
153
  cta?: ButtonProps;
100
154
  ctaAlignment?: "left" | "right" | "center";
101
- body?: ReactNode;
155
+ /** Top "location" CTA, rendered above the title with a `location_on` icon. */
156
+ ctaBottom?: SimpleCardCtaBottom;
157
+ ctaAlignmentBottom?: "left" | "right" | "center";
158
+ /** Legacy token-based card background (mapped via `backgroundColorMap`). */
102
159
  backgroundColor?: string;
160
+ /** Raw color value used when `applyCardBackgroundColor` is true. */
161
+ applyCardBackgroundColor?: boolean;
162
+ textColor?: string;
163
+ showBackgroundImage?: boolean;
164
+ pinwheelColor?: PinwheelColor;
165
+ /** On `lg:` and up, lays out icon + content side-by-side. */
166
+ imageToRichTextAlignment?: boolean;
167
+ /** Bold label between title and the phone/hours table. */
168
+ titleLocation?: string;
169
+ phoneNumber?: string[];
170
+ /** Each entry uses a `label|value` separator. */
171
+ workingHours?: string[];
172
+ shadow?: boolean;
103
173
  };
104
174
  type SimpleCardProps = {
105
175
  card: Item;
106
176
  lgWidth?: string;
107
177
  mdWidth?: string;
178
+ className?: string;
179
+ contentClassName?: string;
180
+ style?: CSSProperties;
108
181
  };
109
182
 
110
183
  declare const SimpleCard: React__default.FC<SimpleCardProps>;
@@ -662,13 +735,16 @@ declare function DynamicTabs(props: DynamicTabsT): react_jsx_runtime.JSX.Element
662
735
 
663
736
  interface AnchoredBottomBannerProps {
664
737
  ctaSuffixText?: string;
665
- backgroundColor?: "navy" | "yellow" | "green" | "purple" | "blue";
738
+ backgroundColor?: "navy" | "yellow" | "green" | "purple" | "blue" | "white";
666
739
  iconName?: string;
667
740
  boxShadow?: boolean;
668
741
  ctaButtonLabel?: string;
669
742
  ctaButtonLink?: string;
670
743
  ctaButtonTarget?: string;
671
744
  anchorId?: string;
745
+ enableCountdownTimer?: boolean;
746
+ countdownStartDateTime?: string;
747
+ countdownEndDateTime?: string;
672
748
  }
673
749
 
674
750
  declare const AnchoredBottomBanner: React__default.FC<AnchoredBottomBannerProps>;
@@ -734,11 +810,11 @@ declare const toDocument: (v: unknown | null | undefined) => Document | null;
734
810
  */
735
811
  declare function renderContentfulRichText(doc: Document | null | undefined, target?: boolean, className?: string, linkClassName?: string, options?: Options): ReactNode | null;
736
812
  declare function useContentfulRichText(doc: Document | null | undefined, options?: Options): ReactNode | null;
737
- declare function renderContentfulRichTextTable(doc: Document | null | undefined, links?: any): any;
813
+ declare function renderContentfulRichTextTable(doc: Document | null | undefined, links?: any): ReactNode;
738
814
 
739
815
  declare const label1BoldOptions: {
740
816
  renderMark: {
741
- [x: number]: (text: ReactNode) => React$1.DetailedReactHTMLElement<{
817
+ bold: (text: ReactNode) => React$1.DetailedReactHTMLElement<{
742
818
  className: string;
743
819
  }, HTMLElement>;
744
820
  };