@windstream/react-shared-components 0.1.25 → 0.1.27

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.d.ts +5 -1
  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 +4 -4
  8. package/dist/index.js.map +1 -1
  9. package/dist/styles.css +1 -1
  10. package/package.json +182 -182
  11. package/src/components/accordion/Accordion.stories.tsx +230 -230
  12. package/src/components/accordion/types.ts +11 -11
  13. package/src/components/alert-card/AlertCard.stories.tsx +171 -171
  14. package/src/components/alert-card/index.tsx +41 -41
  15. package/src/components/alert-card/types.ts +13 -13
  16. package/src/components/brand-button/BrandButton.stories.tsx +223 -223
  17. package/src/components/brand-button/helpers.ts +35 -35
  18. package/src/components/brand-button/index.tsx +115 -115
  19. package/src/components/brand-button/types.ts +37 -37
  20. package/src/components/button/Button.stories.tsx +108 -108
  21. package/src/components/button/index.tsx +27 -27
  22. package/src/components/button/types.ts +14 -14
  23. package/src/components/call-button/CallButton.stories.tsx +324 -324
  24. package/src/components/call-button/index.tsx +86 -86
  25. package/src/components/call-button/types.ts +11 -11
  26. package/src/components/checkbox/Checkbox.stories.tsx +247 -247
  27. package/src/components/checkbox/index.tsx +197 -197
  28. package/src/components/checkbox/types.ts +27 -27
  29. package/src/components/checklist/Checklist.stories.tsx +150 -150
  30. package/src/components/checklist/index.tsx +59 -59
  31. package/src/components/checklist/types.ts +16 -16
  32. package/src/components/collapse/Collapse.stories.tsx +255 -255
  33. package/src/components/collapse/index.tsx +46 -46
  34. package/src/components/collapse/types.ts +6 -6
  35. package/src/components/divider/Divider.stories.tsx +205 -205
  36. package/src/components/divider/index.tsx +22 -22
  37. package/src/components/divider/type.ts +3 -3
  38. package/src/components/image/Image.stories.tsx +113 -113
  39. package/src/components/image/index.tsx +25 -25
  40. package/src/components/image/types.ts +40 -40
  41. package/src/components/input/Input.stories.tsx +325 -325
  42. package/src/components/input/index.tsx +177 -177
  43. package/src/components/input/types.ts +37 -37
  44. package/src/components/link/Link.stories.tsx +163 -163
  45. package/src/components/link/types.ts +25 -25
  46. package/src/components/list/List.stories.tsx +272 -272
  47. package/src/components/list/index.tsx +88 -88
  48. package/src/components/list/list-item/index.tsx +38 -38
  49. package/src/components/list/list-item/types.ts +13 -13
  50. package/src/components/list/types.ts +29 -29
  51. package/src/components/material-icon/MaterialIcon.stories.tsx +322 -322
  52. package/src/components/material-icon/constants.ts +98 -98
  53. package/src/components/material-icon/index.tsx +47 -47
  54. package/src/components/material-icon/types.ts +31 -31
  55. package/src/components/modal/Modal.stories.tsx +171 -171
  56. package/src/components/modal/index.tsx +164 -164
  57. package/src/components/modal/types.ts +24 -24
  58. package/src/components/next-image/index.tsx +54 -54
  59. package/src/components/next-image/types.ts +1 -1
  60. package/src/components/pagination/index.tsx +100 -100
  61. package/src/components/pagination/types.ts +6 -6
  62. package/src/components/radio-button/RadioButton.stories.tsx +307 -307
  63. package/src/components/radio-button/index.tsx +75 -75
  64. package/src/components/radio-button/types.ts +21 -21
  65. package/src/components/see-more/SeeMore.stories.tsx +181 -181
  66. package/src/components/see-more/index.tsx +44 -44
  67. package/src/components/see-more/types.ts +4 -4
  68. package/src/components/select/Select.stories.tsx +411 -411
  69. package/src/components/select/index.tsx +155 -155
  70. package/src/components/select/types.ts +36 -36
  71. package/src/components/select-plan-button/SelectPlanButton.stories.tsx +184 -184
  72. package/src/components/select-plan-button/index.tsx +57 -57
  73. package/src/components/select-plan-button/types.ts +14 -14
  74. package/src/components/skeleton/Skeleton.stories.tsx +179 -179
  75. package/src/components/skeleton/index.tsx +61 -61
  76. package/src/components/skeleton/types.ts +4 -4
  77. package/src/components/spinner/Spinner.stories.tsx +335 -335
  78. package/src/components/spinner/index.tsx +44 -44
  79. package/src/components/spinner/types.ts +5 -5
  80. package/src/components/text/Text.stories.tsx +321 -321
  81. package/src/components/text/index.tsx +25 -25
  82. package/src/components/text/types.ts +45 -45
  83. package/src/components/tooltip/Tooltip.stories.tsx +219 -219
  84. package/src/components/tooltip/index.tsx +74 -74
  85. package/src/components/tooltip/types.ts +7 -7
  86. package/src/components/view-cart-button/ViewCartButton.stories.tsx +252 -252
  87. package/src/components/view-cart-button/index.tsx +42 -42
  88. package/src/components/view-cart-button/types.ts +5 -5
  89. package/src/contentful/blocks/address-input-banner/index.tsx +52 -52
  90. package/src/contentful/blocks/address-input-banner/types.ts +14 -14
  91. package/src/contentful/blocks/blogs-grid/index.tsx +134 -134
  92. package/src/contentful/blocks/blogs-grid/types.ts +26 -26
  93. package/src/contentful/blocks/button/Button.stories.tsx +40 -40
  94. package/src/contentful/blocks/button/index.tsx +121 -121
  95. package/src/contentful/blocks/button/types.ts +36 -36
  96. package/src/contentful/blocks/callout/Callout.stories.tsx +23 -23
  97. package/src/contentful/blocks/callout/index.tsx +86 -86
  98. package/src/contentful/blocks/callout/types.ts +15 -15
  99. package/src/contentful/blocks/cards/Cards.stories.tsx +23 -23
  100. package/src/contentful/blocks/cards/blog-card/index.tsx +109 -109
  101. package/src/contentful/blocks/cards/blog-card/types.ts +16 -16
  102. package/src/contentful/blocks/cards/index.tsx +13 -13
  103. package/src/contentful/blocks/cards/product-card/index.tsx +208 -208
  104. package/src/contentful/blocks/cards/product-card/types.ts +28 -28
  105. package/src/contentful/blocks/cards/simple-card/index.tsx +1 -1
  106. package/src/contentful/blocks/cards/testimonial-card/index.tsx +88 -88
  107. package/src/contentful/blocks/cards/testimonial-card/types.tsx +12 -12
  108. package/src/contentful/blocks/cards/types.ts +1 -1
  109. package/src/contentful/blocks/carousel/Carousel.stories.tsx +23 -23
  110. package/src/contentful/blocks/carousel/helper.tsx +356 -356
  111. package/src/contentful/blocks/carousel/index.tsx +73 -73
  112. package/src/contentful/blocks/carousel/types.ts +143 -143
  113. package/src/contentful/blocks/cta-callout/CtaCallout.stories.tsx +46 -46
  114. package/src/contentful/blocks/cta-callout/index.tsx +60 -60
  115. package/src/contentful/blocks/cta-callout/types.ts +26 -26
  116. package/src/contentful/blocks/dynamic-tabs/index.tsx +204 -204
  117. package/src/contentful/blocks/dynamic-tabs/types.ts +21 -21
  118. package/src/contentful/blocks/find-kinetic/index.tsx +130 -130
  119. package/src/contentful/blocks/floating-banner/FloatingBanner.stories.tsx +34 -34
  120. package/src/contentful/blocks/floating-banner/index.tsx +93 -97
  121. package/src/contentful/blocks/floating-banner/types.ts +22 -22
  122. package/src/contentful/blocks/footer/Footer.stories.tsx +30 -30
  123. package/src/contentful/blocks/footer/index.tsx +6 -12
  124. package/src/contentful/blocks/image-promo-bar/ImagePromoBar.stories.tsx +23 -23
  125. package/src/contentful/blocks/image-promo-bar/helper.tsx +28 -28
  126. package/src/contentful/blocks/image-promo-bar/types.ts +44 -44
  127. package/src/contentful/blocks/image-promo-bar/vimeo-embed.tsx +93 -93
  128. package/src/contentful/blocks/image-promo-bar/youtube-embed.tsx +46 -46
  129. package/src/contentful/blocks/modal/constants.ts +53 -53
  130. package/src/contentful/blocks/modal/index.tsx +99 -94
  131. package/src/contentful/blocks/modal/types.ts +12 -12
  132. package/src/contentful/blocks/navigation/desktop-link-groups.tsx/index.tsx +113 -113
  133. package/src/contentful/blocks/navigation/index.tsx +394 -394
  134. package/src/contentful/blocks/navigation/mobile-link-groups.tsx/index.tsx +82 -82
  135. package/src/contentful/blocks/navigation/types.ts +41 -41
  136. package/src/contentful/blocks/primary-hero/PrimaryHero.stories.tsx +23 -23
  137. package/src/contentful/blocks/primary-hero/index.tsx +234 -234
  138. package/src/contentful/blocks/primary-hero/types.ts +35 -35
  139. package/src/contentful/blocks/search-block/index.tsx +90 -90
  140. package/src/contentful/blocks/shape-background-wrapper/ShapeBackgroundWrapper.stories.tsx +26 -26
  141. package/src/contentful/blocks/shape-background-wrapper/index.tsx +124 -124
  142. package/src/contentful/blocks/shape-background-wrapper/types.ts +36 -36
  143. package/src/contentful/blocks/text/Text.stories.tsx +23 -23
  144. package/src/contentful/blocks/text/index.tsx +12 -12
  145. package/src/contentful/blocks/text/types.ts +1 -1
  146. package/src/contentful/index.ts +75 -75
  147. package/src/hooks/use-body-scroll-lock.ts +34 -34
  148. package/src/hooks/use-outside-click.ts +17 -17
  149. package/src/index.ts +96 -96
  150. package/src/next/index.ts +5 -5
  151. package/src/setupTests.ts +46 -46
  152. package/src/stories/DocsTemplate.tsx +24 -24
  153. package/src/styles/globals.css +343 -343
  154. package/src/types/global.d.ts +9 -9
  155. package/src/types/micro-components.ts +99 -99
  156. package/src/types/utm.ts +49 -49
  157. package/src/utils/cookie.ts +58 -58
  158. package/src/utils/index.ts +65 -65
  159. package/src/utils/utm.ts +221 -221
  160. package/tailwind.config.cjs +1 -0
@@ -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
+ }