@windstream/react-shared-components 0.1.34 → 0.1.36

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 (170) hide show
  1. package/README.md +635 -635
  2. package/dist/contentful/index.d.ts +1 -0
  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/index.d.ts +1 -1
  8. package/dist/index.esm.js +1 -1
  9. package/dist/index.esm.js.map +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/styles.css +1 -1
  13. package/package.json +182 -182
  14. package/src/components/accordion/Accordion.stories.tsx +230 -230
  15. package/src/components/accordion/index.tsx +70 -70
  16. package/src/components/accordion/types.ts +12 -12
  17. package/src/components/alert-card/AlertCard.stories.tsx +171 -171
  18. package/src/components/alert-card/index.tsx +41 -41
  19. package/src/components/alert-card/types.ts +13 -13
  20. package/src/components/brand-button/BrandButton.stories.tsx +223 -223
  21. package/src/components/brand-button/helpers.ts +35 -35
  22. package/src/components/brand-button/index.tsx +114 -114
  23. package/src/components/brand-button/types.ts +37 -37
  24. package/src/components/button/Button.stories.tsx +108 -108
  25. package/src/components/button/index.tsx +27 -27
  26. package/src/components/button/types.ts +14 -14
  27. package/src/components/call-button/CallButton.stories.tsx +324 -324
  28. package/src/components/call-button/index.tsx +86 -86
  29. package/src/components/call-button/types.ts +11 -11
  30. package/src/components/checkbox/Checkbox.stories.tsx +247 -247
  31. package/src/components/checkbox/index.tsx +197 -197
  32. package/src/components/checkbox/types.ts +27 -27
  33. package/src/components/checklist/Checklist.stories.tsx +150 -150
  34. package/src/components/checklist/index.tsx +61 -61
  35. package/src/components/checklist/types.ts +17 -17
  36. package/src/components/collapse/Collapse.stories.tsx +255 -255
  37. package/src/components/collapse/index.tsx +46 -46
  38. package/src/components/collapse/types.ts +6 -6
  39. package/src/components/divider/Divider.stories.tsx +205 -205
  40. package/src/components/divider/index.tsx +22 -22
  41. package/src/components/divider/type.ts +3 -3
  42. package/src/components/image/Image.stories.tsx +113 -113
  43. package/src/components/image/index.tsx +25 -25
  44. package/src/components/image/types.ts +40 -40
  45. package/src/components/input/Input.stories.tsx +325 -325
  46. package/src/components/input/index.tsx +177 -177
  47. package/src/components/input/types.ts +37 -37
  48. package/src/components/link/Link.stories.tsx +163 -163
  49. package/src/components/link/types.ts +25 -25
  50. package/src/components/list/List.stories.tsx +272 -272
  51. package/src/components/list/index.tsx +88 -88
  52. package/src/components/list/list-item/index.tsx +38 -38
  53. package/src/components/list/list-item/types.ts +13 -13
  54. package/src/components/list/types.ts +29 -29
  55. package/src/components/material-icon/MaterialIcon.stories.tsx +322 -322
  56. package/src/components/material-icon/constants.ts +98 -98
  57. package/src/components/material-icon/index.tsx +47 -47
  58. package/src/components/material-icon/types.ts +31 -31
  59. package/src/components/modal/Modal.stories.tsx +171 -171
  60. package/src/components/modal/index.tsx +164 -164
  61. package/src/components/modal/types.ts +24 -24
  62. package/src/components/next-image/index.tsx +54 -54
  63. package/src/components/next-image/types.ts +1 -1
  64. package/src/components/pagination/index.tsx +100 -100
  65. package/src/components/pagination/types.ts +6 -6
  66. package/src/components/radio-button/RadioButton.stories.tsx +307 -307
  67. package/src/components/radio-button/index.tsx +75 -75
  68. package/src/components/radio-button/types.ts +21 -21
  69. package/src/components/see-more/SeeMore.stories.tsx +181 -181
  70. package/src/components/see-more/index.tsx +44 -44
  71. package/src/components/see-more/types.ts +4 -4
  72. package/src/components/select/Select.stories.tsx +411 -411
  73. package/src/components/select/index.tsx +155 -155
  74. package/src/components/select/types.ts +36 -36
  75. package/src/components/select-plan-button/SelectPlanButton.stories.tsx +184 -184
  76. package/src/components/select-plan-button/index.tsx +63 -59
  77. package/src/components/select-plan-button/types.ts +17 -17
  78. package/src/components/skeleton/Skeleton.stories.tsx +179 -179
  79. package/src/components/skeleton/index.tsx +61 -61
  80. package/src/components/skeleton/types.ts +4 -4
  81. package/src/components/spinner/Spinner.stories.tsx +335 -335
  82. package/src/components/spinner/index.tsx +44 -44
  83. package/src/components/spinner/types.ts +5 -5
  84. package/src/components/text/Text.stories.tsx +321 -321
  85. package/src/components/text/index.tsx +25 -25
  86. package/src/components/text/types.ts +45 -45
  87. package/src/components/tooltip/Tooltip.stories.tsx +219 -219
  88. package/src/components/tooltip/index.tsx +74 -74
  89. package/src/components/tooltip/types.ts +7 -7
  90. package/src/components/view-cart-button/ViewCartButton.stories.tsx +252 -252
  91. package/src/components/view-cart-button/index.tsx +42 -42
  92. package/src/components/view-cart-button/types.ts +5 -5
  93. package/src/contentful/blocks/accordion/index.tsx +62 -62
  94. package/src/contentful/blocks/address-input-banner/index.tsx +52 -52
  95. package/src/contentful/blocks/address-input-banner/types.ts +14 -14
  96. package/src/contentful/blocks/anchored-bottom-banner/index.tsx +70 -65
  97. package/src/contentful/blocks/anchored-bottom-banner/types.ts +10 -9
  98. package/src/contentful/blocks/blogs-grid/index.tsx +134 -134
  99. package/src/contentful/blocks/blogs-grid/types.ts +26 -26
  100. package/src/contentful/blocks/button/Button.stories.tsx +40 -40
  101. package/src/contentful/blocks/button/index.tsx +129 -129
  102. package/src/contentful/blocks/button/types.ts +39 -39
  103. package/src/contentful/blocks/callout/Callout.stories.tsx +23 -23
  104. package/src/contentful/blocks/callout/index.tsx +88 -88
  105. package/src/contentful/blocks/callout/types.ts +15 -15
  106. package/src/contentful/blocks/cards/Cards.stories.tsx +23 -23
  107. package/src/contentful/blocks/cards/blog-card/index.tsx +110 -110
  108. package/src/contentful/blocks/cards/blog-card/types.ts +18 -18
  109. package/src/contentful/blocks/cards/index.tsx +13 -13
  110. package/src/contentful/blocks/cards/product-card/index.tsx +251 -252
  111. package/src/contentful/blocks/cards/product-card/types.ts +28 -28
  112. package/src/contentful/blocks/cards/simple-card/index.tsx +89 -89
  113. package/src/contentful/blocks/cards/testimonial-card/index.tsx +90 -90
  114. package/src/contentful/blocks/cards/testimonial-card/types.tsx +12 -12
  115. package/src/contentful/blocks/cards/types.ts +1 -1
  116. package/src/contentful/blocks/carousel/Carousel.stories.tsx +23 -23
  117. package/src/contentful/blocks/carousel/helper.tsx +440 -440
  118. package/src/contentful/blocks/carousel/index.tsx +85 -85
  119. package/src/contentful/blocks/carousel/types.ts +144 -144
  120. package/src/contentful/blocks/cookiebanner/index.tsx +146 -146
  121. package/src/contentful/blocks/cookiebanner/type.ts +7 -7
  122. package/src/contentful/blocks/cta-callout/CtaCallout.stories.tsx +46 -46
  123. package/src/contentful/blocks/cta-callout/index.tsx +60 -60
  124. package/src/contentful/blocks/cta-callout/types.ts +26 -26
  125. package/src/contentful/blocks/dynamic-tabs/index.tsx +204 -204
  126. package/src/contentful/blocks/dynamic-tabs/types.ts +21 -21
  127. package/src/contentful/blocks/find-kinetic/index.tsx +130 -130
  128. package/src/contentful/blocks/floating-banner/FloatingBanner.stories.tsx +34 -34
  129. package/src/contentful/blocks/floating-banner/index.tsx +97 -97
  130. package/src/contentful/blocks/floating-banner/types.ts +22 -22
  131. package/src/contentful/blocks/footer/Footer.stories.tsx +30 -30
  132. package/src/contentful/blocks/footer/index.tsx +90 -90
  133. package/src/contentful/blocks/image-promo-bar/ImagePromoBar.stories.tsx +23 -23
  134. package/src/contentful/blocks/image-promo-bar/helper.tsx +28 -28
  135. package/src/contentful/blocks/image-promo-bar/index.tsx +240 -240
  136. package/src/contentful/blocks/image-promo-bar/types.ts +44 -44
  137. package/src/contentful/blocks/image-promo-bar/vimeo-embed.tsx +93 -93
  138. package/src/contentful/blocks/image-promo-bar/youtube-embed.tsx +46 -46
  139. package/src/contentful/blocks/modal/constants.ts +53 -53
  140. package/src/contentful/blocks/modal/index.tsx +103 -103
  141. package/src/contentful/blocks/modal/types.ts +12 -12
  142. package/src/contentful/blocks/navigation/desktop-link-groups.tsx/index.tsx +113 -113
  143. package/src/contentful/blocks/navigation/index.tsx +394 -394
  144. package/src/contentful/blocks/navigation/mobile-link-groups.tsx/index.tsx +82 -82
  145. package/src/contentful/blocks/navigation/types.ts +41 -41
  146. package/src/contentful/blocks/primary-hero/PrimaryHero.stories.tsx +23 -23
  147. package/src/contentful/blocks/primary-hero/index.tsx +234 -234
  148. package/src/contentful/blocks/primary-hero/types.ts +35 -35
  149. package/src/contentful/blocks/search-block/index.tsx +90 -90
  150. package/src/contentful/blocks/shape-background-wrapper/ShapeBackgroundWrapper.stories.tsx +26 -26
  151. package/src/contentful/blocks/shape-background-wrapper/index.tsx +124 -124
  152. package/src/contentful/blocks/shape-background-wrapper/types.ts +36 -36
  153. package/src/contentful/blocks/text/Text.stories.tsx +23 -23
  154. package/src/contentful/blocks/text/index.tsx +12 -12
  155. package/src/contentful/blocks/text/types.ts +1 -1
  156. package/src/contentful/index.ts +81 -81
  157. package/src/hooks/use-body-scroll-lock.ts +34 -34
  158. package/src/hooks/use-carousel-swipe.ts +264 -264
  159. package/src/hooks/use-outside-click.ts +17 -17
  160. package/src/index.ts +101 -101
  161. package/src/next/index.ts +5 -5
  162. package/src/setupTests.ts +46 -46
  163. package/src/stories/DocsTemplate.tsx +24 -24
  164. package/src/styles/globals.css +343 -343
  165. package/src/types/global.d.ts +9 -9
  166. package/src/types/micro-components.ts +99 -99
  167. package/src/types/utm.ts +49 -49
  168. package/src/utils/cookie.ts +80 -80
  169. package/src/utils/index.ts +65 -65
  170. package/src/utils/utm.ts +221 -221
@@ -1,163 +1,163 @@
1
- import { Link } from "./index";
2
-
3
- import { DocsPage } from "@shared/stories/DocsTemplate";
4
- import type { Meta, StoryObj } from "@storybook/react";
5
-
6
- const meta: Meta<typeof Link> = {
7
- title: "Components/Link",
8
- component: Link,
9
- tags: ["autodocs"],
10
- parameters: {
11
- layout: "centered",
12
- docs: {
13
- page: DocsPage,
14
- description: {
15
- component:
16
- "A flexible link component with multiple variants and states.",
17
- },
18
- },
19
- },
20
- argTypes: {
21
- variant: {
22
- control: { type: "select" },
23
- options: ["default", "unstyled"],
24
- description: "Link styling variant",
25
- },
26
- href: {
27
- control: { type: "text" },
28
- description: "Link URL",
29
- },
30
- target: {
31
- control: { type: "select" },
32
- options: ["_self", "_blank", "_parent", "_top"],
33
- description: "Link target",
34
- },
35
- disabled: {
36
- control: { type: "boolean" },
37
- description: "Disable the link",
38
- },
39
- children: {
40
- control: { type: "text" },
41
- description: "Link content",
42
- },
43
- },
44
- args: {
45
- children: "Link Text",
46
- href: "#",
47
- variant: "default",
48
- target: "_self",
49
- disabled: false,
50
- },
51
- };
52
-
53
- export default meta;
54
- type Story = StoryObj<typeof meta>;
55
-
56
- // Default link
57
- export const Default: Story = {
58
- args: {},
59
- };
60
-
61
- // Unstyled link
62
- export const Unstyled: Story = {
63
- args: {
64
- variant: "unstyled",
65
- children: "Unstyled Link",
66
- },
67
- };
68
-
69
- // External link
70
- export const External: Story = {
71
- args: {
72
- href: "https://example.com",
73
- target: "_blank",
74
- children: "External Link ↗",
75
- },
76
- };
77
-
78
- // Disabled link
79
- export const Disabled: Story = {
80
- args: {
81
- disabled: true,
82
- children: "Disabled Link",
83
- },
84
- };
85
-
86
- // Link with icon
87
- export const WithIcon: Story = {
88
- args: {
89
- children: "Link with Icon →",
90
- className: "flex items-center gap-2",
91
- },
92
- };
93
-
94
- // Navigation links
95
- export const Navigation: Story = {
96
- render: () => (
97
- <nav className="flex gap-6">
98
- <Link href="#home" variant="default">
99
- Home
100
- </Link>
101
- <Link href="#about">About</Link>
102
- <Link href="#services">Services</Link>
103
- <Link href="#contact">Contact</Link>
104
- </nav>
105
- ),
106
- parameters: {
107
- docs: {
108
- description: {
109
- story: "Navigation menu with different link variants.",
110
- },
111
- },
112
- },
113
- };
114
-
115
- // All variants showcase
116
- export const AllVariants: Story = {
117
- render: () => (
118
- <div className="space-y-6">
119
- <div>
120
- <h3 className="mb-3 text-lg font-semibold">Variants</h3>
121
- <div className="flex gap-4">
122
- <Link href="#" variant="default">
123
- Default
124
- </Link>
125
- <Link href="#" variant="unstyled">
126
- Unstyled
127
- </Link>
128
- </div>
129
- </div>
130
-
131
- <div>
132
- <h3 className="mb-3 text-lg font-semibold">Variants</h3>
133
- <div className="flex items-center gap-4">
134
- <Link href="#" variant="default">
135
- Default
136
- </Link>
137
- <Link href="#" variant="unstyled">
138
- Unstyled
139
- </Link>
140
- </div>
141
- </div>
142
-
143
- <div>
144
- <h3 className="mb-3 text-lg font-semibold">States</h3>
145
- <div className="flex gap-4">
146
- <Link href="#" disabled>
147
- Disabled
148
- </Link>
149
- <Link href="https://example.com" target="_blank">
150
- External ↗
151
- </Link>
152
- </div>
153
- </div>
154
- </div>
155
- ),
156
- parameters: {
157
- docs: {
158
- description: {
159
- story: "Showcase of all link variants, sizes, and states.",
160
- },
161
- },
162
- },
163
- };
1
+ import { Link } from "./index";
2
+
3
+ import { DocsPage } from "@shared/stories/DocsTemplate";
4
+ import type { Meta, StoryObj } from "@storybook/react";
5
+
6
+ const meta: Meta<typeof Link> = {
7
+ title: "Components/Link",
8
+ component: Link,
9
+ tags: ["autodocs"],
10
+ parameters: {
11
+ layout: "centered",
12
+ docs: {
13
+ page: DocsPage,
14
+ description: {
15
+ component:
16
+ "A flexible link component with multiple variants and states.",
17
+ },
18
+ },
19
+ },
20
+ argTypes: {
21
+ variant: {
22
+ control: { type: "select" },
23
+ options: ["default", "unstyled"],
24
+ description: "Link styling variant",
25
+ },
26
+ href: {
27
+ control: { type: "text" },
28
+ description: "Link URL",
29
+ },
30
+ target: {
31
+ control: { type: "select" },
32
+ options: ["_self", "_blank", "_parent", "_top"],
33
+ description: "Link target",
34
+ },
35
+ disabled: {
36
+ control: { type: "boolean" },
37
+ description: "Disable the link",
38
+ },
39
+ children: {
40
+ control: { type: "text" },
41
+ description: "Link content",
42
+ },
43
+ },
44
+ args: {
45
+ children: "Link Text",
46
+ href: "#",
47
+ variant: "default",
48
+ target: "_self",
49
+ disabled: false,
50
+ },
51
+ };
52
+
53
+ export default meta;
54
+ type Story = StoryObj<typeof meta>;
55
+
56
+ // Default link
57
+ export const Default: Story = {
58
+ args: {},
59
+ };
60
+
61
+ // Unstyled link
62
+ export const Unstyled: Story = {
63
+ args: {
64
+ variant: "unstyled",
65
+ children: "Unstyled Link",
66
+ },
67
+ };
68
+
69
+ // External link
70
+ export const External: Story = {
71
+ args: {
72
+ href: "https://example.com",
73
+ target: "_blank",
74
+ children: "External Link ↗",
75
+ },
76
+ };
77
+
78
+ // Disabled link
79
+ export const Disabled: Story = {
80
+ args: {
81
+ disabled: true,
82
+ children: "Disabled Link",
83
+ },
84
+ };
85
+
86
+ // Link with icon
87
+ export const WithIcon: Story = {
88
+ args: {
89
+ children: "Link with Icon →",
90
+ className: "flex items-center gap-2",
91
+ },
92
+ };
93
+
94
+ // Navigation links
95
+ export const Navigation: Story = {
96
+ render: () => (
97
+ <nav className="flex gap-6">
98
+ <Link href="#home" variant="default">
99
+ Home
100
+ </Link>
101
+ <Link href="#about">About</Link>
102
+ <Link href="#services">Services</Link>
103
+ <Link href="#contact">Contact</Link>
104
+ </nav>
105
+ ),
106
+ parameters: {
107
+ docs: {
108
+ description: {
109
+ story: "Navigation menu with different link variants.",
110
+ },
111
+ },
112
+ },
113
+ };
114
+
115
+ // All variants showcase
116
+ export const AllVariants: Story = {
117
+ render: () => (
118
+ <div className="space-y-6">
119
+ <div>
120
+ <h3 className="mb-3 text-lg font-semibold">Variants</h3>
121
+ <div className="flex gap-4">
122
+ <Link href="#" variant="default">
123
+ Default
124
+ </Link>
125
+ <Link href="#" variant="unstyled">
126
+ Unstyled
127
+ </Link>
128
+ </div>
129
+ </div>
130
+
131
+ <div>
132
+ <h3 className="mb-3 text-lg font-semibold">Variants</h3>
133
+ <div className="flex items-center gap-4">
134
+ <Link href="#" variant="default">
135
+ Default
136
+ </Link>
137
+ <Link href="#" variant="unstyled">
138
+ Unstyled
139
+ </Link>
140
+ </div>
141
+ </div>
142
+
143
+ <div>
144
+ <h3 className="mb-3 text-lg font-semibold">States</h3>
145
+ <div className="flex gap-4">
146
+ <Link href="#" disabled>
147
+ Disabled
148
+ </Link>
149
+ <Link href="https://example.com" target="_blank">
150
+ External ↗
151
+ </Link>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ ),
156
+ parameters: {
157
+ docs: {
158
+ description: {
159
+ story: "Showcase of all link variants, sizes, and states.",
160
+ },
161
+ },
162
+ },
163
+ };
@@ -1,25 +1,25 @@
1
- import {
2
- type AnchorHTMLAttributes,
3
- type CSSProperties,
4
- type MouseEvent,
5
- type ReactNode,
6
- } from "react";
7
-
8
- export interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
9
- /** Content to render inside the link */
10
- children: ReactNode;
11
- /** URL to navigate to */
12
- href?: string;
13
- /** Custom className for the link */
14
- className?: string;
15
- /** Click handler function */
16
- onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
17
- /** Additional styling options */
18
- variant?: "default" | "unstyled";
19
- /** Custom styles */
20
- style?: CSSProperties;
21
- /** External link behavior - opens in new tab */
22
- external?: boolean;
23
- /** Disable the link */
24
- disabled?: boolean;
25
- }
1
+ import {
2
+ type AnchorHTMLAttributes,
3
+ type CSSProperties,
4
+ type MouseEvent,
5
+ type ReactNode,
6
+ } from "react";
7
+
8
+ export interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
9
+ /** Content to render inside the link */
10
+ children: ReactNode;
11
+ /** URL to navigate to */
12
+ href?: string;
13
+ /** Custom className for the link */
14
+ className?: string;
15
+ /** Click handler function */
16
+ onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
17
+ /** Additional styling options */
18
+ variant?: "default" | "unstyled";
19
+ /** Custom styles */
20
+ style?: CSSProperties;
21
+ /** External link behavior - opens in new tab */
22
+ external?: boolean;
23
+ /** Disable the link */
24
+ disabled?: boolean;
25
+ }