@marigold/components 0.2.0 → 0.3.0

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 (195) hide show
  1. package/CHANGELOG.md +294 -0
  2. package/dist/ActionGroup/ActionGroup.d.ts +1 -2
  3. package/dist/ActionGroup/ActionGroup.stories.d.ts +5 -0
  4. package/dist/Alert/Alert.d.ts +10 -13
  5. package/dist/Alert/Alert.stories.d.ts +5 -0
  6. package/dist/Badge/Badge.d.ts +5 -0
  7. package/dist/Badge/Badge.stories.d.ts +5 -0
  8. package/dist/Box.d.ts +2 -0
  9. package/dist/Button/Button.d.ts +5 -0
  10. package/dist/Button/Button.stories.d.ts +5 -0
  11. package/dist/Card/Card.d.ts +5 -0
  12. package/dist/Card/Card.stories.d.ts +5 -0
  13. package/dist/Checkbox/Checkbox.d.ts +10 -5
  14. package/dist/Checkbox/Checkbox.stories.d.ts +5 -0
  15. package/dist/Checkbox/CheckboxIcons.d.ts +9 -9
  16. package/dist/Column/Column.stories.d.ts +5 -0
  17. package/dist/Columns/Columns.d.ts +2 -2
  18. package/dist/Columns/Columns.stories.d.ts +5 -0
  19. package/dist/Container/Container.stories.d.ts +5 -0
  20. package/dist/Dialog/Dialog.d.ts +5 -2
  21. package/dist/Dialog/Dialog.stories.d.ts +5 -0
  22. package/dist/Dialog/ModalDialog.d.ts +4 -1
  23. package/dist/Divider/Divider.d.ts +5 -0
  24. package/dist/Divider/Divider.stories.d.ts +5 -0
  25. package/dist/Field/Field.d.ts +2 -0
  26. package/dist/Field/Field.stories.d.ts +5 -0
  27. package/dist/Image/Image.d.ts +5 -0
  28. package/dist/Image/Image.stories.d.ts +5 -0
  29. package/dist/Inline/Inline.d.ts +7 -0
  30. package/dist/Inline/Inline.stories.d.ts +5 -0
  31. package/dist/Inline/index.d.ts +1 -0
  32. package/dist/Input/Input.d.ts +5 -0
  33. package/dist/Input/Input.stories.d.ts +5 -0
  34. package/dist/Label/Label.d.ts +12 -1
  35. package/dist/Label/Label.stories.d.ts +5 -0
  36. package/dist/Link/Link.d.ts +4 -1
  37. package/dist/Link/Link.stories.d.ts +5 -0
  38. package/dist/Menu/Menu.d.ts +3 -0
  39. package/dist/Menu/Menu.stories.d.ts +5 -0
  40. package/dist/MenuItem/MenuItem.d.ts +5 -0
  41. package/dist/MenuItem/MenuItem.stories.d.ts +5 -0
  42. package/dist/Message/Message.d.ts +5 -0
  43. package/dist/Message/Message.stories.d.ts +5 -0
  44. package/dist/Provider/MarigoldProvider.d.ts +11 -3
  45. package/dist/Provider/index.d.ts +1 -1
  46. package/dist/Radio/Radio.d.ts +6 -0
  47. package/dist/Radio/RadioIcons.d.ts +1 -0
  48. package/dist/Select/ListBox.d.ts +1 -0
  49. package/dist/Select/ListBoxSection.d.ts +1 -0
  50. package/dist/Select/Option.d.ts +1 -0
  51. package/dist/Select/Select.d.ts +15 -1
  52. package/dist/Select/Select.stories.d.ts +5 -0
  53. package/dist/Slider/Slider.d.ts +5 -0
  54. package/dist/Slider/Slider.stories.d.ts +5 -0
  55. package/dist/Stack/Stack.stories.d.ts +5 -0
  56. package/dist/Text/Text.d.ts +5 -0
  57. package/dist/Text/Text.stories.d.ts +5 -0
  58. package/dist/Textarea/Textarea.d.ts +5 -0
  59. package/dist/Textarea/Textarea.stories.d.ts +5 -0
  60. package/dist/ValidationMessage/ValidationMessage.d.ts +5 -0
  61. package/dist/ValidationMessage/ValidationMessage.stories.d.ts +5 -0
  62. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -0
  63. package/dist/VisuallyHidden/VisuallyHidden.stories.d.ts +5 -0
  64. package/dist/VisuallyHidden/index.d.ts +1 -0
  65. package/dist/components.cjs.development.js +480 -496
  66. package/dist/components.cjs.development.js.map +1 -1
  67. package/dist/components.cjs.production.min.js +1 -1
  68. package/dist/components.cjs.production.min.js.map +1 -1
  69. package/dist/components.esm.js +415 -441
  70. package/dist/components.esm.js.map +1 -1
  71. package/dist/index.d.ts +2 -2
  72. package/dist/theme.d.ts +23 -48
  73. package/package.json +4 -1
  74. package/src/ActionGroup/ActionGroup.stories.tsx +47 -0
  75. package/src/ActionGroup/ActionGroup.test.tsx +36 -36
  76. package/src/ActionGroup/ActionGroup.tsx +17 -28
  77. package/src/Alert/Alert.stories.tsx +32 -0
  78. package/src/Alert/Alert.test.tsx +4 -1
  79. package/src/Alert/Alert.tsx +18 -3
  80. package/src/Badge/Badge.stories.tsx +38 -0
  81. package/src/Badge/Badge.test.tsx +5 -1
  82. package/src/Badge/Badge.tsx +13 -1
  83. package/src/Box.ts +2 -0
  84. package/src/Button/{Button.stories.mdx → Button.stories.tsx} +10 -17
  85. package/src/Button/Button.test.tsx +34 -11
  86. package/src/Button/Button.tsx +17 -3
  87. package/src/Card/{Card.stories.mdx → Card.stories.tsx} +9 -17
  88. package/src/Card/Card.test.tsx +8 -3
  89. package/src/Card/Card.tsx +13 -1
  90. package/src/Checkbox/Checkbox.stories.mdx +11 -0
  91. package/src/Checkbox/Checkbox.stories.tsx +78 -0
  92. package/src/Checkbox/Checkbox.test.tsx +77 -8
  93. package/src/Checkbox/Checkbox.tsx +70 -90
  94. package/src/Checkbox/CheckboxIcons.tsx +51 -41
  95. package/src/Column/Column.stories.tsx +33 -0
  96. package/src/Columns/Columns.stories.tsx +75 -0
  97. package/src/Columns/Columns.test.tsx +34 -23
  98. package/src/Columns/Columns.tsx +30 -30
  99. package/src/Container/Container.stories.tsx +14 -0
  100. package/src/Dialog/{Dialog.stories.mdx → Dialog.stories.tsx} +33 -18
  101. package/src/Dialog/Dialog.test.tsx +91 -20
  102. package/src/Dialog/Dialog.tsx +63 -17
  103. package/src/Dialog/ModalDialog.tsx +33 -4
  104. package/src/Divider/{Divider.stories.mdx → Divider.stories.tsx} +10 -17
  105. package/src/Divider/Divider.test.tsx +13 -5
  106. package/src/Divider/Divider.tsx +12 -0
  107. package/src/Field/{Field.stories.mdx → Field.stories.tsx} +33 -20
  108. package/src/Field/Field.test.tsx +55 -5
  109. package/src/Field/Field.tsx +10 -8
  110. package/src/Image/Image.stories.tsx +34 -0
  111. package/src/Image/Image.test.tsx +4 -1
  112. package/src/Image/Image.tsx +13 -1
  113. package/src/Inline/Inline.stories.tsx +39 -0
  114. package/src/Inline/Inline.test.tsx +99 -0
  115. package/src/Inline/Inline.tsx +38 -0
  116. package/src/Inline/index.ts +1 -0
  117. package/src/Input/{Input.stories.mdx → Input.stories.tsx} +10 -17
  118. package/src/Input/Input.test.tsx +7 -3
  119. package/src/Input/Input.tsx +13 -1
  120. package/src/Label/{Label.stories.mdx → Label.stories.tsx} +10 -21
  121. package/src/Label/Label.test.tsx +25 -4
  122. package/src/Label/Label.tsx +42 -9
  123. package/src/Link/Link.stories.tsx +35 -0
  124. package/src/Link/Link.test.tsx +6 -2
  125. package/src/Link/Link.tsx +10 -0
  126. package/src/Menu/{Menu.stories.mdx → Menu.stories.tsx} +13 -32
  127. package/src/Menu/Menu.test.tsx +7 -2
  128. package/src/Menu/Menu.tsx +10 -0
  129. package/src/MenuItem/MenuItem.stories.tsx +30 -0
  130. package/src/MenuItem/MenuItem.test.tsx +7 -2
  131. package/src/MenuItem/MenuItem.tsx +12 -0
  132. package/src/Message/Message.stories.tsx +30 -0
  133. package/src/Message/Message.test.tsx +4 -1
  134. package/src/Message/Message.tsx +17 -5
  135. package/src/Provider/MarigoldProvider.test.tsx +65 -55
  136. package/src/Provider/MarigoldProvider.tsx +37 -19
  137. package/src/Provider/index.ts +2 -1
  138. package/src/Radio/Radio.stories.mdx +11 -0
  139. package/src/Radio/Radio.test.tsx +36 -2
  140. package/src/Radio/Radio.tsx +13 -2
  141. package/src/Radio/RadioIcons.tsx +1 -1
  142. package/src/Select/ListBox.tsx +1 -0
  143. package/src/Select/{Select.stories.mdx → Select.stories.tsx} +23 -20
  144. package/src/Select/Select.test.tsx +39 -1
  145. package/src/Select/Select.tsx +24 -13
  146. package/src/Slider/Slider.stories.tsx +24 -0
  147. package/src/Slider/Slider.test.tsx +10 -6
  148. package/src/Slider/Slider.tsx +25 -13
  149. package/src/Stack/Stack.stories.tsx +57 -0
  150. package/src/Stack/Stack.test.tsx +16 -7
  151. package/src/Text/{Text.stories.mdx → Text.stories.tsx} +20 -19
  152. package/src/Text/Text.test.tsx +2 -2
  153. package/src/Text/Text.tsx +12 -0
  154. package/src/Textarea/{Textarea.stories.mdx → Textarea.stories.tsx} +14 -24
  155. package/src/Textarea/Textarea.test.tsx +7 -3
  156. package/src/Textarea/Textarea.tsx +13 -1
  157. package/src/ValidationMessage/{ValidationMessage.stories.mdx → ValidationMessage.stories.tsx} +8 -17
  158. package/src/ValidationMessage/ValidationMessage.test.tsx +7 -2
  159. package/src/ValidationMessage/ValidationMessage.tsx +12 -0
  160. package/src/VisuallyHidden/VisuallyHidden.stories.tsx +19 -0
  161. package/src/VisuallyHidden/VisuallyHidden.test.tsx +10 -0
  162. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -0
  163. package/src/VisuallyHidden/index.ts +1 -0
  164. package/src/index.ts +2 -2
  165. package/src/theme.ts +49 -48
  166. package/dist/Box/Box.d.ts +0 -47
  167. package/dist/Box/index.d.ts +0 -1
  168. package/dist/Heading/Heading.d.ts +0 -7
  169. package/dist/Heading/index.d.ts +0 -1
  170. package/dist/Hidden/Hidden.d.ts +0 -5
  171. package/dist/Hidden/index.d.ts +0 -1
  172. package/src/ActionGroup/ActionGroup.stories.mdx +0 -62
  173. package/src/Alert/Alert.stories.mdx +0 -35
  174. package/src/Badge/Badge.stories.mdx +0 -57
  175. package/src/Box/Box.stories.mdx +0 -334
  176. package/src/Box/Box.test.tsx +0 -133
  177. package/src/Box/Box.tsx +0 -165
  178. package/src/Box/index.ts +0 -1
  179. package/src/Column/Column.stories.mdx +0 -49
  180. package/src/Columns/Columns.stories.mdx +0 -65
  181. package/src/Container/Container.stories.mdx +0 -19
  182. package/src/Heading/Heading.stories.mdx +0 -39
  183. package/src/Heading/Heading.test.tsx +0 -77
  184. package/src/Heading/Heading.tsx +0 -19
  185. package/src/Heading/index.ts +0 -1
  186. package/src/Hidden/Hidden.stories.mdx +0 -39
  187. package/src/Hidden/Hidden.test.tsx +0 -24
  188. package/src/Hidden/Hidden.tsx +0 -16
  189. package/src/Hidden/index.ts +0 -1
  190. package/src/Image/Image.stories.mdx +0 -36
  191. package/src/Link/Link.stories.mdx +0 -45
  192. package/src/MenuItem/MenuItem.stories.mdx +0 -37
  193. package/src/Message/Message.stories.mdx +0 -44
  194. package/src/Slider/Slider.stories.mdx +0 -31
  195. package/src/Stack/Stack.stories.mdx +0 -51
package/src/Box/Box.tsx DELETED
@@ -1,165 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import { CSSObject, Element, ResponsiveStyleValue } from '@marigold/system';
3
- import {
4
- PolymorphicPropsWithRef,
5
- PolymorphicComponentWithRef,
6
- } from '@marigold/types';
7
-
8
- export type BoxOwnProps = {
9
- className?: string;
10
- variant?: string | string[];
11
- css?: CSSObject;
12
-
13
- display?: ResponsiveStyleValue<string>;
14
-
15
- height?: ResponsiveStyleValue<number | string>;
16
- width?: ResponsiveStyleValue<number | string>;
17
- minWidth?: ResponsiveStyleValue<number | string>;
18
- maxWidth?: ResponsiveStyleValue<number | string>;
19
-
20
- position?: ResponsiveStyleValue<string>;
21
- top?: ResponsiveStyleValue<number | string>;
22
- bottom?: ResponsiveStyleValue<number | string>;
23
- right?: ResponsiveStyleValue<number | string>;
24
- left?: ResponsiveStyleValue<number | string>;
25
- zIndex?: ResponsiveStyleValue<number | string>;
26
-
27
- p?: ResponsiveStyleValue<number | string>;
28
- px?: ResponsiveStyleValue<number | string>;
29
- py?: ResponsiveStyleValue<number | string>;
30
- pt?: ResponsiveStyleValue<number | string>;
31
- pb?: ResponsiveStyleValue<number | string>;
32
- pl?: ResponsiveStyleValue<number | string>;
33
- pr?: ResponsiveStyleValue<number | string>;
34
-
35
- m?: ResponsiveStyleValue<number | string>;
36
- mx?: ResponsiveStyleValue<number | string>;
37
- my?: ResponsiveStyleValue<number | string>;
38
- mt?: ResponsiveStyleValue<number | string>;
39
- mb?: ResponsiveStyleValue<number | string>;
40
- ml?: ResponsiveStyleValue<number | string>;
41
- mr?: ResponsiveStyleValue<number | string>;
42
-
43
- flexDirection?: ResponsiveStyleValue<string>;
44
- flexWrap?: ResponsiveStyleValue<string>;
45
- flexShrink?: ResponsiveStyleValue<number | string>;
46
- flexGrow?: ResponsiveStyleValue<number | string>;
47
- alignItems?: ResponsiveStyleValue<string>;
48
- justifyContent?: ResponsiveStyleValue<string>;
49
-
50
- bg?: ResponsiveStyleValue<number | string>;
51
- border?: ResponsiveStyleValue<number | string>;
52
- borderRadius?: ResponsiveStyleValue<number | string>;
53
- boxShadow?: ResponsiveStyleValue<number | string>;
54
- opacity?: ResponsiveStyleValue<number | string>;
55
- overflow?: ResponsiveStyleValue<string>;
56
-
57
- transition?: ResponsiveStyleValue<number | string>;
58
- };
59
-
60
- export type BoxProps = PolymorphicPropsWithRef<BoxOwnProps, 'div'>;
61
-
62
- export const Box: PolymorphicComponentWithRef<BoxOwnProps, 'div'> = forwardRef(
63
- (
64
- {
65
- variant,
66
- as = 'div',
67
- css,
68
- children,
69
- className,
70
- display,
71
- height,
72
- width,
73
- minWidth,
74
- maxWidth,
75
- position,
76
- top,
77
- bottom,
78
- right,
79
- left,
80
- zIndex,
81
- p,
82
- px,
83
- py,
84
- pt,
85
- pb,
86
- pl,
87
- pr,
88
- m,
89
- mx,
90
- my,
91
- mt,
92
- mb,
93
- ml,
94
- mr,
95
- flexDirection,
96
- flexWrap,
97
- flexShrink,
98
- flexGrow,
99
- alignItems,
100
- justifyContent,
101
- bg,
102
- border,
103
- borderRadius,
104
- boxShadow,
105
- opacity,
106
- overflow,
107
- transition,
108
- ...props
109
- },
110
- ref
111
- ) => (
112
- <Element
113
- as={as}
114
- ref={ref}
115
- variant={variant}
116
- css={{
117
- ...{
118
- display,
119
- height,
120
- width,
121
- minWidth,
122
- maxWidth,
123
- position,
124
- top,
125
- bottom,
126
- right,
127
- left,
128
- zIndex,
129
- p,
130
- px,
131
- py,
132
- pt,
133
- pb,
134
- pl,
135
- pr,
136
- m,
137
- mx,
138
- my,
139
- mt,
140
- mb,
141
- ml,
142
- mr,
143
- flexDirection,
144
- flexWrap,
145
- flexShrink,
146
- flexGrow,
147
- alignItems,
148
- justifyContent,
149
- bg,
150
- border,
151
- borderRadius,
152
- boxShadow,
153
- opacity,
154
- overflow,
155
- transition,
156
- },
157
- ...css,
158
- }}
159
- className={className}
160
- {...props}
161
- >
162
- {children}
163
- </Element>
164
- )
165
- );
package/src/Box/index.ts DELETED
@@ -1 +0,0 @@
1
- export * from './Box';
@@ -1,49 +0,0 @@
1
- import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs';
2
- import { Column } from './Column';
3
- import { Text } from '../Text';
4
- import { useStyles } from '@marigold/system';
5
-
6
- <Meta
7
- title="Components/Column"
8
- argTypes={{
9
- width: {
10
- control: {
11
- type: 'range',
12
- min: 0,
13
- max: 12,
14
- step: 1,
15
- },
16
- description: 'Absolute width in 12 grid',
17
- table: {
18
- defaultValue: {
19
- summary: 12,
20
- },
21
- },
22
- },
23
- }}
24
- />
25
-
26
- # Column
27
-
28
- export const Template = args => (
29
- <Column
30
- className={useStyles({
31
- css: {
32
- textAlign: 'center',
33
- border: '1px solid red',
34
- padding: 2,
35
- margin: 2,
36
- },
37
- })}
38
- width={12}
39
- {...args}
40
- >
41
- <Text>full width</Text>
42
- </Column>
43
- );
44
-
45
- <Canvas>
46
- <Story name="Default">{Template.bind({})}</Story>
47
- </Canvas>
48
-
49
- <ArgsTable story="Default" />
@@ -1,65 +0,0 @@
1
- import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs';
2
- import { Column, Columns, Text } from '@marigold/components';
3
-
4
- <Meta
5
- title="Components/Columns"
6
- argTypes={{
7
- space: {
8
- control: {
9
- type: 'range',
10
- min: 0,
11
- max: 96,
12
- step: 2,
13
- },
14
- description: 'Absolute space value',
15
- table: {
16
- defaultValue: {
17
- summary: 0,
18
- },
19
- },
20
- },
21
- horizontalAlign: {
22
- control: {
23
- type: 'select',
24
- },
25
- options: ['left', 'right', 'center'],
26
- description: 'where to place',
27
- table: {
28
- defaultValue: {
29
- summary: 'left',
30
- },
31
- },
32
- },
33
- verticalAlign: {
34
- control: {
35
- type: 'select',
36
- },
37
- options: ['top', 'bottom', 'center'],
38
- description: 'where to place',
39
- table: {
40
- defaultValue: {
41
- summary: 'top',
42
- },
43
- },
44
- },
45
- }}
46
- />
47
-
48
- # Columns
49
-
50
- export const Template = args => (
51
- <Columns {...args}>
52
- <Column width={6}>
53
- <Text>First column</Text>
54
- </Column>
55
- <Column width={6}>
56
- <Text>Second column</Text>
57
- </Column>
58
- </Columns>
59
- );
60
-
61
- <Canvas>
62
- <Story name="Default">{Template.bind({})}</Story>
63
- </Canvas>
64
-
65
- <ArgsTable story="Default" />
@@ -1,19 +0,0 @@
1
- import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs';
2
- import { Container } from './Container';
3
- import { Text } from '../Text';
4
-
5
- <Meta title="Components/Container" />
6
-
7
- # Container
8
-
9
- export const Template = args => (
10
- <Container {...args}>
11
- <Text>Container with width=100%</Text>
12
- </Container>
13
- );
14
-
15
- <Canvas>
16
- <Story name="Default">{Template.bind({})}</Story>
17
- </Canvas>
18
-
19
- <ArgsTable story="Default" />
@@ -1,39 +0,0 @@
1
- import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs';
2
- import { Heading } from './Heading';
3
- import { Text } from '../Text';
4
-
5
- <Meta
6
- title="Components/Heading"
7
- argTypes={{
8
- variant: {
9
- control: {
10
- type: 'select',
11
- },
12
- options: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
13
- description: 'HTML element style',
14
- table: {
15
- defaultValue: {
16
- summary: 'h2',
17
- },
18
- },
19
- },
20
- }}
21
- />
22
-
23
- # Heading
24
-
25
- export const Template = args => (
26
- <div>
27
- <Heading {...args}>Heading</Heading>
28
- <Text>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse
29
- dignissim dapibus elit, vel egestas felis pharetra non. Cras
30
- malesuada, massa nec ultricies efficitur, lectus ante consequat magna,
31
- a porttitor massa ex ut quam.</Text>
32
- </div>
33
- );
34
-
35
- <Canvas>
36
- <Story name="Default">{Template.bind({})}</Story>
37
- </Canvas>
38
-
39
- <ArgsTable story="Default" />
@@ -1,77 +0,0 @@
1
- import React from 'react';
2
- import { render, screen } from '@testing-library/react';
3
- import { ThemeProvider } from '@marigold/system';
4
- import { Heading } from './Heading';
5
-
6
- const theme = {
7
- text: {
8
- h2: {
9
- fontFamily: 'Inter',
10
- },
11
- h3: {
12
- fontFamily: 'Roboto',
13
- },
14
- },
15
- };
16
-
17
- test('supports default variant and themeSection', () => {
18
- render(
19
- <ThemeProvider theme={theme}>
20
- <Heading title="default">Default</Heading>
21
- </ThemeProvider>
22
- );
23
- const heading = screen.getByTitle(/default/);
24
-
25
- expect(heading).toHaveStyle(`font-family: Inter`);
26
- });
27
-
28
- test('accepts other variant than default', () => {
29
- render(
30
- <ThemeProvider theme={theme}>
31
- <Heading title="default" variant="h3">
32
- Default
33
- </Heading>
34
- </ThemeProvider>
35
- );
36
- const heading = screen.getByTitle(/default/);
37
-
38
- expect(heading).toHaveStyle(`font-family: Roboto`);
39
- });
40
-
41
- test('supports default as prop', () => {
42
- render(<Heading title="default">Default</Heading>);
43
- const heading = screen.getByTitle(/default/);
44
-
45
- expect(heading.tagName).toEqual('H2');
46
- });
47
-
48
- test('accepts other as prop than default', () => {
49
- render(
50
- <Heading as="h3" title="default" variant="h3">
51
- Default
52
- </Heading>
53
- );
54
- const heading = screen.getByTitle(/default/);
55
-
56
- expect(heading.tagName).toEqual('H3');
57
- });
58
-
59
- test('renders correct HTML element', () => {
60
- render(<Heading title="default">Default</Heading>);
61
- const heading = screen.getByTitle(/default/);
62
-
63
- expect(heading instanceof HTMLHeadingElement).toBeTruthy();
64
- });
65
-
66
- test('accepts custom styles prop className', () => {
67
- render(
68
- <ThemeProvider theme={theme}>
69
- <Heading className="custom-class-name" title="heading">
70
- Default
71
- </Heading>
72
- </ThemeProvider>
73
- );
74
- const heading = screen.getByTitle(/heading/);
75
-
76
- expect(heading.className).toMatch('custom-class-name');
77
- });
@@ -1,19 +0,0 @@
1
- import React from 'react';
2
- import { ComponentProps } from '@marigold/types';
3
- import { Box } from '../Box';
4
-
5
- export type HeadingProps = {
6
- as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
7
- variant?: string;
8
- } & ComponentProps<'h1'>;
9
-
10
- export const Heading: React.FC<HeadingProps> = ({
11
- as = 'h2',
12
- variant = 'h2',
13
- children,
14
- ...props
15
- }) => (
16
- <Box {...props} as={as} variant={`text.${variant}`}>
17
- {children}
18
- </Box>
19
- );
@@ -1 +0,0 @@
1
- export * from './Heading';
@@ -1,39 +0,0 @@
1
- import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs';
2
- import { Hidden } from './Hidden';
3
- import { Text } from '../Text';
4
-
5
- <Meta
6
- title="Components/Hidden"
7
- argTypes={{
8
- show: {
9
- control: {
10
- type: 'boolean',
11
- },
12
- options: [true, false],
13
- description: 'Show or hide',
14
- table: {
15
- defaultValue: {
16
- summary: false,
17
- },
18
- },
19
- },
20
- }}
21
- />
22
-
23
- # Hidden
24
-
25
- export const Template = args => (
26
- <div>
27
- <Text>Change the "show" switch to "true"</Text>
28
- <Hidden {...args}>
29
- <br />
30
- <Text>Hello here I am!</Text>
31
- </Hidden>
32
- </div>
33
- );
34
-
35
- <Canvas>
36
- <Story name="Default">{Template.bind({})}</Story>
37
- </Canvas>
38
-
39
- <ArgsTable story="Default" />
@@ -1,24 +0,0 @@
1
- import React from 'react';
2
- import { render, screen } from '@testing-library/react';
3
- import { Hidden } from './Hidden';
4
-
5
- test('text is not visible, show prop = false', () => {
6
- render(<Hidden>Default</Hidden>);
7
- const hidden = screen.getByText('Default');
8
-
9
- expect(hidden).not.toBeVisible();
10
- });
11
-
12
- test('support show prop = true', () => {
13
- render(<Hidden show={true}>Default</Hidden>);
14
- const hidden = screen.getByText('Default');
15
-
16
- expect(hidden).toBeVisible();
17
- });
18
-
19
- test('renders correct HTML element', () => {
20
- render(<Hidden>Default</Hidden>);
21
- const hidden = screen.getByText('Default');
22
-
23
- expect(hidden instanceof HTMLSpanElement).toBeTruthy();
24
- });
@@ -1,16 +0,0 @@
1
- import React from 'react';
2
- import { Box } from '../Box';
3
-
4
- export type HiddenProps = {
5
- show?: boolean;
6
- };
7
-
8
- export const Hidden: React.FC<HiddenProps> = ({
9
- show = false,
10
- children,
11
- ...props
12
- }) => (
13
- <Box {...props} as="span" display={show ? 'display' : 'none'}>
14
- {children}
15
- </Box>
16
- );
@@ -1 +0,0 @@
1
- export * from './Hidden';
@@ -1,36 +0,0 @@
1
- import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs';
2
- import { Image } from './Image';
3
- import image1 from '../../../images/src/type_logo.png';
4
-
5
- <Meta
6
- title="Components/Image"
7
- argTypes={{
8
- variant: {
9
- control: {
10
- type: 'text',
11
- },
12
- description: 'there is only one variant',
13
- table: {
14
- defaultValue: {
15
- summary: 'fullWidth',
16
- },
17
- },
18
- },
19
- alt: {
20
- control: {
21
- type: 'text',
22
- },
23
- description: 'Description text for screenreaders'
24
- },
25
- }}
26
- />
27
-
28
- # Image
29
-
30
- export const Template = args => <Image src={image1} alt="marigold_logo" />;
31
-
32
- <Canvas>
33
- <Story name="Default">{Template.bind({})}</Story>
34
- </Canvas>
35
-
36
- <ArgsTable story="Default" />
@@ -1,45 +0,0 @@
1
- import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs';
2
- import { Link } from './Link';
3
- import { Text } from '../Text';
4
-
5
- <Meta
6
- title="Components/Link"
7
- argTypes={{
8
- variant: {
9
- control: {
10
- type: 'text',
11
- },
12
- description: '?',
13
- table: {
14
- defaultValue: {
15
- summary: 'link',
16
- },
17
- },
18
- },
19
- href: {
20
- control: {
21
- type: 'text',
22
- },
23
- description: 'The URL to direct to',
24
- type: {
25
- required: true,
26
- },
27
- },
28
- }}
29
- />
30
-
31
- # Link
32
-
33
- export const Template = args => (
34
- <Text>
35
- <Link href="https://marigold-ui.io" target="_blank">
36
- Cool site
37
- </Link>
38
- </Text>
39
- );
40
-
41
- <Canvas>
42
- <Story name="Default">{Template.bind({})}</Story>
43
- </Canvas>
44
-
45
- <ArgsTable story="Default" />
@@ -1,37 +0,0 @@
1
- import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs';
2
- import { Menu } from '../Menu';
3
- import { MenuItem } from './MenuItem';
4
-
5
- <Meta
6
- title="Components/MenuItem"
7
- parameters={{
8
- actions: {
9
- handles: ['click'],
10
- },
11
- }}
12
- argTypes={{
13
- variant: {
14
- control: {
15
- type: 'text',
16
- },
17
- description: '?',
18
- table: {
19
- defaultValue: {
20
- summary: 'default',
21
- },
22
- },
23
- },
24
- }}
25
- />
26
-
27
- # Menu Item
28
-
29
- export const Template = args => {
30
- return <MenuItem href="#">Home</MenuItem>;
31
- };
32
-
33
- <Canvas>
34
- <Story name="Menu Item">{Template.bind({})}</Story>
35
- </Canvas>
36
-
37
- <ArgsTable story="Menu Item" />
@@ -1,44 +0,0 @@
1
- import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs';
2
- import { Message } from './Message';
3
- import { Text } from '../Text';
4
-
5
- <Meta
6
- title="Components/Message"
7
- argTypes={{
8
- variant: {
9
- control: {
10
- type: 'select',
11
- },
12
- options: ['warning', 'error', 'info'],
13
- description: 'Messaging in different colors and icons',
14
- table: {
15
- defaultValue: {
16
- summary: 'info',
17
- },
18
- },
19
- },
20
- messageTitle: {
21
- control: {
22
- type: 'text',
23
- },
24
- description: 'Content',
25
- type: {
26
- required: true,
27
- },
28
- },
29
- }}
30
- />
31
-
32
- # Message
33
-
34
- export const Template = args => (
35
- <Message messageTitle="Danger Zone!" {...args}>
36
- <Text>Hello, I am a simple message.</Text>
37
- </Message>
38
- );
39
-
40
- <Canvas>
41
- <Story name="Default">{Template.bind({})}</Story>
42
- </Canvas>
43
-
44
- <ArgsTable story="Default" />