@windstream/react-shared-components 0.1.11 → 0.1.13

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