@windstream/react-shared-components 0.0.37 → 0.0.39

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 (139) hide show
  1. package/dist/contentful/index.d.ts +4 -0
  2. package/dist/contentful/index.esm.js +1 -1
  3. package/dist/contentful/index.esm.js.map +1 -1
  4. package/dist/contentful/index.js +1 -1
  5. package/dist/contentful/index.js.map +1 -1
  6. package/dist/core.d.ts +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/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 +1 -1
  18. package/src/components/accordion/Accordion.stories.tsx +230 -230
  19. package/src/components/accordion/index.tsx +49 -49
  20. package/src/components/accordion/types.ts +9 -9
  21. package/src/components/alert-card/AlertCard.stories.tsx +171 -171
  22. package/src/components/alert-card/index.tsx +32 -32
  23. package/src/components/alert-card/types.ts +9 -9
  24. package/src/components/brand-button/BrandButton.stories.tsx +219 -219
  25. package/src/components/brand-button/helpers.ts +35 -35
  26. package/src/components/brand-button/index.tsx +93 -93
  27. package/src/components/brand-button/types.ts +25 -25
  28. package/src/components/button/Button.stories.tsx +108 -108
  29. package/src/components/button/index.tsx +27 -27
  30. package/src/components/button/types.ts +14 -14
  31. package/src/components/call-button/CallButton.stories.tsx +324 -324
  32. package/src/components/call-button/index.tsx +79 -79
  33. package/src/components/call-button/types.ts +10 -10
  34. package/src/components/checkbox/Checkbox.stories.tsx +247 -247
  35. package/src/components/checkbox/index.tsx +197 -197
  36. package/src/components/checkbox/types.ts +27 -27
  37. package/src/components/checklist/Checklist.stories.tsx +150 -150
  38. package/src/components/checklist/index.tsx +39 -39
  39. package/src/components/checklist/types.ts +6 -6
  40. package/src/components/collapse/Collapse.stories.tsx +255 -255
  41. package/src/components/collapse/index.tsx +46 -46
  42. package/src/components/collapse/types.ts +6 -6
  43. package/src/components/divider/Divider.stories.tsx +205 -205
  44. package/src/components/divider/index.tsx +22 -22
  45. package/src/components/divider/type.ts +3 -3
  46. package/src/components/image/Image.stories.tsx +113 -113
  47. package/src/components/image/index.tsx +25 -25
  48. package/src/components/image/types.ts +40 -33
  49. package/src/components/input/Input.stories.tsx +325 -325
  50. package/src/components/input/index.tsx +177 -177
  51. package/src/components/input/types.ts +37 -37
  52. package/src/components/link/Link.stories.tsx +163 -163
  53. package/src/components/link/index.tsx +97 -97
  54. package/src/components/link/types.ts +25 -25
  55. package/src/components/list/List.stories.tsx +272 -272
  56. package/src/components/list/index.tsx +88 -88
  57. package/src/components/list/list-item/index.tsx +38 -38
  58. package/src/components/list/list-item/types.ts +13 -13
  59. package/src/components/list/types.ts +29 -29
  60. package/src/components/material-icon/MaterialIcon.stories.tsx +330 -330
  61. package/src/components/material-icon/constants.ts +95 -95
  62. package/src/components/material-icon/index.tsx +44 -44
  63. package/src/components/material-icon/types.ts +31 -31
  64. package/src/components/modal/Modal.stories.tsx +171 -171
  65. package/src/components/modal/index.tsx +164 -164
  66. package/src/components/modal/types.ts +24 -24
  67. package/src/components/next-image/index.tsx +18 -25
  68. package/src/components/next-image/types.ts +1 -1
  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 +150 -150
  77. package/src/components/select/types.ts +35 -35
  78. package/src/components/select-plan-button/SelectPlanButton.stories.tsx +168 -168
  79. package/src/components/select-plan-button/index.tsx +29 -29
  80. package/src/components/select-plan-button/types.ts +4 -4
  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 +44 -44
  95. package/src/components/view-cart-button/types.ts +5 -5
  96. package/src/contentful/blocks/button/Button.stories.tsx +40 -40
  97. package/src/contentful/blocks/button/index.tsx +64 -48
  98. package/src/contentful/blocks/button/types.ts +24 -20
  99. package/src/contentful/blocks/callout/Callout.stories.tsx +23 -23
  100. package/src/contentful/blocks/cards/Cards.stories.tsx +23 -23
  101. package/src/contentful/blocks/cards/index.tsx +13 -13
  102. package/src/contentful/blocks/cards/types.ts +1 -1
  103. package/src/contentful/blocks/carousel/Carousel.stories.tsx +23 -23
  104. package/src/contentful/blocks/carousel/index.tsx +13 -13
  105. package/src/contentful/blocks/carousel/types.ts +1 -1
  106. package/src/contentful/blocks/cta-callout/CtaCallout.stories.tsx +46 -46
  107. package/src/contentful/blocks/cta-callout/index.tsx +54 -54
  108. package/src/contentful/blocks/cta-callout/types.ts +22 -22
  109. package/src/contentful/blocks/floating-banner/FloatingBanner.stories.tsx +34 -34
  110. package/src/contentful/blocks/floating-banner/index.tsx +102 -99
  111. package/src/contentful/blocks/floating-banner/types.ts +22 -22
  112. package/src/contentful/blocks/footer/Footer.stories.tsx +30 -30
  113. package/src/contentful/blocks/footer/index.tsx +9 -0
  114. package/src/contentful/blocks/footer/types.ts +13 -10
  115. package/src/contentful/blocks/image-promo-bar/ImagePromoBar.stories.tsx +23 -23
  116. package/src/contentful/blocks/image-promo-bar/types.ts +25 -25
  117. package/src/contentful/blocks/modal/Modal.stories.tsx +23 -23
  118. package/src/contentful/blocks/modal/index.tsx +12 -12
  119. package/src/contentful/blocks/modal/types.ts +1 -1
  120. package/src/contentful/blocks/navigation/Navigation.stories.tsx +23 -23
  121. package/src/contentful/blocks/navigation/index.tsx +56 -56
  122. package/src/contentful/blocks/navigation/types.ts +21 -21
  123. package/src/contentful/blocks/primary-hero/PrimaryHero.stories.tsx +23 -23
  124. package/src/contentful/blocks/primary-hero/index.tsx +160 -78
  125. package/src/contentful/blocks/primary-hero/types.ts +30 -29
  126. package/src/contentful/blocks/shape-background-wrapper/ShapeBackgroundWrapper.stories.tsx +26 -26
  127. package/src/contentful/blocks/shape-background-wrapper/index.tsx +124 -124
  128. package/src/contentful/blocks/shape-background-wrapper/types.ts +36 -36
  129. package/src/contentful/blocks/text/Text.stories.tsx +23 -23
  130. package/src/contentful/blocks/text/index.tsx +12 -12
  131. package/src/contentful/blocks/text/types.ts +1 -1
  132. package/src/hooks/use-body-scroll-lock.ts +34 -34
  133. package/src/index.ts +96 -96
  134. package/src/next/index.ts +5 -5
  135. package/src/setupTests.ts +46 -46
  136. package/src/stories/DocsTemplate.tsx +24 -24
  137. package/src/styles/globals.css +275 -275
  138. package/src/types/global.d.ts +9 -9
  139. package/src/utils/index.ts +49 -49
@@ -1,75 +1,75 @@
1
- import React from "react";
2
- import { RadioButtonProps } from "./types";
3
-
4
- import { Button } from "@shared/components/button";
5
- import { cx } from "@shared/utils";
6
-
7
- export const RadioButton: React.FC<RadioButtonProps> = props => {
8
- const {
9
- name,
10
- value,
11
- label,
12
- subText,
13
- checked,
14
- onChange,
15
- className,
16
- variant = "circle",
17
- hasError = false,
18
- labelProps = {},
19
- "data-cy": dataCy,
20
- labelClassName = "",
21
- disabled,
22
- ...rest
23
- } = props;
24
-
25
- const handleChange = () => onChange?.(value || name);
26
-
27
- return (
28
- <label
29
- htmlFor={name}
30
- className={cx("flex items-center", className)}
31
- data-cy={dataCy}
32
- {...labelProps}
33
- >
34
- <input
35
- className="hidden"
36
- type="radio"
37
- name={name}
38
- value={value}
39
- checked={checked}
40
- readOnly
41
- disabled={disabled}
42
- {...rest}
43
- />
44
- <Button
45
- type="button"
46
- onClick={handleChange}
47
- disabled={disabled}
48
- className={cx(
49
- "mr-3 flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-full border-[1px] border-solid border-border-secondary-on-bg-fill bg-bg outline-offset-4",
50
- checked && "border-[1px] border-solid border-border-brand",
51
- disabled && "opacity-50"
52
- )}
53
- >
54
- {checked && (
55
- <div className="h-[0.875rem] w-[0.875rem] rounded-full bg-bg-fill-brand" />
56
- )}
57
- </Button>
58
- <Button
59
- type="button"
60
- onClick={handleChange}
61
- disabled={disabled}
62
- tabIndex={label ? 0 : -1}
63
- >
64
- <div className={cx("text-body2 font-normal", labelClassName)}>
65
- {label}
66
- </div>
67
- <div className="text-body1 text-text-info">{subText}</div>
68
- </Button>
69
- </label>
70
- );
71
- };
72
-
73
- RadioButton.displayName = "RadioButton";
74
-
75
- export type { RadioButtonProps };
1
+ import React from "react";
2
+ import { RadioButtonProps } from "./types";
3
+
4
+ import { Button } from "@shared/components/button";
5
+ import { cx } from "@shared/utils";
6
+
7
+ export const RadioButton: React.FC<RadioButtonProps> = props => {
8
+ const {
9
+ name,
10
+ value,
11
+ label,
12
+ subText,
13
+ checked,
14
+ onChange,
15
+ className,
16
+ variant = "circle",
17
+ hasError = false,
18
+ labelProps = {},
19
+ "data-cy": dataCy,
20
+ labelClassName = "",
21
+ disabled,
22
+ ...rest
23
+ } = props;
24
+
25
+ const handleChange = () => onChange?.(value || name);
26
+
27
+ return (
28
+ <label
29
+ htmlFor={name}
30
+ className={cx("flex items-center", className)}
31
+ data-cy={dataCy}
32
+ {...labelProps}
33
+ >
34
+ <input
35
+ className="hidden"
36
+ type="radio"
37
+ name={name}
38
+ value={value}
39
+ checked={checked}
40
+ readOnly
41
+ disabled={disabled}
42
+ {...rest}
43
+ />
44
+ <Button
45
+ type="button"
46
+ onClick={handleChange}
47
+ disabled={disabled}
48
+ className={cx(
49
+ "mr-3 flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-full border-[1px] border-solid border-border-secondary-on-bg-fill bg-bg outline-offset-4",
50
+ checked && "border-[1px] border-solid border-border-brand",
51
+ disabled && "opacity-50"
52
+ )}
53
+ >
54
+ {checked && (
55
+ <div className="h-[0.875rem] w-[0.875rem] rounded-full bg-bg-fill-brand" />
56
+ )}
57
+ </Button>
58
+ <Button
59
+ type="button"
60
+ onClick={handleChange}
61
+ disabled={disabled}
62
+ tabIndex={label ? 0 : -1}
63
+ >
64
+ <div className={cx("text-body2 font-normal", labelClassName)}>
65
+ {label}
66
+ </div>
67
+ <div className="text-body1 text-text-info">{subText}</div>
68
+ </Button>
69
+ </label>
70
+ );
71
+ };
72
+
73
+ RadioButton.displayName = "RadioButton";
74
+
75
+ export type { RadioButtonProps };
@@ -1,21 +1,21 @@
1
- import { InputHTMLAttributes, LabelHTMLAttributes, ReactNode } from "react";
2
-
3
- type OwnProps = {
4
- name: string;
5
- value?: string | number;
6
- checked?: boolean;
7
- onChange?: (newVal?: string | number) => void;
8
- label?: string | ReactNode;
9
- subText?: string;
10
- className?: string;
11
- labelProps?: LabelHTMLAttributes<HTMLLabelElement>;
12
- variant?: "circle";
13
- hasError?: boolean;
14
- "data-cy"?: string;
15
- labelClassName?: string;
16
- };
17
- export type RadioButtonProps = OwnProps &
18
- Omit<
19
- InputHTMLAttributes<HTMLInputElement>,
20
- "onChange" | "value" | "name" | "checked"
21
- >;
1
+ import { InputHTMLAttributes, LabelHTMLAttributes, ReactNode } from "react";
2
+
3
+ type OwnProps = {
4
+ name: string;
5
+ value?: string | number;
6
+ checked?: boolean;
7
+ onChange?: (newVal?: string | number) => void;
8
+ label?: string | ReactNode;
9
+ subText?: string;
10
+ className?: string;
11
+ labelProps?: LabelHTMLAttributes<HTMLLabelElement>;
12
+ variant?: "circle";
13
+ hasError?: boolean;
14
+ "data-cy"?: string;
15
+ labelClassName?: string;
16
+ };
17
+ export type RadioButtonProps = OwnProps &
18
+ Omit<
19
+ InputHTMLAttributes<HTMLInputElement>,
20
+ "onChange" | "value" | "name" | "checked"
21
+ >;
@@ -1,181 +1,181 @@
1
- import { SeeMore } from "./index";
2
-
3
- import { DocsPage } from "@shared/stories/DocsTemplate";
4
- import type { Meta, StoryObj } from "@storybook/react";
5
-
6
- const meta: Meta<typeof SeeMore> = {
7
- title: "Components/SeeMore",
8
- component: SeeMore,
9
- tags: ["autodocs"],
10
- parameters: {
11
- layout: "centered",
12
- docs: {
13
- page: DocsPage,
14
- description: {
15
- component:
16
- "An expandable component that shows/hides a checklist of items with a toggle button.",
17
- },
18
- },
19
- },
20
- argTypes: {
21
- list: {
22
- control: { type: "object" },
23
- description: "Array of strings to display in the checklist",
24
- },
25
- text: {
26
- control: { type: "text" },
27
- description: "Text for the toggle button",
28
- },
29
- },
30
- args: {
31
- list: ["Feature 1", "Feature 2", "Feature 3"],
32
- text: "See details",
33
- },
34
- };
35
-
36
- export default meta;
37
- type Story = StoryObj<typeof meta>;
38
-
39
- // Default see more
40
- export const Default: Story = {
41
- args: {},
42
- };
43
-
44
- // Expanded by default
45
- export const Expanded: Story = {
46
- args: {
47
- list: [
48
- "High-speed internet connection",
49
- "24/7 customer support",
50
- "No data caps",
51
- "Free installation",
52
- ],
53
- text: "See details",
54
- },
55
- render: args => (
56
- <div className="max-w-md w-full">
57
- <SeeMore {...args} />
58
- </div>
59
- ),
60
- };
61
-
62
- // Collapsed by default
63
- export const Collapsed: Story = {
64
- args: {
65
- list: ["Item 1", "Item 2", "Item 3"],
66
- text: "Show more",
67
- },
68
- render: args => (
69
- <div className="max-w-md w-full">
70
- <SeeMore {...args} />
71
- </div>
72
- ),
73
- };
74
-
75
- // With checklist items
76
- export const WithChecklistItems: Story = {
77
- args: {
78
- list: [
79
- "Unlimited data usage",
80
- "Free router included",
81
- "24/7 technical support",
82
- "No long-term contract",
83
- "30-day money-back guarantee",
84
- ],
85
- text: "View all features",
86
- },
87
- render: args => (
88
- <div className="max-w-md w-full">
89
- <SeeMore {...args} />
90
- </div>
91
- ),
92
- };
93
-
94
- // Custom button text
95
- export const CustomButtonText: Story = {
96
- args: {
97
- list: ["Detail 1", "Detail 2", "Detail 3"],
98
- text: "Learn more",
99
- },
100
- render: args => (
101
- <div className="max-w-md w-full">
102
- <SeeMore {...args} />
103
- </div>
104
- ),
105
- };
106
-
107
- // Long list
108
- export const LongList: Story = {
109
- args: {
110
- list: [
111
- "Feature one with detailed description",
112
- "Feature two",
113
- "Feature three",
114
- "Feature four",
115
- "Feature five",
116
- "Feature six",
117
- "Feature seven",
118
- "Feature eight",
119
- "Feature nine",
120
- "Feature ten",
121
- ],
122
- text: "See all features",
123
- },
124
- render: args => (
125
- <div className="max-w-md w-full">
126
- <SeeMore {...args} />
127
- </div>
128
- ),
129
- };
130
-
131
- // Single item
132
- export const SingleItem: Story = {
133
- args: {
134
- list: ["Single checklist item"],
135
- text: "See details",
136
- },
137
- render: args => (
138
- <div className="max-w-md w-full">
139
- <SeeMore {...args} />
140
- </div>
141
- ),
142
- };
143
-
144
- // All variants showcase
145
- export const AllVariants: Story = {
146
- render: () => (
147
- <div className="max-w-2xl w-full space-y-8">
148
- <div>
149
- <h3 className="mb-3 text-lg font-semibold">Default</h3>
150
- <SeeMore list={["Item 1", "Item 2", "Item 3"]} />
151
- </div>
152
- <div>
153
- <h3 className="mb-3 text-lg font-semibold">Custom Button Text</h3>
154
- <SeeMore
155
- list={["Feature 1", "Feature 2", "Feature 3"]}
156
- text="View all features"
157
- />
158
- </div>
159
- <div>
160
- <h3 className="mb-3 text-lg font-semibold">Long List</h3>
161
- <SeeMore
162
- list={[
163
- "Feature one",
164
- "Feature two",
165
- "Feature three",
166
- "Feature four",
167
- "Feature five",
168
- ]}
169
- text="See all details"
170
- />
171
- </div>
172
- </div>
173
- ),
174
- parameters: {
175
- docs: {
176
- description: {
177
- story: "Showcase of all SeeMore variants and configurations.",
178
- },
179
- },
180
- },
181
- };
1
+ import { SeeMore } from "./index";
2
+
3
+ import { DocsPage } from "@shared/stories/DocsTemplate";
4
+ import type { Meta, StoryObj } from "@storybook/react";
5
+
6
+ const meta: Meta<typeof SeeMore> = {
7
+ title: "Components/SeeMore",
8
+ component: SeeMore,
9
+ tags: ["autodocs"],
10
+ parameters: {
11
+ layout: "centered",
12
+ docs: {
13
+ page: DocsPage,
14
+ description: {
15
+ component:
16
+ "An expandable component that shows/hides a checklist of items with a toggle button.",
17
+ },
18
+ },
19
+ },
20
+ argTypes: {
21
+ list: {
22
+ control: { type: "object" },
23
+ description: "Array of strings to display in the checklist",
24
+ },
25
+ text: {
26
+ control: { type: "text" },
27
+ description: "Text for the toggle button",
28
+ },
29
+ },
30
+ args: {
31
+ list: ["Feature 1", "Feature 2", "Feature 3"],
32
+ text: "See details",
33
+ },
34
+ };
35
+
36
+ export default meta;
37
+ type Story = StoryObj<typeof meta>;
38
+
39
+ // Default see more
40
+ export const Default: Story = {
41
+ args: {},
42
+ };
43
+
44
+ // Expanded by default
45
+ export const Expanded: Story = {
46
+ args: {
47
+ list: [
48
+ "High-speed internet connection",
49
+ "24/7 customer support",
50
+ "No data caps",
51
+ "Free installation",
52
+ ],
53
+ text: "See details",
54
+ },
55
+ render: args => (
56
+ <div className="max-w-md w-full">
57
+ <SeeMore {...args} />
58
+ </div>
59
+ ),
60
+ };
61
+
62
+ // Collapsed by default
63
+ export const Collapsed: Story = {
64
+ args: {
65
+ list: ["Item 1", "Item 2", "Item 3"],
66
+ text: "Show more",
67
+ },
68
+ render: args => (
69
+ <div className="max-w-md w-full">
70
+ <SeeMore {...args} />
71
+ </div>
72
+ ),
73
+ };
74
+
75
+ // With checklist items
76
+ export const WithChecklistItems: Story = {
77
+ args: {
78
+ list: [
79
+ "Unlimited data usage",
80
+ "Free router included",
81
+ "24/7 technical support",
82
+ "No long-term contract",
83
+ "30-day money-back guarantee",
84
+ ],
85
+ text: "View all features",
86
+ },
87
+ render: args => (
88
+ <div className="max-w-md w-full">
89
+ <SeeMore {...args} />
90
+ </div>
91
+ ),
92
+ };
93
+
94
+ // Custom button text
95
+ export const CustomButtonText: Story = {
96
+ args: {
97
+ list: ["Detail 1", "Detail 2", "Detail 3"],
98
+ text: "Learn more",
99
+ },
100
+ render: args => (
101
+ <div className="max-w-md w-full">
102
+ <SeeMore {...args} />
103
+ </div>
104
+ ),
105
+ };
106
+
107
+ // Long list
108
+ export const LongList: Story = {
109
+ args: {
110
+ list: [
111
+ "Feature one with detailed description",
112
+ "Feature two",
113
+ "Feature three",
114
+ "Feature four",
115
+ "Feature five",
116
+ "Feature six",
117
+ "Feature seven",
118
+ "Feature eight",
119
+ "Feature nine",
120
+ "Feature ten",
121
+ ],
122
+ text: "See all features",
123
+ },
124
+ render: args => (
125
+ <div className="max-w-md w-full">
126
+ <SeeMore {...args} />
127
+ </div>
128
+ ),
129
+ };
130
+
131
+ // Single item
132
+ export const SingleItem: Story = {
133
+ args: {
134
+ list: ["Single checklist item"],
135
+ text: "See details",
136
+ },
137
+ render: args => (
138
+ <div className="max-w-md w-full">
139
+ <SeeMore {...args} />
140
+ </div>
141
+ ),
142
+ };
143
+
144
+ // All variants showcase
145
+ export const AllVariants: Story = {
146
+ render: () => (
147
+ <div className="max-w-2xl w-full space-y-8">
148
+ <div>
149
+ <h3 className="mb-3 text-lg font-semibold">Default</h3>
150
+ <SeeMore list={["Item 1", "Item 2", "Item 3"]} />
151
+ </div>
152
+ <div>
153
+ <h3 className="mb-3 text-lg font-semibold">Custom Button Text</h3>
154
+ <SeeMore
155
+ list={["Feature 1", "Feature 2", "Feature 3"]}
156
+ text="View all features"
157
+ />
158
+ </div>
159
+ <div>
160
+ <h3 className="mb-3 text-lg font-semibold">Long List</h3>
161
+ <SeeMore
162
+ list={[
163
+ "Feature one",
164
+ "Feature two",
165
+ "Feature three",
166
+ "Feature four",
167
+ "Feature five",
168
+ ]}
169
+ text="See all details"
170
+ />
171
+ </div>
172
+ </div>
173
+ ),
174
+ parameters: {
175
+ docs: {
176
+ description: {
177
+ story: "Showcase of all SeeMore variants and configurations.",
178
+ },
179
+ },
180
+ },
181
+ };
@@ -1,44 +1,44 @@
1
- "use client";
2
-
3
- import { useState } from "react";
4
-
5
- import { Button } from "@shared/components/button";
6
- import { Checklist } from "@shared/components/checklist";
7
- import { Collapse } from "@shared/components/collapse";
8
- import { MaterialIcon } from "@shared/components/material-icon";
9
- import { SeeMoreProps } from "@shared/components/see-more/types";
10
-
11
- export const SeeMore: React.FC<SeeMoreProps> = props => {
12
- const { list, text } = props;
13
- const [showDetails, setShowDetails] = useState<boolean>(true);
14
- return (
15
- <div className="mt-3">
16
- <Button
17
- type="button"
18
- className="flex items-center gap-2 text-base font-semibold text-gray-900"
19
- aria-expanded={showDetails}
20
- onClick={e => {
21
- e.stopPropagation();
22
- setShowDetails(v => !v);
23
- }}
24
- >
25
- <span>{text || "See details"}</span>
26
- <MaterialIcon
27
- name={showDetails ? "keyboard_arrow_down" : "keyboard_arrow_up"}
28
- fill={1}
29
- size={24}
30
- />
31
- </Button>
32
-
33
- <Collapse open={showDetails}>
34
- <div className="pt-1">
35
- <Checklist listItemClassName="body3" items={list} />
36
- </div>
37
- </Collapse>
38
- </div>
39
- );
40
- };
41
-
42
- SeeMore.displayName = "SeeMore";
43
-
44
- export type { SeeMoreProps };
1
+ "use client";
2
+
3
+ import { useState } from "react";
4
+
5
+ import { Button } from "@shared/components/button";
6
+ import { Checklist } from "@shared/components/checklist";
7
+ import { Collapse } from "@shared/components/collapse";
8
+ import { MaterialIcon } from "@shared/components/material-icon";
9
+ import { SeeMoreProps } from "@shared/components/see-more/types";
10
+
11
+ export const SeeMore: React.FC<SeeMoreProps> = props => {
12
+ const { list, text } = props;
13
+ const [showDetails, setShowDetails] = useState<boolean>(true);
14
+ return (
15
+ <div className="mt-3">
16
+ <Button
17
+ type="button"
18
+ className="flex items-center gap-2 text-base font-semibold text-gray-900"
19
+ aria-expanded={showDetails}
20
+ onClick={e => {
21
+ e.stopPropagation();
22
+ setShowDetails(v => !v);
23
+ }}
24
+ >
25
+ <span>{text || "See details"}</span>
26
+ <MaterialIcon
27
+ name={showDetails ? "keyboard_arrow_down" : "keyboard_arrow_up"}
28
+ fill={1}
29
+ size={24}
30
+ />
31
+ </Button>
32
+
33
+ <Collapse open={showDetails}>
34
+ <div className="pt-1">
35
+ <Checklist listItemClassName="body3" items={list} />
36
+ </div>
37
+ </Collapse>
38
+ </div>
39
+ );
40
+ };
41
+
42
+ SeeMore.displayName = "SeeMore";
43
+
44
+ export type { SeeMoreProps };
@@ -1,4 +1,4 @@
1
- export type SeeMoreProps = {
2
- list: string[];
3
- text?: string;
4
- };
1
+ export type SeeMoreProps = {
2
+ list: string[];
3
+ text?: string;
4
+ };