@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,155 +1,155 @@
1
- "use client";
2
-
3
- import React, { useMemo } from "react";
4
- import { cx } from "../../utils";
5
- import { Text } from "../text";
6
- import { FilterOptions, SelectOption, SelectProps } from "./types";
7
- import ReactSelect, { createFilter } from "react-select";
8
-
9
- export const Select: React.FC<SelectProps> = React.memo(
10
- ({
11
- options,
12
- className,
13
- controlClassName,
14
- value,
15
- isCustomStyle = false,
16
- placeholder,
17
- required,
18
- onChange,
19
- filterOptions,
20
- hasError,
21
- error,
22
- menuClassName,
23
- helperText,
24
- label,
25
- labelClassName,
26
- size = "md",
27
- variant = "default",
28
- "data-cy": dataCy,
29
- "data-testid": dataTestId,
30
- ...rest
31
- }) => {
32
- const memoizedFilterOption = useMemo(
33
- () => createFilter(filterOptions),
34
- [filterOptions]
35
- );
36
-
37
- const getSizeClasses = () => {
38
- switch (size) {
39
- case "sm":
40
- return "h-[48px] px-3 rounded-lg";
41
- case "md":
42
- default:
43
- return "h-[56px] px-3 rounded-xl";
44
- }
45
- };
46
-
47
- const memoizedClassNames = useMemo(
48
- () => ({
49
- control: ({ isFocused }: any) =>
50
- cx(
51
- getSizeClasses(),
52
- "border border-input-border bg-white hover:not-focus:border-input-border-hover",
53
- {
54
- "border-input-border-selected outline outline-2 outline-input-border-selected":
55
- isFocused && !hasError,
56
- "border-input-border-critical shadow-none": hasError,
57
- },
58
- controlClassName
59
- ),
60
- indicatorSeparator: () => "hidden",
61
- dropdownIndicator: ({ selectProps }: any) =>
62
- isCustomStyle
63
- ? selectProps.value
64
- ? "hidden"
65
- : "block"
66
- : `block text-icon-default ${hasError ? "text-icon-critical" : ""}`,
67
- singleValue: () =>
68
- cx(
69
- isCustomStyle
70
- ? "text-text text-body1 whitespace-normal"
71
- : "text-text-secondary"
72
- ),
73
- menu: () =>
74
- cx(
75
- "z-20 mt-2 rounded-input-poppers bg-surface shadow-dark-drop",
76
- menuClassName
77
- ),
78
- option: ({ isFocused, isSelected, label }: any) =>
79
- cx(
80
- "min-h-[40px] px-4 py-2 cursor-pointer",
81
- isSelected
82
- ? "bg-gray-200 text-text font-semibold"
83
- : "bg-white text-text-secondary",
84
- !isSelected && "hover:bg-bg-surface-hover",
85
- !isSelected && isFocused && "bg-bg-surface-hover",
86
- isCustomStyle ? "text-body1 text-text" : "",
87
- !isCustomStyle || options[options.length - 1]?.label === label
88
- ? ""
89
- : "border-b border-border-brand"
90
- ),
91
- placeholder: () => "text-input-text-placeholder",
92
- input: () => "text-text",
93
- valueContainer: () => "px-0",
94
- }),
95
- [isCustomStyle, controlClassName, menuClassName, options, hasError, size]
96
- );
97
-
98
- if (variant === "unstyled") {
99
- return (
100
- <ReactSelect
101
- options={options}
102
- value={value}
103
- placeholder={required ? `${placeholder}*` : placeholder}
104
- onChange={onChange}
105
- filterOption={memoizedFilterOption}
106
- className={cx("rounded-xl", className)}
107
- classNames={memoizedClassNames}
108
- data-cy={dataCy}
109
- data-testid={dataTestId}
110
- {...rest}
111
- />
112
- );
113
- }
114
-
115
- return (
116
- <div className="w-full">
117
- {label && (
118
- <label
119
- className={cx(
120
- "mb-1 block text-sm font-medium text-text-secondary",
121
- labelClassName
122
- )}
123
- >
124
- {label}
125
- </label>
126
- )}
127
-
128
- <ReactSelect
129
- options={options}
130
- value={value}
131
- placeholder={required ? `${placeholder}*` : placeholder}
132
- onChange={onChange}
133
- filterOption={memoizedFilterOption}
134
- className={cx("rounded-xl", className)}
135
- classNames={memoizedClassNames}
136
- data-cy={dataCy}
137
- data-testid={dataTestId}
138
- {...rest}
139
- />
140
-
141
- {error && (
142
- <Text className="footnote mt-1 text-text-critical">{error}</Text>
143
- )}
144
-
145
- {!error && helperText && (
146
- <Text className="footnote mt-1 text-text-info">{helperText}</Text>
147
- )}
148
- </div>
149
- );
150
- }
151
- );
152
-
153
- Select.displayName = "Select";
154
-
155
- export type { SelectOption, SelectProps, FilterOptions };
1
+ "use client";
2
+
3
+ import React, { useMemo } from "react";
4
+ import { cx } from "../../utils";
5
+ import { Text } from "../text";
6
+ import { FilterOptions, SelectOption, SelectProps } from "./types";
7
+ import ReactSelect, { createFilter } from "react-select";
8
+
9
+ export const Select: React.FC<SelectProps> = React.memo(
10
+ ({
11
+ options,
12
+ className,
13
+ controlClassName,
14
+ value,
15
+ isCustomStyle = false,
16
+ placeholder,
17
+ required,
18
+ onChange,
19
+ filterOptions,
20
+ hasError,
21
+ error,
22
+ menuClassName,
23
+ helperText,
24
+ label,
25
+ labelClassName,
26
+ size = "md",
27
+ variant = "default",
28
+ "data-cy": dataCy,
29
+ "data-testid": dataTestId,
30
+ ...rest
31
+ }) => {
32
+ const memoizedFilterOption = useMemo(
33
+ () => createFilter(filterOptions),
34
+ [filterOptions]
35
+ );
36
+
37
+ const getSizeClasses = () => {
38
+ switch (size) {
39
+ case "sm":
40
+ return "h-[48px] px-3 rounded-lg";
41
+ case "md":
42
+ default:
43
+ return "h-[56px] px-3 rounded-xl";
44
+ }
45
+ };
46
+
47
+ const memoizedClassNames = useMemo(
48
+ () => ({
49
+ control: ({ isFocused }: any) =>
50
+ cx(
51
+ getSizeClasses(),
52
+ "border border-input-border bg-white hover:not-focus:border-input-border-hover",
53
+ {
54
+ "border-input-border-selected outline outline-2 outline-input-border-selected":
55
+ isFocused && !hasError,
56
+ "border-input-border-critical shadow-none": hasError,
57
+ },
58
+ controlClassName
59
+ ),
60
+ indicatorSeparator: () => "hidden",
61
+ dropdownIndicator: ({ selectProps }: any) =>
62
+ isCustomStyle
63
+ ? selectProps.value
64
+ ? "hidden"
65
+ : "block"
66
+ : `block text-icon-default ${hasError ? "text-icon-critical" : ""}`,
67
+ singleValue: () =>
68
+ cx(
69
+ isCustomStyle
70
+ ? "text-text text-body1 whitespace-normal"
71
+ : "text-text-secondary"
72
+ ),
73
+ menu: () =>
74
+ cx(
75
+ "z-20 mt-2 rounded-input-poppers bg-surface shadow-dark-drop",
76
+ menuClassName
77
+ ),
78
+ option: ({ isFocused, isSelected, label }: any) =>
79
+ cx(
80
+ "min-h-[40px] px-4 py-2 cursor-pointer",
81
+ isSelected
82
+ ? "bg-gray-200 text-text font-semibold"
83
+ : "bg-white text-text-secondary",
84
+ !isSelected && "hover:bg-bg-surface-hover",
85
+ !isSelected && isFocused && "bg-bg-surface-hover",
86
+ isCustomStyle ? "text-body1 text-text" : "",
87
+ !isCustomStyle || options[options.length - 1]?.label === label
88
+ ? ""
89
+ : "border-b border-border-brand"
90
+ ),
91
+ placeholder: () => "text-input-text-placeholder",
92
+ input: () => "text-text",
93
+ valueContainer: () => "px-0",
94
+ }),
95
+ [isCustomStyle, controlClassName, menuClassName, options, hasError, size]
96
+ );
97
+
98
+ if (variant === "unstyled") {
99
+ return (
100
+ <ReactSelect
101
+ options={options}
102
+ value={value}
103
+ placeholder={required ? `${placeholder}*` : placeholder}
104
+ onChange={onChange}
105
+ filterOption={memoizedFilterOption}
106
+ className={cx("rounded-xl", className)}
107
+ classNames={memoizedClassNames}
108
+ data-cy={dataCy}
109
+ data-testid={dataTestId}
110
+ {...rest}
111
+ />
112
+ );
113
+ }
114
+
115
+ return (
116
+ <div className="w-full">
117
+ {label && (
118
+ <label
119
+ className={cx(
120
+ "mb-1 block text-sm font-medium text-text-secondary",
121
+ labelClassName
122
+ )}
123
+ >
124
+ {label}
125
+ </label>
126
+ )}
127
+
128
+ <ReactSelect
129
+ options={options}
130
+ value={value}
131
+ placeholder={required ? `${placeholder}*` : placeholder}
132
+ onChange={onChange}
133
+ filterOption={memoizedFilterOption}
134
+ className={cx("rounded-xl", className)}
135
+ classNames={memoizedClassNames}
136
+ data-cy={dataCy}
137
+ data-testid={dataTestId}
138
+ {...rest}
139
+ />
140
+
141
+ {error && (
142
+ <Text className="footnote mt-1 text-text-critical">{error}</Text>
143
+ )}
144
+
145
+ {!error && helperText && (
146
+ <Text className="footnote mt-1 text-text-info">{helperText}</Text>
147
+ )}
148
+ </div>
149
+ );
150
+ }
151
+ );
152
+
153
+ Select.displayName = "Select";
154
+
155
+ export type { SelectOption, SelectProps, FilterOptions };
@@ -1,36 +1,36 @@
1
- import { Props as ReactSelectProps } from "react-select";
2
-
3
- export interface SelectOption<T = any> {
4
- label: string;
5
- value: string;
6
- data?: T;
7
- }
8
-
9
- export type FilterOptions = {
10
- ignoreCase?: boolean;
11
- ignoreAccents?: boolean;
12
- trim?: boolean;
13
- matchFrom?: "start" | "any";
14
- };
15
-
16
- export type OwnProps = {
17
- options: SelectOption[];
18
- value?: SelectOption;
19
- className?: string;
20
- isCustomStyle?: boolean;
21
- controlClassName?: string;
22
- menuClassName?: string;
23
- filterOptions?: FilterOptions;
24
- hasError?: boolean;
25
- error?: string;
26
- helperText?: string;
27
- label?: string;
28
- labelClassName?: string;
29
- size?: "sm" | "md";
30
- variant?: "default" | "unstyled";
31
- "data-cy"?: string;
32
- "data-testid"?: string;
33
- };
34
-
35
- export type SelectProps = OwnProps &
36
- Omit<ReactSelectProps<SelectOption>, "options" | "value" | "className">;
1
+ import { Props as ReactSelectProps } from "react-select";
2
+
3
+ export interface SelectOption<T = any> {
4
+ label: string;
5
+ value: string;
6
+ data?: T;
7
+ }
8
+
9
+ export type FilterOptions = {
10
+ ignoreCase?: boolean;
11
+ ignoreAccents?: boolean;
12
+ trim?: boolean;
13
+ matchFrom?: "start" | "any";
14
+ };
15
+
16
+ export type OwnProps = {
17
+ options: SelectOption[];
18
+ value?: SelectOption;
19
+ className?: string;
20
+ isCustomStyle?: boolean;
21
+ controlClassName?: string;
22
+ menuClassName?: string;
23
+ filterOptions?: FilterOptions;
24
+ hasError?: boolean;
25
+ error?: string;
26
+ helperText?: string;
27
+ label?: string;
28
+ labelClassName?: string;
29
+ size?: "sm" | "md";
30
+ variant?: "default" | "unstyled";
31
+ "data-cy"?: string;
32
+ "data-testid"?: string;
33
+ };
34
+
35
+ export type SelectProps = OwnProps &
36
+ Omit<ReactSelectProps<SelectOption>, "options" | "value" | "className">;