|
1 | 1 | import * as React from 'react'; |
2 | | -import {withKnobs, text, select} from '@storybook/addon-knobs'; |
3 | | -import type {HeadingProps} from '@twilio-paste/heading'; |
| 2 | +import {Box} from '@twilio-paste/box'; |
4 | 3 | import {Stack} from '@twilio-paste/stack'; |
| 4 | +import {Truncate} from '@twilio-paste/truncate'; |
5 | 5 | import {Paragraph} from '@twilio-paste/paragraph'; |
6 | 6 | import {Disclosure, DisclosureContent, DisclosureHeading, useDisclosureState} from '../src'; |
7 | 7 | import type {DisclosureHeadingProps, DisclosureInitialState, DisclosureStateReturn, DisclosureVariants} from '../src'; |
8 | 8 |
|
9 | | -const headingVariantOptions = ['heading10', 'heading20', 'heading30', 'heading40', 'heading50', 'heading60']; |
10 | | - |
11 | 9 | export const ExampleDisclosures: React.FC<{ |
12 | 10 | disabled?: boolean; |
13 | 11 | variant?: DisclosureVariants; |
@@ -63,30 +61,12 @@ const useDelayedDisclosureState = ({delay, ...initialState}: UseDelayedDisclosur |
63 | 61 | // eslint-disable-next-line import/no-default-export |
64 | 62 | export default { |
65 | 63 | title: 'Components/Disclosure', |
66 | | - decorators: [withKnobs], |
| 64 | + decorators: [], |
67 | 65 | excludeStories: ['ExampleDisclosures'], |
68 | 66 | component: Disclosure, |
69 | 67 | subcomponents: {DisclosureHeading, DisclosureContent}, |
70 | 68 | }; |
71 | 69 |
|
72 | | -export const AllVariants = (): React.ReactNode => { |
73 | | - const asOptions = text('as', 'h2') as HeadingProps['as']; |
74 | | - const headingVariantValue = select('heading variant', headingVariantOptions, 'heading10') as HeadingProps['variant']; |
75 | | - const variantOptions = select('disclosure variant', ['default', 'contained'], 'default'); |
76 | | - return ( |
77 | | - <Disclosure variant={variantOptions}> |
78 | | - <DisclosureHeading as={asOptions} variant={headingVariantValue}> |
79 | | - Disclosure trigger as heading |
80 | | - </DisclosureHeading> |
81 | | - <DisclosureContent>Disclosure content</DisclosureContent> |
82 | | - </Disclosure> |
83 | | - ); |
84 | | -}; |
85 | | - |
86 | | -AllVariants.story = { |
87 | | - name: 'All variants', |
88 | | -}; |
89 | | - |
90 | 70 | export const HeadingVariant10 = (): React.ReactNode => { |
91 | 71 | return <ExampleDisclosures headingVariant="heading10" />; |
92 | 72 | }; |
@@ -176,6 +156,28 @@ MultilineHeading.story = { |
176 | 156 | name: 'Multiline heading', |
177 | 157 | }; |
178 | 158 |
|
| 159 | +export const TruncatedHeader = (): React.ReactNode => { |
| 160 | + return ( |
| 161 | + <Box width="size40"> |
| 162 | + <Disclosure variant="contained"> |
| 163 | + <DisclosureHeading as="h3" variant="heading30"> |
| 164 | + <Truncate>This is a really long header with truncation</Truncate> |
| 165 | + </DisclosureHeading> |
| 166 | + <DisclosureContent> |
| 167 | + Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Fusce dapibus, tellus ac cursus |
| 168 | + commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Lorem ipsum dolor sit amet, |
| 169 | + consectetur adipiscing elit. Nullam quis risus eget urna mollis ornare vel eu leo. Nulla vitae elit libero, a |
| 170 | + pharetra augue. |
| 171 | + </DisclosureContent> |
| 172 | + </Disclosure> |
| 173 | + </Box> |
| 174 | + ); |
| 175 | +}; |
| 176 | + |
| 177 | +TruncatedHeader.story = { |
| 178 | + name: 'Truncated Header', |
| 179 | +}; |
| 180 | + |
179 | 181 | export const ContainedHeadingVariant10 = (): React.ReactNode => { |
180 | 182 | return <ExampleDisclosures headingVariant="heading10" variant="contained" />; |
181 | 183 | }; |
|
0 commit comments