@windstream/react-shared-components 0.0.10 → 0.0.11
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.
- package/README.md +623 -623
- package/dist/contentful/index.d.ts +6 -2
- package/dist/contentful/index.esm.js +1 -1
- package/dist/contentful/index.esm.js.map +1 -1
- package/dist/contentful/index.js +1 -1
- package/dist/contentful/index.js.map +1 -1
- package/dist/core.d.ts +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +159 -159
- package/src/components/accordion/Accordion.stories.tsx +225 -225
- package/src/components/accordion/index.tsx +36 -36
- package/src/components/accordion/types.ts +9 -9
- package/src/components/alert-card/types.ts +9 -9
- package/src/components/brand-button/BrandButton.stories.tsx +221 -221
- package/src/components/brand-button/helpers.ts +35 -35
- package/src/components/brand-button/index.tsx +90 -90
- package/src/components/brand-button/types.ts +26 -26
- package/src/components/button/Button.stories.tsx +108 -108
- package/src/components/button/index.tsx +23 -23
- package/src/components/button/types.ts +14 -14
- package/src/components/call-button/CallButton.stories.tsx +324 -324
- package/src/components/call-button/index.tsx +80 -80
- package/src/components/call-button/types.ts +9 -9
- package/src/components/checkbox/Checkbox.stories.tsx +248 -248
- package/src/components/checkbox/types.ts +23 -23
- package/src/components/checklist/Checklist.stories.tsx +151 -151
- package/src/components/checklist/index.tsx +33 -33
- package/src/components/checklist/types.ts +5 -5
- package/src/components/collapse/Collapse.stories.tsx +256 -256
- package/src/components/collapse/index.tsx +44 -44
- package/src/components/collapse/types.ts +5 -5
- package/src/components/divider/Divider.stories.tsx +206 -206
- package/src/components/divider/index.tsx +23 -23
- package/src/components/divider/type.ts +2 -2
- package/src/components/input/Input.stories.tsx +358 -358
- package/src/components/input/index.tsx +174 -174
- package/src/components/input/types.ts +36 -36
- package/src/components/link/Link.stories.tsx +163 -163
- package/src/components/link/index.tsx +96 -96
- package/src/components/link/types.ts +25 -25
- package/src/components/list/List.stories.tsx +272 -272
- package/src/components/list/index.tsx +86 -86
- package/src/components/list/list-item/index.tsx +36 -36
- package/src/components/list/list-item/types.ts +13 -13
- package/src/components/list/types.ts +29 -29
- package/src/components/material-icon/MaterialIcon.stories.tsx +330 -330
- package/src/components/material-icon/constants.ts +95 -95
- package/src/components/material-icon/index.tsx +44 -44
- package/src/components/material-icon/types.ts +31 -31
- package/src/components/modal/Modal.stories.tsx +171 -171
- package/src/components/modal/index.tsx +168 -168
- package/src/components/modal/types.ts +23 -23
- package/src/components/radio-button/index.tsx +73 -73
- package/src/components/radio-button/types.ts +21 -21
- package/src/components/see-more/SeeMore.stories.tsx +182 -182
- package/src/components/see-more/index.tsx +38 -38
- package/src/components/see-more/types.ts +3 -3
- package/src/components/select/Select.stories.tsx +410 -410
- package/src/components/select/index.tsx +150 -150
- package/src/components/select/types.ts +34 -34
- package/src/components/select-plan-button/SelectPlanButton.stories.tsx +160 -160
- package/src/components/select-plan-button/index.tsx +20 -20
- package/src/components/select-plan-button/types.ts +3 -3
- package/src/components/skeleton/Skeleton.stories.tsx +180 -180
- package/src/components/skeleton/index.tsx +61 -61
- package/src/components/skeleton/types.ts +3 -3
- package/src/components/spinner/Spinner.stories.tsx +335 -335
- package/src/components/spinner/index.tsx +44 -44
- package/src/components/spinner/types.ts +4 -4
- package/src/components/text/Text.stories.tsx +302 -302
- package/src/components/text/index.tsx +26 -26
- package/src/components/text/types.ts +45 -45
- package/src/components/tooltip/Tooltip.stories.tsx +220 -220
- package/src/components/tooltip/index.tsx +78 -78
- package/src/components/tooltip/types.ts +6 -6
- package/src/components/view-cart-button/ViewCartButton.stories.tsx +241 -241
- package/src/components/view-cart-button/index.tsx +38 -38
- package/src/components/view-cart-button/types.ts +4 -4
- package/src/contentful/blocks/accordion/index.tsx +7 -7
- package/src/contentful/blocks/button/index.tsx +5 -5
- package/src/contentful/blocks/callout/index.tsx +7 -7
- package/src/contentful/blocks/cards/index.tsx +7 -7
- package/src/contentful/blocks/carousel/index.tsx +7 -7
- package/src/contentful/blocks/cta-callout/index.tsx +6 -0
- package/src/contentful/blocks/cta-callout/types.ts +1 -0
- package/src/contentful/blocks/floating-banner/index.tsx +7 -7
- package/src/contentful/blocks/footer/index.tsx +7 -7
- package/src/contentful/blocks/image-promo-bar/index.tsx +7 -7
- package/src/contentful/blocks/modal/index.tsx +5 -5
- package/src/contentful/blocks/navigation/index.tsx +7 -7
- package/src/contentful/blocks/primary-hero/index.tsx +7 -7
- package/src/contentful/blocks/shape-background-wrapper/index.tsx +123 -123
- package/src/contentful/blocks/shape-background-wrapper/types.ts +35 -35
- package/src/contentful/blocks/text/index.tsx +6 -6
- package/src/contentful/index.ts +4 -1
- package/src/hooks/use-body-scroll-lock.ts +31 -31
- package/src/index.ts +81 -81
- package/src/setupTests.ts +46 -46
- package/src/styles/globals.css +275 -319
- package/src/types/global.d.ts +9 -9
- package/src/utils/index.ts +49 -49
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { useEffect } from "react";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* A custom hook that locks the body scroll based on the `isOpen` and `hideScrollOnIsOpenFalse` flags.
|
|
5
|
-
*
|
|
6
|
-
* @param {boolean} isOpen - Determines if the scroll should be locked (hidden).
|
|
7
|
-
* @param {boolean} hideScrollOnIsOpenFalse - Determines if the scroll should be reset when `isOpen` is false.
|
|
8
|
-
*/
|
|
9
|
-
function useBodyScrollLock(isOpen: boolean, hideScrollOnIsOpenFalse: boolean) {
|
|
10
|
-
useEffect(() => {
|
|
11
|
-
if (typeof document === "undefined") return;
|
|
12
|
-
|
|
13
|
-
// To avoid content shifting when the scrollbar appears/disappears
|
|
14
|
-
const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth
|
|
15
|
-
document.body.style.marginRight = isOpen ? `${scrollbarWidth}px` : "unset";
|
|
16
|
-
|
|
17
|
-
// Set the body overflow style based on the `isOpen` and `hideScrollOnIsOpenFalse` values.
|
|
18
|
-
document.body.style.overflow = isOpen
|
|
19
|
-
? "hidden"
|
|
20
|
-
: hideScrollOnIsOpenFalse
|
|
21
|
-
? "unset"
|
|
22
|
-
: document.body.style.overflow;
|
|
23
|
-
|
|
24
|
-
// Cleanup function to reset body overflow when the component unmounts or dependencies change.
|
|
25
|
-
return () => {
|
|
26
|
-
document.body.style.overflow = "unset";
|
|
27
|
-
};
|
|
28
|
-
}, [isOpen, hideScrollOnIsOpenFalse]);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export default useBodyScrollLock;
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A custom hook that locks the body scroll based on the `isOpen` and `hideScrollOnIsOpenFalse` flags.
|
|
5
|
+
*
|
|
6
|
+
* @param {boolean} isOpen - Determines if the scroll should be locked (hidden).
|
|
7
|
+
* @param {boolean} hideScrollOnIsOpenFalse - Determines if the scroll should be reset when `isOpen` is false.
|
|
8
|
+
*/
|
|
9
|
+
function useBodyScrollLock(isOpen: boolean, hideScrollOnIsOpenFalse: boolean) {
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
if (typeof document === "undefined") return;
|
|
12
|
+
|
|
13
|
+
// To avoid content shifting when the scrollbar appears/disappears
|
|
14
|
+
const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth
|
|
15
|
+
document.body.style.marginRight = isOpen ? `${scrollbarWidth}px` : "unset";
|
|
16
|
+
|
|
17
|
+
// Set the body overflow style based on the `isOpen` and `hideScrollOnIsOpenFalse` values.
|
|
18
|
+
document.body.style.overflow = isOpen
|
|
19
|
+
? "hidden"
|
|
20
|
+
: hideScrollOnIsOpenFalse
|
|
21
|
+
? "unset"
|
|
22
|
+
: document.body.style.overflow;
|
|
23
|
+
|
|
24
|
+
// Cleanup function to reset body overflow when the component unmounts or dependencies change.
|
|
25
|
+
return () => {
|
|
26
|
+
document.body.style.overflow = "unset";
|
|
27
|
+
};
|
|
28
|
+
}, [isOpen, hideScrollOnIsOpenFalse]);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export default useBodyScrollLock;
|
package/src/index.ts
CHANGED
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
// Import global styles
|
|
2
|
-
import "./styles/globals.css";
|
|
3
|
-
|
|
4
|
-
// Core Components
|
|
5
|
-
export { Button } from "./components/button";
|
|
6
|
-
export type { ButtonProps } from "./components/button";
|
|
7
|
-
|
|
8
|
-
export { Input, InputField, Input as TextInput } from "./components/input";
|
|
9
|
-
export type { InputProps, InputFieldProps } from "./components/input";
|
|
10
|
-
|
|
11
|
-
export { Link } from "./components/link";
|
|
12
|
-
export type { LinkProps } from "./components/link";
|
|
13
|
-
|
|
14
|
-
export { List, ListItem } from "./components/list";
|
|
15
|
-
export type { ListProps, ListItemProps } from "./components/list";
|
|
16
|
-
|
|
17
|
-
export { MaterialIcon } from "./components/material-icon";
|
|
18
|
-
export type { IconProps, IconName } from "./components/material-icon";
|
|
19
|
-
|
|
20
|
-
export { Spinner } from "./components/spinner";
|
|
21
|
-
export type { SpinnerProps } from "./components/spinner";
|
|
22
|
-
|
|
23
|
-
export { Text } from "./components/text";
|
|
24
|
-
export type { TextProps, TextVariant } from "./components/text";
|
|
25
|
-
|
|
26
|
-
export { CallButton } from "./components/call-button";
|
|
27
|
-
export type { CallButtonProps } from "./components/call-button";
|
|
28
|
-
|
|
29
|
-
export { Modal } from "./components/modal";
|
|
30
|
-
export type { ModalProps, Size, Shape, Animation } from "./components/modal";
|
|
31
|
-
|
|
32
|
-
export { Accordion } from "./components/accordion";
|
|
33
|
-
export type { AccordionProps } from "./components/accordion";
|
|
34
|
-
|
|
35
|
-
export { Checkbox } from "./components/checkbox";
|
|
36
|
-
export type { CheckboxProps } from "./components/checkbox";
|
|
37
|
-
|
|
38
|
-
export { Select } from "./components/select";
|
|
39
|
-
export type { SelectProps, SelectOption, FilterOptions } from "./components/select";
|
|
40
|
-
|
|
41
|
-
export { AlertCard } from "./components/alert-card";
|
|
42
|
-
export type { AlertCardProps } from "./components/alert-card";
|
|
43
|
-
|
|
44
|
-
export { BrandButton } from "./components/brand-button";
|
|
45
|
-
export type { ButtonProps as BrandButtonProps, ButtonVariantsT, ButtonSizeT, ResponsiveSize } from "./components/brand-button";
|
|
46
|
-
|
|
47
|
-
export { Checklist } from "./components/checklist";
|
|
48
|
-
export type { ChecklistProps } from "./components/checklist";
|
|
49
|
-
|
|
50
|
-
export { Collapse } from "./components/collapse";
|
|
51
|
-
export type { CollapsibleProps } from "./components/collapse";
|
|
52
|
-
|
|
53
|
-
export { Divider } from "./components/divider";
|
|
54
|
-
export type { DividerProps } from "./components/divider";
|
|
55
|
-
|
|
56
|
-
export { RadioButton } from "./components/radio-button";
|
|
57
|
-
export type { RadioButtonProps } from "./components/radio-button";
|
|
58
|
-
|
|
59
|
-
export { SeeMore } from "./components/see-more";
|
|
60
|
-
export type { SeeMoreProps } from "./components/see-more";
|
|
61
|
-
|
|
62
|
-
export { SelectPlanButton } from "./components/select-plan-button";
|
|
63
|
-
export type { SelectPlanButtonProps } from "./components/select-plan-button";
|
|
64
|
-
|
|
65
|
-
export { Skeleton, PageSkeleton } from "./components/skeleton";
|
|
66
|
-
export type { SkeletonProps } from "./components/skeleton";
|
|
67
|
-
|
|
68
|
-
export { Tooltip } from "./components/tooltip";
|
|
69
|
-
export type { ToolTipProps } from "./components/tooltip";
|
|
70
|
-
|
|
71
|
-
export { ViewCartButton } from "./components/view-cart-button";
|
|
72
|
-
export type { ViewCartButtonProps } from "./components/view-cart-button";
|
|
73
|
-
|
|
74
|
-
export { default as useBodyScrollLock } from "./hooks/use-body-scroll-lock";
|
|
75
|
-
|
|
76
|
-
// Utils
|
|
77
|
-
export { cx, clsx } from "./utils";
|
|
78
|
-
export type { ClassValue } from "./utils";
|
|
79
|
-
|
|
80
|
-
// Re-export types
|
|
81
|
-
export type { ButtonHTMLAttributes, CSSProperties, ReactNode } from "react";
|
|
1
|
+
// Import global styles
|
|
2
|
+
import "./styles/globals.css";
|
|
3
|
+
|
|
4
|
+
// Core Components
|
|
5
|
+
export { Button } from "./components/button";
|
|
6
|
+
export type { ButtonProps } from "./components/button";
|
|
7
|
+
|
|
8
|
+
export { Input, InputField, Input as TextInput } from "./components/input";
|
|
9
|
+
export type { InputProps, InputFieldProps } from "./components/input";
|
|
10
|
+
|
|
11
|
+
export { Link } from "./components/link";
|
|
12
|
+
export type { LinkProps } from "./components/link";
|
|
13
|
+
|
|
14
|
+
export { List, ListItem } from "./components/list";
|
|
15
|
+
export type { ListProps, ListItemProps } from "./components/list";
|
|
16
|
+
|
|
17
|
+
export { MaterialIcon } from "./components/material-icon";
|
|
18
|
+
export type { IconProps, IconName } from "./components/material-icon";
|
|
19
|
+
|
|
20
|
+
export { Spinner } from "./components/spinner";
|
|
21
|
+
export type { SpinnerProps } from "./components/spinner";
|
|
22
|
+
|
|
23
|
+
export { Text } from "./components/text";
|
|
24
|
+
export type { TextProps, TextVariant } from "./components/text";
|
|
25
|
+
|
|
26
|
+
export { CallButton } from "./components/call-button";
|
|
27
|
+
export type { CallButtonProps } from "./components/call-button";
|
|
28
|
+
|
|
29
|
+
export { Modal } from "./components/modal";
|
|
30
|
+
export type { ModalProps, Size, Shape, Animation } from "./components/modal";
|
|
31
|
+
|
|
32
|
+
export { Accordion } from "./components/accordion";
|
|
33
|
+
export type { AccordionProps } from "./components/accordion";
|
|
34
|
+
|
|
35
|
+
export { Checkbox } from "./components/checkbox";
|
|
36
|
+
export type { CheckboxProps } from "./components/checkbox";
|
|
37
|
+
|
|
38
|
+
export { Select } from "./components/select";
|
|
39
|
+
export type { SelectProps, SelectOption, FilterOptions } from "./components/select";
|
|
40
|
+
|
|
41
|
+
export { AlertCard } from "./components/alert-card";
|
|
42
|
+
export type { AlertCardProps } from "./components/alert-card";
|
|
43
|
+
|
|
44
|
+
export { BrandButton } from "./components/brand-button";
|
|
45
|
+
export type { ButtonProps as BrandButtonProps, ButtonVariantsT, ButtonSizeT, ResponsiveSize } from "./components/brand-button";
|
|
46
|
+
|
|
47
|
+
export { Checklist } from "./components/checklist";
|
|
48
|
+
export type { ChecklistProps } from "./components/checklist";
|
|
49
|
+
|
|
50
|
+
export { Collapse } from "./components/collapse";
|
|
51
|
+
export type { CollapsibleProps } from "./components/collapse";
|
|
52
|
+
|
|
53
|
+
export { Divider } from "./components/divider";
|
|
54
|
+
export type { DividerProps } from "./components/divider";
|
|
55
|
+
|
|
56
|
+
export { RadioButton } from "./components/radio-button";
|
|
57
|
+
export type { RadioButtonProps } from "./components/radio-button";
|
|
58
|
+
|
|
59
|
+
export { SeeMore } from "./components/see-more";
|
|
60
|
+
export type { SeeMoreProps } from "./components/see-more";
|
|
61
|
+
|
|
62
|
+
export { SelectPlanButton } from "./components/select-plan-button";
|
|
63
|
+
export type { SelectPlanButtonProps } from "./components/select-plan-button";
|
|
64
|
+
|
|
65
|
+
export { Skeleton, PageSkeleton } from "./components/skeleton";
|
|
66
|
+
export type { SkeletonProps } from "./components/skeleton";
|
|
67
|
+
|
|
68
|
+
export { Tooltip } from "./components/tooltip";
|
|
69
|
+
export type { ToolTipProps } from "./components/tooltip";
|
|
70
|
+
|
|
71
|
+
export { ViewCartButton } from "./components/view-cart-button";
|
|
72
|
+
export type { ViewCartButtonProps } from "./components/view-cart-button";
|
|
73
|
+
|
|
74
|
+
export { default as useBodyScrollLock } from "./hooks/use-body-scroll-lock";
|
|
75
|
+
|
|
76
|
+
// Utils
|
|
77
|
+
export { cx, clsx } from "./utils";
|
|
78
|
+
export type { ClassValue } from "./utils";
|
|
79
|
+
|
|
80
|
+
// Re-export types
|
|
81
|
+
export type { ButtonHTMLAttributes, CSSProperties, ReactNode } from "react";
|
package/src/setupTests.ts
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import "@testing-library/jest-dom";
|
|
2
|
-
|
|
3
|
-
// Mock window.matchMedia
|
|
4
|
-
Object.defineProperty(window, "matchMedia", {
|
|
5
|
-
writable: true,
|
|
6
|
-
value: (query: string) => ({
|
|
7
|
-
matches: false,
|
|
8
|
-
media: query,
|
|
9
|
-
onchange: null,
|
|
10
|
-
addListener: () => {}, // deprecated
|
|
11
|
-
removeListener: () => {}, // deprecated
|
|
12
|
-
addEventListener: () => {},
|
|
13
|
-
removeEventListener: () => {},
|
|
14
|
-
dispatchEvent: () => true,
|
|
15
|
-
}),
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
// Mock ResizeObserver
|
|
19
|
-
global.ResizeObserver = class ResizeObserver {
|
|
20
|
-
observe = () => {};
|
|
21
|
-
unobserve = () => {};
|
|
22
|
-
disconnect = () => {};
|
|
23
|
-
constructor(_callback: ResizeObserverCallback) {}
|
|
24
|
-
} as unknown as typeof ResizeObserver;
|
|
25
|
-
|
|
26
|
-
// Mock IntersectionObserver
|
|
27
|
-
global.IntersectionObserver = class IntersectionObserver {
|
|
28
|
-
observe = () => {};
|
|
29
|
-
unobserve = () => {};
|
|
30
|
-
disconnect = () => {};
|
|
31
|
-
constructor(_callback: IntersectionObserverCallback) {}
|
|
32
|
-
} as unknown as typeof IntersectionObserver;
|
|
33
|
-
|
|
34
|
-
// Mock scrollTo
|
|
35
|
-
Object.defineProperty(window, "scrollTo", {
|
|
36
|
-
writable: true,
|
|
37
|
-
value: () => {},
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
// Mock getComputedStyle
|
|
41
|
-
Object.defineProperty(window, "getComputedStyle", {
|
|
42
|
-
writable: true,
|
|
43
|
-
value: () => ({
|
|
44
|
-
getPropertyValue: () => "",
|
|
45
|
-
}),
|
|
46
|
-
});
|
|
1
|
+
import "@testing-library/jest-dom";
|
|
2
|
+
|
|
3
|
+
// Mock window.matchMedia
|
|
4
|
+
Object.defineProperty(window, "matchMedia", {
|
|
5
|
+
writable: true,
|
|
6
|
+
value: (query: string) => ({
|
|
7
|
+
matches: false,
|
|
8
|
+
media: query,
|
|
9
|
+
onchange: null,
|
|
10
|
+
addListener: () => {}, // deprecated
|
|
11
|
+
removeListener: () => {}, // deprecated
|
|
12
|
+
addEventListener: () => {},
|
|
13
|
+
removeEventListener: () => {},
|
|
14
|
+
dispatchEvent: () => true,
|
|
15
|
+
}),
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
// Mock ResizeObserver
|
|
19
|
+
global.ResizeObserver = class ResizeObserver {
|
|
20
|
+
observe = () => {};
|
|
21
|
+
unobserve = () => {};
|
|
22
|
+
disconnect = () => {};
|
|
23
|
+
constructor(_callback: ResizeObserverCallback) {}
|
|
24
|
+
} as unknown as typeof ResizeObserver;
|
|
25
|
+
|
|
26
|
+
// Mock IntersectionObserver
|
|
27
|
+
global.IntersectionObserver = class IntersectionObserver {
|
|
28
|
+
observe = () => {};
|
|
29
|
+
unobserve = () => {};
|
|
30
|
+
disconnect = () => {};
|
|
31
|
+
constructor(_callback: IntersectionObserverCallback) {}
|
|
32
|
+
} as unknown as typeof IntersectionObserver;
|
|
33
|
+
|
|
34
|
+
// Mock scrollTo
|
|
35
|
+
Object.defineProperty(window, "scrollTo", {
|
|
36
|
+
writable: true,
|
|
37
|
+
value: () => {},
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
// Mock getComputedStyle
|
|
41
|
+
Object.defineProperty(window, "getComputedStyle", {
|
|
42
|
+
writable: true,
|
|
43
|
+
value: () => ({
|
|
44
|
+
getPropertyValue: () => "",
|
|
45
|
+
}),
|
|
46
|
+
});
|