@windstream/react-shared-components 0.1.42 → 0.1.44

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 (189) hide show
  1. package/README.md +635 -635
  2. package/dist/contentful/index.d.ts +20 -2
  3. package/dist/contentful/index.esm.js +2 -2
  4. package/dist/contentful/index.esm.js.map +1 -1
  5. package/dist/contentful/index.js +2 -2
  6. package/dist/contentful/index.js.map +1 -1
  7. package/dist/core.d.ts +1 -0
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.esm.js +1 -1
  10. package/dist/index.esm.js.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/styles.css +1 -1
  14. package/package.json +185 -185
  15. package/src/components/accordion/Accordion.stories.tsx +230 -230
  16. package/src/components/accordion/index.tsx +70 -70
  17. package/src/components/accordion/types.ts +12 -12
  18. package/src/components/alert-card/AlertCard.stories.tsx +171 -171
  19. package/src/components/alert-card/index.tsx +41 -41
  20. package/src/components/alert-card/types.ts +13 -13
  21. package/src/components/brand-button/BrandButton.stories.tsx +223 -223
  22. package/src/components/brand-button/helpers.ts +35 -35
  23. package/src/components/brand-button/index.tsx +120 -114
  24. package/src/components/brand-button/types.ts +38 -37
  25. package/src/components/button/Button.stories.tsx +108 -108
  26. package/src/components/button/index.tsx +27 -27
  27. package/src/components/button/types.ts +14 -14
  28. package/src/components/call-button/CallButton.stories.tsx +324 -324
  29. package/src/components/call-button/index.tsx +86 -86
  30. package/src/components/call-button/types.ts +11 -11
  31. package/src/components/checkbox/Checkbox.stories.tsx +247 -247
  32. package/src/components/checkbox/index.tsx +197 -197
  33. package/src/components/checkbox/types.ts +27 -27
  34. package/src/components/checklist/Checklist.stories.tsx +150 -150
  35. package/src/components/checklist/index.tsx +61 -61
  36. package/src/components/checklist/types.ts +17 -17
  37. package/src/components/collapse/Collapse.stories.tsx +255 -255
  38. package/src/components/collapse/index.tsx +46 -46
  39. package/src/components/collapse/types.ts +6 -6
  40. package/src/components/divider/Divider.stories.tsx +205 -205
  41. package/src/components/divider/index.tsx +22 -22
  42. package/src/components/divider/type.ts +3 -3
  43. package/src/components/image/Image.stories.tsx +113 -113
  44. package/src/components/image/index.tsx +25 -25
  45. package/src/components/image/types.ts +40 -40
  46. package/src/components/input/Input.stories.tsx +325 -325
  47. package/src/components/input/index.tsx +177 -177
  48. package/src/components/input/types.ts +37 -37
  49. package/src/components/link/Link.stories.tsx +163 -163
  50. package/src/components/link/index.tsx +109 -109
  51. package/src/components/link/types.ts +25 -25
  52. package/src/components/list/List.stories.tsx +272 -272
  53. package/src/components/list/index.tsx +88 -88
  54. package/src/components/list/list-item/index.tsx +38 -38
  55. package/src/components/list/list-item/types.ts +13 -13
  56. package/src/components/list/types.ts +29 -29
  57. package/src/components/material-icon/MaterialIcon.stories.tsx +322 -322
  58. package/src/components/material-icon/constants.ts +98 -98
  59. package/src/components/material-icon/index.tsx +47 -47
  60. package/src/components/material-icon/types.ts +31 -31
  61. package/src/components/modal/Modal.stories.tsx +171 -171
  62. package/src/components/modal/index.tsx +164 -164
  63. package/src/components/modal/types.ts +24 -24
  64. package/src/components/next-image/index.tsx +54 -54
  65. package/src/components/next-image/types.ts +1 -1
  66. package/src/components/pagination/index.tsx +100 -100
  67. package/src/components/pagination/types.ts +6 -6
  68. package/src/components/radio-button/RadioButton.stories.tsx +307 -307
  69. package/src/components/radio-button/index.tsx +75 -75
  70. package/src/components/radio-button/types.ts +21 -21
  71. package/src/components/see-more/SeeMore.stories.tsx +181 -181
  72. package/src/components/see-more/index.tsx +44 -44
  73. package/src/components/see-more/types.ts +4 -4
  74. package/src/components/select/Select.stories.tsx +411 -411
  75. package/src/components/select/index.tsx +155 -155
  76. package/src/components/select/types.ts +36 -36
  77. package/src/components/select-plan-button/SelectPlanButton.stories.tsx +184 -184
  78. package/src/components/select-plan-button/index.tsx +63 -63
  79. package/src/components/select-plan-button/types.ts +17 -17
  80. package/src/components/skeleton/Skeleton.stories.tsx +179 -179
  81. package/src/components/skeleton/index.tsx +61 -61
  82. package/src/components/skeleton/types.ts +4 -4
  83. package/src/components/spinner/Spinner.stories.tsx +335 -335
  84. package/src/components/spinner/index.tsx +44 -44
  85. package/src/components/spinner/types.ts +5 -5
  86. package/src/components/text/Text.stories.tsx +321 -321
  87. package/src/components/text/index.tsx +25 -25
  88. package/src/components/text/types.ts +45 -45
  89. package/src/components/tooltip/Tooltip.stories.tsx +219 -219
  90. package/src/components/tooltip/index.tsx +74 -74
  91. package/src/components/tooltip/types.ts +7 -7
  92. package/src/components/view-cart-button/ViewCartButton.stories.tsx +252 -252
  93. package/src/components/view-cart-button/index.tsx +42 -42
  94. package/src/components/view-cart-button/types.ts +5 -5
  95. package/src/contentful/blocks/accordion/Accordion.stories.tsx +29 -29
  96. package/src/contentful/blocks/accordion/index.tsx +62 -62
  97. package/src/contentful/blocks/accordion/types.ts +17 -17
  98. package/src/contentful/blocks/address-input-banner/index.tsx +52 -52
  99. package/src/contentful/blocks/address-input-banner/types.ts +14 -14
  100. package/src/contentful/blocks/anchored-bottom-banner/index.tsx +70 -70
  101. package/src/contentful/blocks/anchored-bottom-banner/types.ts +10 -10
  102. package/src/contentful/blocks/blogs-grid/index.tsx +134 -134
  103. package/src/contentful/blocks/blogs-grid/types.ts +26 -26
  104. package/src/contentful/blocks/breadcrumbs/index.tsx +51 -51
  105. package/src/contentful/blocks/breadcrumbs/types.ts +5 -5
  106. package/src/contentful/blocks/button/Button.stories.tsx +40 -40
  107. package/src/contentful/blocks/button/index.tsx +130 -129
  108. package/src/contentful/blocks/button/types.ts +39 -39
  109. package/src/contentful/blocks/callout/Callout.stories.tsx +23 -23
  110. package/src/contentful/blocks/callout/index.tsx +88 -88
  111. package/src/contentful/blocks/callout/types.ts +15 -15
  112. package/src/contentful/blocks/cards/Cards.stories.tsx +23 -23
  113. package/src/contentful/blocks/cards/blog-card/index.tsx +110 -110
  114. package/src/contentful/blocks/cards/blog-card/types.ts +18 -18
  115. package/src/contentful/blocks/cards/index.tsx +13 -13
  116. package/src/contentful/blocks/cards/product-card/index.tsx +251 -251
  117. package/src/contentful/blocks/cards/product-card/types.ts +28 -28
  118. package/src/contentful/blocks/cards/simple-card/index.tsx +89 -89
  119. package/src/contentful/blocks/cards/simple-card/types.ts +28 -28
  120. package/src/contentful/blocks/cards/testimonial-card/index.tsx +90 -90
  121. package/src/contentful/blocks/cards/testimonial-card/types.tsx +12 -12
  122. package/src/contentful/blocks/cards/types.ts +1 -1
  123. package/src/contentful/blocks/carousel/Carousel.stories.tsx +23 -23
  124. package/src/contentful/blocks/carousel/helper.tsx +440 -440
  125. package/src/contentful/blocks/carousel/index.tsx +85 -85
  126. package/src/contentful/blocks/carousel/types.ts +144 -144
  127. package/src/contentful/blocks/comparison-table/index.tsx +27 -27
  128. package/src/contentful/blocks/comparison-table/types.ts +6 -6
  129. package/src/contentful/blocks/cookiebanner/index.tsx +146 -146
  130. package/src/contentful/blocks/cookiebanner/type.ts +7 -7
  131. package/src/contentful/blocks/cta-callout/CtaCallout.stories.tsx +46 -46
  132. package/src/contentful/blocks/cta-callout/index.tsx +69 -69
  133. package/src/contentful/blocks/cta-callout/types.ts +26 -26
  134. package/src/contentful/blocks/dynamic-tabs/index.tsx +204 -204
  135. package/src/contentful/blocks/dynamic-tabs/types.ts +21 -21
  136. package/src/contentful/blocks/email-input-block/index.tsx +117 -0
  137. package/src/contentful/blocks/email-input-block/types.ts +16 -0
  138. package/src/contentful/blocks/find-kinetic/FindKinetic.stories.tsx +23 -23
  139. package/src/contentful/blocks/find-kinetic/index.tsx +130 -130
  140. package/src/contentful/blocks/find-kinetic/types.ts +19 -19
  141. package/src/contentful/blocks/floating-banner/FloatingBanner.stories.tsx +34 -34
  142. package/src/contentful/blocks/floating-banner/index.tsx +97 -97
  143. package/src/contentful/blocks/floating-banner/types.ts +22 -22
  144. package/src/contentful/blocks/footer/Footer.stories.tsx +30 -30
  145. package/src/contentful/blocks/footer/index.tsx +91 -90
  146. package/src/contentful/blocks/footer/types.ts +13 -13
  147. package/src/contentful/blocks/image-promo-bar/ImagePromoBar.stories.tsx +23 -23
  148. package/src/contentful/blocks/image-promo-bar/helper.tsx +28 -28
  149. package/src/contentful/blocks/image-promo-bar/index.tsx +246 -246
  150. package/src/contentful/blocks/image-promo-bar/types.ts +44 -44
  151. package/src/contentful/blocks/image-promo-bar/vimeo-embed.tsx +93 -93
  152. package/src/contentful/blocks/image-promo-bar/youtube-embed.tsx +46 -46
  153. package/src/contentful/blocks/modal/constants.ts +53 -53
  154. package/src/contentful/blocks/modal/index.tsx +107 -107
  155. package/src/contentful/blocks/modal/types.ts +12 -12
  156. package/src/contentful/blocks/navigation/desktop-link-groups.tsx/index.tsx +113 -113
  157. package/src/contentful/blocks/navigation/index.tsx +394 -394
  158. package/src/contentful/blocks/navigation/mobile-link-groups.tsx/index.tsx +82 -82
  159. package/src/contentful/blocks/navigation/types.ts +41 -41
  160. package/src/contentful/blocks/primary-hero/PrimaryHero.stories.tsx +23 -23
  161. package/src/contentful/blocks/primary-hero/index.tsx +236 -241
  162. package/src/contentful/blocks/primary-hero/types.ts +37 -37
  163. package/src/contentful/blocks/search-block/index.tsx +90 -90
  164. package/src/contentful/blocks/search-block/types.ts +15 -15
  165. package/src/contentful/blocks/shape-background-wrapper/ShapeBackgroundWrapper.stories.tsx +26 -26
  166. package/src/contentful/blocks/shape-background-wrapper/index.tsx +124 -124
  167. package/src/contentful/blocks/shape-background-wrapper/types.ts +36 -36
  168. package/src/contentful/blocks/text/Text.stories.tsx +23 -23
  169. package/src/contentful/blocks/text/index.tsx +12 -12
  170. package/src/contentful/blocks/text/types.ts +1 -1
  171. package/src/contentful/index.ts +99 -96
  172. package/src/hooks/contentful/use-contentful-rich-text.tsx +310 -310
  173. package/src/hooks/contentful/use-processed-check-list.ts +63 -63
  174. package/src/hooks/use-body-scroll-lock.ts +34 -34
  175. package/src/hooks/use-carousel-swipe.ts +264 -264
  176. package/src/hooks/use-outside-click.ts +17 -17
  177. package/src/index.ts +101 -101
  178. package/src/next/index.ts +5 -5
  179. package/src/setupTests.ts +46 -46
  180. package/src/stories/DocsTemplate.tsx +24 -24
  181. package/src/styles/globals.css +343 -343
  182. package/src/types/global.d.ts +9 -9
  183. package/src/types/micro-components.ts +99 -99
  184. package/src/types/utm.ts +49 -49
  185. package/src/utils/contentful/to-document.ts +24 -24
  186. package/src/utils/cookie.ts +84 -84
  187. package/src/utils/cx.ts +49 -49
  188. package/src/utils/index.ts +38 -38
  189. package/src/utils/utm.ts +221 -221
@@ -1,110 +1,110 @@
1
- import React from "react";
2
- import { BlogCardProps } from "./types";
3
- import Image from "next/image";
4
- import Link from "next/link";
5
-
6
- // import { Button } from "@shared/components/button";
7
- import { MaterialIcon } from "@shared/components/material-icon";
8
- import { Text } from "@shared/components/text";
9
-
10
- export const BlogCard: React.FC<BlogCardProps> = ({
11
- href,
12
- title,
13
- description,
14
- date,
15
- category,
16
- image,
17
- readMoreText = "Read more",
18
- asGrid = true,
19
- lgWidth,
20
- mdWidth,
21
- index,
22
- }: BlogCardProps) => {
23
- const basehwClass = "lg:w-[calc(33.3333%-1rem)] md:w-[calc(50%-1rem)]";
24
- const parentClassName = asGrid
25
- ? "flex h-full flex-col overflow-hidden rounded-card-lg bg-white shadow-drop transition-all duration-200 hover:-translate-y-0.5 hover:shadow-cardDrop"
26
- : `callout-card ${basehwClass} ${lgWidth} ${mdWidth} w-full overflow-hidden rounded-card-lg bg-white shadow-drop transition-all duration-200 hover:-translate-y-0.5 hover:shadow-cardDrop`;
27
-
28
- return (
29
- <article
30
- className={parentClassName}
31
- data-section-type={"blog-card"}
32
- data-section-index={index}
33
- >
34
- {/* Image */}
35
- <Link href={href} tabIndex={-1} aria-hidden="true" className="block">
36
- <div className="h-[232px] w-full flex-shrink-0 overflow-hidden bg-gray-100">
37
- {image ? (
38
- <Image
39
- src={image.src}
40
- alt={image.alt}
41
- width={image.width}
42
- height={image.height}
43
- className="h-full w-full object-cover transition-transform duration-300 hover:scale-[1.03]"
44
- sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw"
45
- />
46
- ) : (
47
- <div
48
- className="h-full w-full bg-gradient-to-br from-gray-200 to-gray-100"
49
- aria-hidden="true"
50
- />
51
- )}
52
- </div>
53
- </Link>
54
-
55
- {/* Body */}
56
- <div className="flex flex-1 flex-col gap-5 p-6 md:p-8">
57
- {/* Meta: category + date */}
58
- <div className="flex items-center gap-2 text-[13px]">
59
- <span className="body2 text-text-brand">{category}</span>
60
- {date && (
61
- <>
62
- <span className="footnote text-text" aria-hidden="true">
63
-
64
- </span>
65
- <time className="body2 text-text">{date}</time>
66
- </>
67
- )}
68
- </div>
69
-
70
- {/* Title */}
71
- {title && (
72
- <Link
73
- href={href}
74
- className="heading6 m-0 line-clamp-3 font-black transition-colors duration-150 hover:text-text-brand"
75
- >
76
- {title}
77
- </Link>
78
- )}
79
-
80
- {/* Excerpt */}
81
- {description && (
82
- <Text className="body1 m-0 line-clamp-3 flex-1 text-text">
83
- {description}
84
- </Text>
85
- )}
86
-
87
- {/* Read more */}
88
- <Link
89
- href={href}
90
- className="group mt-auto inline-flex items-center justify-start gap-2 pt-3 text-sm text-text-brand no-underline"
91
- aria-label={`${readMoreText} about ${title || "this article"}`}
92
- >
93
- <Text
94
- aria-label={`${readMoreText} about ${title || "this article"}`}
95
- className="label1 text-nowrap"
96
- >
97
- {readMoreText}
98
- </Text>
99
- <MaterialIcon
100
- name="expand_circle_right"
101
- fill={1}
102
- size={24}
103
- weight="200"
104
- />
105
- </Link>
106
- </div>
107
- </article>
108
- );
109
- };
110
- export default BlogCard;
1
+ import React from "react";
2
+ import { BlogCardProps } from "./types";
3
+ import Image from "next/image";
4
+ import Link from "next/link";
5
+
6
+ // import { Button } from "@shared/components/button";
7
+ import { MaterialIcon } from "@shared/components/material-icon";
8
+ import { Text } from "@shared/components/text";
9
+
10
+ export const BlogCard: React.FC<BlogCardProps> = ({
11
+ href,
12
+ title,
13
+ description,
14
+ date,
15
+ category,
16
+ image,
17
+ readMoreText = "Read more",
18
+ asGrid = true,
19
+ lgWidth,
20
+ mdWidth,
21
+ index,
22
+ }: BlogCardProps) => {
23
+ const basehwClass = "lg:w-[calc(33.3333%-1rem)] md:w-[calc(50%-1rem)]";
24
+ const parentClassName = asGrid
25
+ ? "flex h-full flex-col overflow-hidden rounded-card-lg bg-white shadow-drop transition-all duration-200 hover:-translate-y-0.5 hover:shadow-cardDrop"
26
+ : `callout-card ${basehwClass} ${lgWidth} ${mdWidth} w-full overflow-hidden rounded-card-lg bg-white shadow-drop transition-all duration-200 hover:-translate-y-0.5 hover:shadow-cardDrop`;
27
+
28
+ return (
29
+ <article
30
+ className={parentClassName}
31
+ data-section-type={"blog-card"}
32
+ data-section-index={index}
33
+ >
34
+ {/* Image */}
35
+ <Link href={href} tabIndex={-1} aria-hidden="true" className="block">
36
+ <div className="h-[232px] w-full flex-shrink-0 overflow-hidden bg-gray-100">
37
+ {image ? (
38
+ <Image
39
+ src={image.src}
40
+ alt={image.alt}
41
+ width={image.width}
42
+ height={image.height}
43
+ className="h-full w-full object-cover transition-transform duration-300 hover:scale-[1.03]"
44
+ sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw"
45
+ />
46
+ ) : (
47
+ <div
48
+ className="h-full w-full bg-gradient-to-br from-gray-200 to-gray-100"
49
+ aria-hidden="true"
50
+ />
51
+ )}
52
+ </div>
53
+ </Link>
54
+
55
+ {/* Body */}
56
+ <div className="flex flex-1 flex-col gap-5 p-6 md:p-8">
57
+ {/* Meta: category + date */}
58
+ <div className="flex items-center gap-2 text-[13px]">
59
+ <span className="body2 text-text-brand">{category}</span>
60
+ {date && (
61
+ <>
62
+ <span className="footnote text-text" aria-hidden="true">
63
+
64
+ </span>
65
+ <time className="body2 text-text">{date}</time>
66
+ </>
67
+ )}
68
+ </div>
69
+
70
+ {/* Title */}
71
+ {title && (
72
+ <Link
73
+ href={href}
74
+ className="heading6 m-0 line-clamp-3 font-black transition-colors duration-150 hover:text-text-brand"
75
+ >
76
+ {title}
77
+ </Link>
78
+ )}
79
+
80
+ {/* Excerpt */}
81
+ {description && (
82
+ <Text className="body1 m-0 line-clamp-3 flex-1 text-text">
83
+ {description}
84
+ </Text>
85
+ )}
86
+
87
+ {/* Read more */}
88
+ <Link
89
+ href={href}
90
+ className="group mt-auto inline-flex items-center justify-start gap-2 pt-3 text-sm text-text-brand no-underline"
91
+ aria-label={`${readMoreText} about ${title || "this article"}`}
92
+ >
93
+ <Text
94
+ aria-label={`${readMoreText} about ${title || "this article"}`}
95
+ className="label1 text-nowrap"
96
+ >
97
+ {readMoreText}
98
+ </Text>
99
+ <MaterialIcon
100
+ name="expand_circle_right"
101
+ fill={1}
102
+ size={24}
103
+ weight="200"
104
+ />
105
+ </Link>
106
+ </div>
107
+ </article>
108
+ );
109
+ };
110
+ export default BlogCard;
@@ -1,18 +1,18 @@
1
- export interface BlogCardProps {
2
- href: string;
3
- title?: string;
4
- description?: string;
5
- date?: string;
6
- category?: string;
7
- image?: {
8
- src: string;
9
- alt: string;
10
- width: number;
11
- height: number;
12
- };
13
- readMoreText?: string;
14
- asGrid?: boolean;
15
- lgWidth?: string;
16
- mdWidth?: string;
17
- index?: number;
18
- }
1
+ export interface BlogCardProps {
2
+ href: string;
3
+ title?: string;
4
+ description?: string;
5
+ date?: string;
6
+ category?: string;
7
+ image?: {
8
+ src: string;
9
+ alt: string;
10
+ width: number;
11
+ height: number;
12
+ };
13
+ readMoreText?: string;
14
+ asGrid?: boolean;
15
+ lgWidth?: string;
16
+ mdWidth?: string;
17
+ index?: number;
18
+ }
@@ -1,13 +1,13 @@
1
- import { CardsProps } from "./types";
2
-
3
- import { Text } from "@shared/components/text";
4
-
5
- export const Cards: React.FC<{ fields: CardsProps }> = ({ fields }) => {
6
- return (
7
- <div>
8
- <Text>Cards</Text>
9
- </div>
10
- );
11
- };
12
-
13
- export default Cards;
1
+ import { CardsProps } from "./types";
2
+
3
+ import { Text } from "@shared/components/text";
4
+
5
+ export const Cards: React.FC<{ fields: CardsProps }> = ({ fields }) => {
6
+ return (
7
+ <div>
8
+ <Text>Cards</Text>
9
+ </div>
10
+ );
11
+ };
12
+
13
+ export default Cards;