imbric-theme 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (245) hide show
  1. package/.babelrc.json +3 -0
  2. package/.commitlintrc.json +3 -0
  3. package/.editorconfig +13 -0
  4. package/.eslintcache +1 -0
  5. package/.eslintrc.json +36 -0
  6. package/.huskyrc.json +6 -0
  7. package/.lintstagedrc.json +5 -0
  8. package/.nvmrc +1 -0
  9. package/.prettierrc.json +4 -0
  10. package/.releaserc.json +13 -0
  11. package/.storybook/main.js +9 -0
  12. package/.storybook/preview-head.html +2 -0
  13. package/.storybook/preview.js +32 -0
  14. package/.stylelintrc.json +14 -0
  15. package/.vscode/launch.json +15 -0
  16. package/CHANGELOG.md +0 -0
  17. package/README.md +69 -0
  18. package/atoms/Avatar/Avatar.js +36 -0
  19. package/atoms/Avatar/Avatar.module.css +3 -0
  20. package/atoms/Avatar/Avatar.stories.js +29 -0
  21. package/atoms/Avatar/__snapshots__/Avatar.stories.js.snap +105 -0
  22. package/atoms/Avatar/constants.js +3 -0
  23. package/atoms/Avatar/helpers.js +7 -0
  24. package/atoms/Avatar/index.js +3 -0
  25. package/atoms/Button/Button.js +68 -0
  26. package/atoms/Button/Button.module.css +63 -0
  27. package/atoms/Button/Button.stories.js +47 -0
  28. package/atoms/Button/Button.test.js +60 -0
  29. package/atoms/Button/__snapshots__/Button.stories.js.snap +191 -0
  30. package/atoms/Button/constants.js +3 -0
  31. package/atoms/Button/index.js +3 -0
  32. package/atoms/Card/Card.js +48 -0
  33. package/atoms/Card/Card.module.css +52 -0
  34. package/atoms/Card/Card.stories.js +41 -0
  35. package/atoms/Card/__snapshots__/Card.stories.js.snap +136 -0
  36. package/atoms/Card/constants.js +4 -0
  37. package/atoms/Card/index.js +3 -0
  38. package/atoms/Check/Check.js +26 -0
  39. package/atoms/Check/Check.module.css +11 -0
  40. package/atoms/Check/Check.stories.js +15 -0
  41. package/atoms/Check/__snapshots__/Check.stories.js.snap +67 -0
  42. package/atoms/Check/index.js +2 -0
  43. package/atoms/Divider/Divider.js +19 -0
  44. package/atoms/Divider/Divider.module.css +5 -0
  45. package/atoms/Divider/Divider.stories.js +12 -0
  46. package/atoms/Divider/__snapshots__/Divider.stories.js.snap +22 -0
  47. package/atoms/Divider/index.js +2 -0
  48. package/atoms/Heading/Heading.js +37 -0
  49. package/atoms/Heading/Heading.module.css +66 -0
  50. package/atoms/Heading/Heading.stories.js +46 -0
  51. package/atoms/Heading/__snapshots__/Heading.stories.js.snap +189 -0
  52. package/atoms/Heading/constants.js +5 -0
  53. package/atoms/Heading/index.js +3 -0
  54. package/atoms/Icon/Icon.js +66 -0
  55. package/atoms/Icon/Icon.module.css +112 -0
  56. package/atoms/Icon/Icon.stories.js +48 -0
  57. package/atoms/Icon/__snapshots__/Icon.stories.js.snap +1311 -0
  58. package/atoms/Icon/constants.js +486 -0
  59. package/atoms/Icon/helpers.js +9 -0
  60. package/atoms/Icon/index.js +3 -0
  61. package/atoms/Input/Input.js +49 -0
  62. package/atoms/Input/Input.module.css +27 -0
  63. package/atoms/Input/Input.stories.js +32 -0
  64. package/atoms/Input/__snapshots__/Input.stories.js.snap +101 -0
  65. package/atoms/Input/constants.js +3 -0
  66. package/atoms/Input/index.js +3 -0
  67. package/atoms/Link/Link.js +33 -0
  68. package/atoms/Link/Link.module.css +14 -0
  69. package/atoms/Link/Link.stories.js +30 -0
  70. package/atoms/Link/__snapshots__/Link.stories.js.snap +118 -0
  71. package/atoms/Link/constants.js +5 -0
  72. package/atoms/Link/index.js +3 -0
  73. package/atoms/Loading/Loading.js +30 -0
  74. package/atoms/Loading/Loading.module.css +51 -0
  75. package/atoms/Loading/Loading.stories.js +17 -0
  76. package/atoms/Loading/__snapshots__/Loading.stories.js.snap +26 -0
  77. package/atoms/Loading/index.js +2 -0
  78. package/atoms/Modal/Modal.js +98 -0
  79. package/atoms/Modal/Modal.module.css +85 -0
  80. package/atoms/Modal/Modal.stories.js +43 -0
  81. package/atoms/Modal/__snapshots__/Modal.stories.js.snap +239 -0
  82. package/atoms/Modal/constants.js +1 -0
  83. package/atoms/Modal/index.js +3 -0
  84. package/atoms/Paragraph/Paragraph.js +56 -0
  85. package/atoms/Paragraph/Paragraph.module.css +68 -0
  86. package/atoms/Paragraph/Paragraph.stories.js +52 -0
  87. package/atoms/Paragraph/__snapshots__/Paragraph.stories.js.snap +230 -0
  88. package/atoms/Paragraph/constants.js +5 -0
  89. package/atoms/Paragraph/index.js +3 -0
  90. package/atoms/Picture/Picture.js +40 -0
  91. package/atoms/Picture/Picture.module.css +16 -0
  92. package/atoms/Picture/Picture.stories.js +32 -0
  93. package/atoms/Picture/__snapshots__/Picture.stories.js.snap +156 -0
  94. package/atoms/Picture/index.js +2 -0
  95. package/atoms/Textarea/Textarea.js +46 -0
  96. package/atoms/Textarea/Textarea.module.css +25 -0
  97. package/atoms/Textarea/Textarea.stories.js +16 -0
  98. package/atoms/Textarea/__snapshots__/Textarea.stories.js.snap +25 -0
  99. package/atoms/Textarea/index.js +2 -0
  100. package/codecov.yml +2 -0
  101. package/helpers/storybook.js +29 -0
  102. package/helpers/storybook.test.js +40 -0
  103. package/helpers/styles.js +37 -0
  104. package/helpers/styles.test.js +222 -0
  105. package/hocs/withStyles.js +17 -0
  106. package/hook/useMedia.js +22 -0
  107. package/index.js +31 -0
  108. package/jest.config.js +23 -0
  109. package/jest.setup.js +13 -0
  110. package/layout/CenteredContent/CenteredContent.js +30 -0
  111. package/layout/CenteredContent/CenteredContent.module.css +12 -0
  112. package/layout/CenteredContent/CenteredContent.stories.js +22 -0
  113. package/layout/CenteredContent/__snapshots__/CenteredContent.stories.js.snap +27 -0
  114. package/layout/CenteredContent/index.js +2 -0
  115. package/layout/Container/Container.js +29 -0
  116. package/layout/Container/Container.module.css +14 -0
  117. package/layout/Container/Container.stories.js +22 -0
  118. package/layout/Container/__snapshots__/Container.stories.js.snap +27 -0
  119. package/layout/Container/index.js +2 -0
  120. package/layout/FullHeightContent/FullHeightContent.js +40 -0
  121. package/layout/FullHeightContent/FullHeightContent.module.css +21 -0
  122. package/layout/FullHeightContent/FullHeightContent.stories.js +22 -0
  123. package/layout/FullHeightContent/__snapshots__/FullHeightContent.stories.js.snap +41 -0
  124. package/layout/FullHeightContent/index.js +2 -0
  125. package/layout/Spacer/Spacer.js +40 -0
  126. package/layout/Spacer/Spacer.module.css +12 -0
  127. package/layout/Spacer/Spacer.stories.js +25 -0
  128. package/layout/Spacer/__snapshots__/Spacer.stories.js.snap +97 -0
  129. package/layout/Spacer/components/Horizontal/Horizontal.js +43 -0
  130. package/layout/Spacer/components/Horizontal/Horizontal.stories.js +32 -0
  131. package/layout/Spacer/components/Horizontal/__snapshots__/Horizontal.stories.js.snap +97 -0
  132. package/layout/Spacer/components/Horizontal/index.js +1 -0
  133. package/layout/Spacer/components/Vertical/Vertical.js +31 -0
  134. package/layout/Spacer/components/Vertical/Vertical.stories.js +25 -0
  135. package/layout/Spacer/components/Vertical/__snapshots__/Vertical.stories.js.snap +85 -0
  136. package/layout/Spacer/components/Vertical/index.js +1 -0
  137. package/layout/Spacer/components/index.js +2 -0
  138. package/layout/Spacer/constants.js +5 -0
  139. package/layout/Spacer/helpers.js +3 -0
  140. package/layout/Spacer/index.js +3 -0
  141. package/molecules/Accordion/Accordion.js +70 -0
  142. package/molecules/Accordion/Accordion.module.css +12 -0
  143. package/molecules/Accordion/Accordion.stories.js +31 -0
  144. package/molecules/Accordion/__snapshots__/Accordion.stories.js.snap +228 -0
  145. package/molecules/Accordion/index.js +2 -0
  146. package/molecules/AddButton/AddButton.js +137 -0
  147. package/molecules/AddButton/AddButton.module.css +128 -0
  148. package/molecules/AddButton/AddButton.stories.js +47 -0
  149. package/molecules/AddButton/__snapshots__/AddButton.stories.js.snap +326 -0
  150. package/molecules/AddButton/constants.js +6 -0
  151. package/molecules/AddButton/handlers.js +58 -0
  152. package/molecules/AddButton/handlers.test.js +19 -0
  153. package/molecules/AddButton/helpers.js +6 -0
  154. package/molecules/AddButton/helpers.test.js +41 -0
  155. package/molecules/AddButton/hooks.js +14 -0
  156. package/molecules/AddButton/index.js +3 -0
  157. package/molecules/ButtonIcon/ButtonIcon.js +41 -0
  158. package/molecules/ButtonIcon/ButtonIcon.stories.js +27 -0
  159. package/molecules/ButtonIcon/__snapshots__/ButtonIcon.stories.js.snap +178 -0
  160. package/molecules/ButtonIcon/constants.js +6 -0
  161. package/molecules/ButtonIcon/index.js +2 -0
  162. package/molecules/Dropdown/Dropdown.js +59 -0
  163. package/molecules/Dropdown/Dropdown.module.css +34 -0
  164. package/molecules/Dropdown/Dropdown.stories.js +41 -0
  165. package/molecules/Dropdown/__snapshots__/Dropdown.stories.js.snap +181 -0
  166. package/molecules/Dropdown/index.js +2 -0
  167. package/molecules/Error/Error.js +35 -0
  168. package/molecules/Error/Error.module.css +11 -0
  169. package/molecules/Error/Error.stories.js +18 -0
  170. package/molecules/Error/__snapshots__/Error.stories.js.snap +134 -0
  171. package/molecules/Error/index.js +2 -0
  172. package/molecules/IconLabel/IconLabel.js +83 -0
  173. package/molecules/IconLabel/IconLabel.module.css +16 -0
  174. package/molecules/IconLabel/IconLabel.stories.js +25 -0
  175. package/molecules/IconLabel/__snapshots__/IconLabel.stories.js.snap +211 -0
  176. package/molecules/IconLabel/constants.js +6 -0
  177. package/molecules/IconLabel/index.js +3 -0
  178. package/molecules/LoadingError/LoadingError.js +31 -0
  179. package/molecules/LoadingError/LoadingError.stories.js +24 -0
  180. package/molecules/LoadingError/__snapshots__/LoadingError.stories.js.snap +109 -0
  181. package/molecules/LoadingError/index.js +1 -0
  182. package/molecules/Score/Score.js +61 -0
  183. package/molecules/Score/Score.module.css +11 -0
  184. package/molecules/Score/Score.stories.js +13 -0
  185. package/molecules/Score/__snapshots__/Score.stories.js.snap +100 -0
  186. package/molecules/Score/faces/happy.svg +7 -0
  187. package/molecules/Score/faces/normal.svg +6 -0
  188. package/molecules/Score/faces/sad.svg +6 -0
  189. package/molecules/Score/index.js +2 -0
  190. package/molecules/Task/Task.js +114 -0
  191. package/molecules/Task/Task.module.css +47 -0
  192. package/molecules/Task/Task.stories.js +47 -0
  193. package/molecules/Task/__snapshots__/Task.stories.js.snap +953 -0
  194. package/molecules/Task/constants.js +1 -0
  195. package/molecules/Task/index.js +3 -0
  196. package/molecules/TaskCounter/TaskCounter.js +74 -0
  197. package/molecules/TaskCounter/TaskCounter.module.css +11 -0
  198. package/molecules/TaskCounter/TaskCounter.stories.js +26 -0
  199. package/molecules/TaskCounter/__snapshots__/TaskCounter.stories.js.snap +177 -0
  200. package/molecules/TaskCounter/index.js +2 -0
  201. package/package.json +102 -0
  202. package/scripts/build-tokens.js +40 -0
  203. package/scripts/create-component.js +127 -0
  204. package/storybook.test.js +13 -0
  205. package/styles/globals.css +10 -0
  206. package/styles/tokens.css +390 -0
  207. package/templates/component/Component.js +22 -0
  208. package/templates/component/Component.module.css +3 -0
  209. package/templates/component/Component.stories.js +23 -0
  210. package/templates/component/constants.js +1 -0
  211. package/templates/component/index.js +3 -0
  212. package/tokens/Token/Helper.js +30 -0
  213. package/tokens/Token/Token.js +13 -0
  214. package/tokens/Token/Token.module.css +64 -0
  215. package/tokens/Token/components/Color.js +21 -0
  216. package/tokens/Token/components/Color.stories.js +126 -0
  217. package/tokens/Token/components/FontFamily.js +24 -0
  218. package/tokens/Token/components/FontFamily.stories.js +32 -0
  219. package/tokens/Token/components/FontSize.js +24 -0
  220. package/tokens/Token/components/FontSize.stories.js +31 -0
  221. package/tokens/Token/components/FontWeight.js +24 -0
  222. package/tokens/Token/components/FontWeight.stories.js +31 -0
  223. package/tokens/Token/components/Spacing.js +24 -0
  224. package/tokens/Token/components/Spacing.stories.js +29 -0
  225. package/tokens/Token/components/__snapshots__/Color.stories.js.snap +7169 -0
  226. package/tokens/Token/components/__snapshots__/FontFamily.stories.js.snap +133 -0
  227. package/tokens/Token/components/__snapshots__/FontSize.stories.js.snap +261 -0
  228. package/tokens/Token/components/__snapshots__/FontWeight.stories.js.snap +317 -0
  229. package/tokens/Token/components/__snapshots__/Spacing.stories.js.snap +229 -0
  230. package/tokens/Token/components/index.js +5 -0
  231. package/tokens/Token/helpers.js +17 -0
  232. package/tokens/Token/index.js +1 -0
  233. package/tokens/index.js +471 -0
  234. package/utils/isEmpty.js +28 -0
  235. package/utils/isEmpty.test.js +125 -0
  236. package/utils/isObject.js +4 -0
  237. package/utils/keyboardCodes.js +6 -0
  238. package/utils/testUtils/matchMediaMock.js +14 -0
  239. package/utils/testUtils/svgrMock.js +2 -0
  240. package/utils/toCapitalize.js +4 -0
  241. package/utils/toKebabCase.js +8 -0
  242. package/utils/toPascalCase.js +20 -0
  243. package/webpack/cssModules.js +30 -0
  244. package/webpack/loadConfigs.js +6 -0
  245. package/webpack/reactInlineSvg.js +22 -0
@@ -0,0 +1,239 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Storyshots Atoms/Modal Closable 1`] = `
4
+ <div
5
+ style={
6
+ Object {
7
+ "alignContent": "flex-start",
8
+ "display": "flex",
9
+ "flexDirection": "row",
10
+ "flexWrap": "wrap",
11
+ "gap": "10px 30px",
12
+ "height": "100%",
13
+ "justifyContent": "flex-start",
14
+ "maxHeight": "auto",
15
+ }
16
+ }
17
+ >
18
+ <div
19
+ className="backdrop is-playground"
20
+ onClick={[Function]}
21
+ >
22
+ <div
23
+ className="modal type-primary"
24
+ onClick={[Function]}
25
+ >
26
+ <div
27
+ className="heading"
28
+ >
29
+ <div
30
+ className="icon color-inverted size-md background-muted is-clickable"
31
+ onClick={[Function]}
32
+ style={
33
+ Object {
34
+ "height": 35,
35
+ "width": 35,
36
+ }
37
+ }
38
+ >
39
+ <svg
40
+ height={35}
41
+ viewBox="-3 0 20 20"
42
+ width={35}
43
+ xmlns="http://www.w3.org/2000/svg"
44
+ >
45
+ <path
46
+ clipRule="evenodd"
47
+ d="M9.707 19.414L0 9.707L9.707 0L11.121 1.414L2.828 9.707L11.121 18L9.707 19.414Z"
48
+ fillRule="evenodd"
49
+ />
50
+ </svg>
51
+ </div>
52
+ </div>
53
+ <div
54
+ className="container"
55
+ >
56
+ Successful boar world's somebody herbs helpful spiders Samwise Gamgee helps unlost circles guard? Investment Thofin folly? Troublemaker minutes moldy Rivendell eve late traveling around crescent fault never naught
57
+ </div>
58
+ </div>
59
+ </div>
60
+ </div>
61
+ `;
62
+
63
+ exports[`Storyshots Atoms/Modal Default 1`] = `
64
+ <div
65
+ style={
66
+ Object {
67
+ "alignContent": "flex-start",
68
+ "display": "flex",
69
+ "flexDirection": "row",
70
+ "flexWrap": "wrap",
71
+ "gap": "10px 30px",
72
+ "height": "100%",
73
+ "justifyContent": "flex-start",
74
+ "maxHeight": "auto",
75
+ }
76
+ }
77
+ >
78
+ <div
79
+ className="backdrop is-playground"
80
+ onClick={[Function]}
81
+ >
82
+ <div
83
+ className="modal type-primary"
84
+ onClick={[Function]}
85
+ >
86
+ <div
87
+ className="heading"
88
+ />
89
+ <div
90
+ className="container"
91
+ >
92
+ Successful boar world's somebody herbs helpful spiders Samwise Gamgee helps unlost circles guard? Investment Thofin folly? Troublemaker minutes moldy Rivendell eve late traveling around crescent fault never naught
93
+ </div>
94
+ </div>
95
+ </div>
96
+ </div>
97
+ `;
98
+
99
+ exports[`Storyshots Atoms/Modal Secondary Action 1`] = `
100
+ <div
101
+ style={
102
+ Object {
103
+ "alignContent": "flex-start",
104
+ "display": "flex",
105
+ "flexDirection": "row",
106
+ "flexWrap": "wrap",
107
+ "gap": "10px 30px",
108
+ "height": "100%",
109
+ "justifyContent": "flex-start",
110
+ "maxHeight": "auto",
111
+ }
112
+ }
113
+ >
114
+ <div
115
+ className="backdrop is-playground"
116
+ onClick={[Function]}
117
+ >
118
+ <div
119
+ className="modal type-primary"
120
+ onClick={[Function]}
121
+ >
122
+ <div
123
+ className="heading"
124
+ >
125
+ <div
126
+ className="icon color-inverted size-md background-muted is-clickable"
127
+ onClick={[Function]}
128
+ style={
129
+ Object {
130
+ "height": 35,
131
+ "width": 35,
132
+ }
133
+ }
134
+ >
135
+ <svg
136
+ height={35}
137
+ viewBox="-3 0 20 20"
138
+ width={35}
139
+ xmlns="http://www.w3.org/2000/svg"
140
+ >
141
+ <path
142
+ clipRule="evenodd"
143
+ d="M9.707 19.414L0 9.707L9.707 0L11.121 1.414L2.828 9.707L11.121 18L9.707 19.414Z"
144
+ fillRule="evenodd"
145
+ />
146
+ </svg>
147
+ </div>
148
+ <div
149
+ className="icon color-inverted size-md background-muted is-clickable"
150
+ onClick={[Function]}
151
+ style={
152
+ Object {
153
+ "height": 35,
154
+ "width": 35,
155
+ }
156
+ }
157
+ >
158
+ <svg
159
+ height={35}
160
+ viewBox="5 1 20 20"
161
+ width={35}
162
+ xmlns="http://www.w3.org/2000/svg"
163
+ >
164
+ <path
165
+ clipRule="evenodd"
166
+ d="M14.93 20.86C9.45472 20.86 5 16.4053 5 10.93C5 5.45472 9.45472 1 14.93 1C20.4053 1 24.86 5.45472 24.86 10.93C24.86 16.4053 20.4053 20.86 14.93 20.86ZM14.93 2.09095C10.0559 2.09095 6.09095 6.05591 6.09095 10.93C6.09095 15.8041 10.0559 19.769 14.93 19.769C19.8041 19.769 23.769 15.8041 23.769 10.93C23.769 6.05591 19.8041 2.09095 14.93 2.09095Z"
167
+ fillRule="evenodd"
168
+ />
169
+ <path
170
+ clipRule="evenodd"
171
+ d="M13.744 15.221L8.67871 10.1423L9.45059 9.37155L13.7458 13.6773L20.41 7.01251L21.1807 7.78439L13.744 15.221Z"
172
+ fillRule="evenodd"
173
+ />
174
+ </svg>
175
+ </div>
176
+ </div>
177
+ <div
178
+ className="container"
179
+ >
180
+ Successful boar world's somebody herbs helpful spiders Samwise Gamgee helps unlost circles guard? Investment Thofin folly? Troublemaker minutes moldy Rivendell eve late traveling around crescent fault never naught
181
+ </div>
182
+ </div>
183
+ </div>
184
+ </div>
185
+ `;
186
+
187
+ exports[`Storyshots Atoms/Modal Types 1`] = `
188
+ <div
189
+ style={
190
+ Object {
191
+ "alignContent": "flex-start",
192
+ "display": "flex",
193
+ "flexDirection": "row",
194
+ "flexWrap": "wrap",
195
+ "gap": "10px 30px",
196
+ "height": "100%",
197
+ "justifyContent": "flex-start",
198
+ "maxHeight": "auto",
199
+ }
200
+ }
201
+ >
202
+ <div
203
+ className="backdrop is-playground"
204
+ onClick={[Function]}
205
+ >
206
+ <div
207
+ className="modal type-primary"
208
+ onClick={[Function]}
209
+ >
210
+ <div
211
+ className="heading"
212
+ />
213
+ <div
214
+ className="container"
215
+ >
216
+ Successful boar world's somebody herbs helpful spiders Samwise Gamgee helps unlost circles guard? Investment Thofin folly? Troublemaker minutes moldy Rivendell eve late traveling around crescent fault never naught
217
+ </div>
218
+ </div>
219
+ </div>
220
+ <div
221
+ className="backdrop is-playground"
222
+ onClick={[Function]}
223
+ >
224
+ <div
225
+ className="modal type-secondary"
226
+ onClick={[Function]}
227
+ >
228
+ <div
229
+ className="heading"
230
+ />
231
+ <div
232
+ className="container"
233
+ >
234
+ Successful boar world's somebody herbs helpful spiders Samwise Gamgee helps unlost circles guard? Investment Thofin folly? Troublemaker minutes moldy Rivendell eve late traveling around crescent fault never naught
235
+ </div>
236
+ </div>
237
+ </div>
238
+ </div>
239
+ `;
@@ -0,0 +1 @@
1
+ export const options = { types: ['primary', 'secondary'] }
@@ -0,0 +1,3 @@
1
+ export { default, Modal } from './Modal'
2
+ export { options } from './constants'
3
+ export { default as styles } from './Modal.module.css'
@@ -0,0 +1,56 @@
1
+ import React from 'react'
2
+ import PropTypes from 'prop-types'
3
+
4
+ import styles from './Paragraph.module.css'
5
+ import { options } from './constants'
6
+ import withStyles from '../../hocs/withStyles'
7
+
8
+ export const Paragraph = ({
9
+ getStyles,
10
+ children,
11
+ className,
12
+ isStriked,
13
+ isInline,
14
+ isMonospace,
15
+ isCentered,
16
+ }) => {
17
+ return (
18
+ <p
19
+ className={getStyles(
20
+ className,
21
+ 'paragraph',
22
+ ['color', 'size', 'weight'],
23
+ {
24
+ 'is-striked': isStriked,
25
+ 'is-inline': isInline,
26
+ 'is-monospace': isMonospace,
27
+ 'is-centered': isCentered,
28
+ }
29
+ )}
30
+ >
31
+ {children}
32
+ </p>
33
+ )
34
+ }
35
+
36
+ Paragraph.propTypes = {
37
+ children: PropTypes.node.isRequired,
38
+ getStyles: PropTypes.func.isRequired,
39
+ color: PropTypes.oneOf(options.colors),
40
+ size: PropTypes.oneOf(options.sizes),
41
+ weight: PropTypes.oneOf(options.weights),
42
+ className: PropTypes.string,
43
+ isStriked: PropTypes.bool,
44
+ isInline: PropTypes.bool,
45
+ isCentered: PropTypes.bool,
46
+ isMonospace: PropTypes.bool,
47
+ }
48
+
49
+ Paragraph.defaultProps = {
50
+ color: 'base',
51
+ size: 'md',
52
+ weight: 'normal',
53
+ getStyles: () => {},
54
+ }
55
+
56
+ export default withStyles(styles)(Paragraph)
@@ -0,0 +1,68 @@
1
+ .paragraph {
2
+ width: 100%;
3
+ }
4
+
5
+ .color-base {
6
+ color: var(--color-font-base);
7
+ }
8
+
9
+ .color-inverted {
10
+ color: var(--color-font-inverted);
11
+ }
12
+
13
+ .color-muted {
14
+ color: var(--color-font-muted);
15
+ }
16
+
17
+ .color-primary {
18
+ color: var(--color-primary);
19
+ }
20
+
21
+ .color-tertiary {
22
+ color: var(--color-tertiary);
23
+ }
24
+
25
+ .size-xs {
26
+ font-size: var(--paragraph-font-size-xs);
27
+ }
28
+
29
+ .size-sm {
30
+ font-size: var(--paragraph-font-size-sm);
31
+ }
32
+
33
+ .size-md {
34
+ font-size: var(--paragraph-font-size-md);
35
+ }
36
+
37
+ .size-lg {
38
+ font-size: var(--paragraph-font-size-lg);
39
+ }
40
+
41
+ .weight-normal {
42
+ font-weight: var(--font-weight-normal);
43
+ }
44
+
45
+ .weight-medium {
46
+ font-weight: var(--font-weight-medium);
47
+ }
48
+
49
+ .weight-semibold {
50
+ font-weight: var(--font-weight-semibold);
51
+ }
52
+
53
+ .is-striked {
54
+ text-decoration: line-through;
55
+ }
56
+
57
+ .is-inline {
58
+ display: inline-block;
59
+ max-width: max-content;
60
+ }
61
+
62
+ .is-monospace {
63
+ font-family: var(--font-family-mono);
64
+ }
65
+
66
+ .is-centered {
67
+ text-align: center;
68
+ }
@@ -0,0 +1,52 @@
1
+ import { Paragraph, options, styles } from '.'
2
+
3
+ import {
4
+ getTemplate,
5
+ getListTemplate,
6
+ getOptionsArgTypes,
7
+ } from '../../helpers/storybook'
8
+
9
+ const Template = getTemplate(Paragraph, styles)
10
+ const ListTemplate = getListTemplate(Paragraph, styles)
11
+
12
+ export default {
13
+ title: 'Atoms/Paragraph',
14
+ component: Paragraph,
15
+ args: {
16
+ children:
17
+ 'Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?',
18
+ },
19
+ argTypes: {
20
+ color: getOptionsArgTypes(options.colors),
21
+ size: getOptionsArgTypes(options.sizes),
22
+ weight: getOptionsArgTypes(options.weights),
23
+ children: { control: 'text' },
24
+ },
25
+ }
26
+
27
+ export const Default = Template.bind({})
28
+
29
+ export const Striked = Template.bind({})
30
+ Striked.args = { isStriked: true }
31
+
32
+ export const Inline = Template.bind({})
33
+ Inline.args = { isInline: true, children: 'Swords are no more.' }
34
+
35
+ export const Centered = Template.bind({})
36
+ Centered.args = {
37
+ isCentered: true,
38
+ children:
39
+ 'Lose consequence night studies Wolves should wizards destruction burglar? All right, then. Keep your secrets.',
40
+ }
41
+
42
+ export const Monospace = Template.bind({})
43
+ Monospace.args = { isMonospace: true }
44
+
45
+ export const Colors = ListTemplate.bind({})
46
+ Colors.args = { items: options.colors.map((color) => ({ color })) }
47
+
48
+ export const Sizes = ListTemplate.bind({})
49
+ Sizes.args = { items: options.sizes.map((size) => ({ size })) }
50
+
51
+ export const Weights = ListTemplate.bind({})
52
+ Weights.args = { items: options.weights.map((weight) => ({ weight })) }
@@ -0,0 +1,230 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Storyshots Atoms/Paragraph Centered 1`] = `
4
+ <div
5
+ style={
6
+ Object {
7
+ "alignContent": "flex-start",
8
+ "display": "flex",
9
+ "flexDirection": "column",
10
+ "flexWrap": "wrap",
11
+ "gap": "10px 30px",
12
+ "height": "100%",
13
+ "justifyContent": "flex-start",
14
+ "maxHeight": "auto",
15
+ }
16
+ }
17
+ >
18
+ <p
19
+ className="paragraph color-base size-md weight-normal is-centered"
20
+ >
21
+ Lose consequence night studies Wolves should wizards destruction burglar? All right, then. Keep your secrets.
22
+ </p>
23
+ </div>
24
+ `;
25
+
26
+ exports[`Storyshots Atoms/Paragraph Colors 1`] = `
27
+ <div
28
+ style={
29
+ Object {
30
+ "alignContent": "flex-start",
31
+ "display": "flex",
32
+ "flexDirection": "column",
33
+ "flexWrap": "wrap",
34
+ "gap": "10px 30px",
35
+ "height": "100%",
36
+ "justifyContent": "flex-start",
37
+ "maxHeight": "auto",
38
+ }
39
+ }
40
+ >
41
+ <p
42
+ className="paragraph color-base size-md weight-normal"
43
+ >
44
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
45
+ </p>
46
+ <p
47
+ className="paragraph color-muted size-md weight-normal"
48
+ >
49
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
50
+ </p>
51
+ <p
52
+ className="paragraph color-inverted size-md weight-normal"
53
+ >
54
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
55
+ </p>
56
+ <p
57
+ className="paragraph color-primary size-md weight-normal"
58
+ >
59
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
60
+ </p>
61
+ <p
62
+ className="paragraph color-tertiary size-md weight-normal"
63
+ >
64
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
65
+ </p>
66
+ </div>
67
+ `;
68
+
69
+ exports[`Storyshots Atoms/Paragraph Default 1`] = `
70
+ <div
71
+ style={
72
+ Object {
73
+ "alignContent": "flex-start",
74
+ "display": "flex",
75
+ "flexDirection": "column",
76
+ "flexWrap": "wrap",
77
+ "gap": "10px 30px",
78
+ "height": "100%",
79
+ "justifyContent": "flex-start",
80
+ "maxHeight": "auto",
81
+ }
82
+ }
83
+ >
84
+ <p
85
+ className="paragraph color-base size-md weight-normal"
86
+ >
87
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
88
+ </p>
89
+ </div>
90
+ `;
91
+
92
+ exports[`Storyshots Atoms/Paragraph Inline 1`] = `
93
+ <div
94
+ style={
95
+ Object {
96
+ "alignContent": "flex-start",
97
+ "display": "flex",
98
+ "flexDirection": "column",
99
+ "flexWrap": "wrap",
100
+ "gap": "10px 30px",
101
+ "height": "100%",
102
+ "justifyContent": "flex-start",
103
+ "maxHeight": "auto",
104
+ }
105
+ }
106
+ >
107
+ <p
108
+ className="paragraph color-base size-md weight-normal is-inline"
109
+ >
110
+ Swords are no more.
111
+ </p>
112
+ </div>
113
+ `;
114
+
115
+ exports[`Storyshots Atoms/Paragraph Monospace 1`] = `
116
+ <div
117
+ style={
118
+ Object {
119
+ "alignContent": "flex-start",
120
+ "display": "flex",
121
+ "flexDirection": "column",
122
+ "flexWrap": "wrap",
123
+ "gap": "10px 30px",
124
+ "height": "100%",
125
+ "justifyContent": "flex-start",
126
+ "maxHeight": "auto",
127
+ }
128
+ }
129
+ >
130
+ <p
131
+ className="paragraph color-base size-md weight-normal is-monospace"
132
+ >
133
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
134
+ </p>
135
+ </div>
136
+ `;
137
+
138
+ exports[`Storyshots Atoms/Paragraph Sizes 1`] = `
139
+ <div
140
+ style={
141
+ Object {
142
+ "alignContent": "flex-start",
143
+ "display": "flex",
144
+ "flexDirection": "column",
145
+ "flexWrap": "wrap",
146
+ "gap": "10px 30px",
147
+ "height": "100%",
148
+ "justifyContent": "flex-start",
149
+ "maxHeight": "auto",
150
+ }
151
+ }
152
+ >
153
+ <p
154
+ className="paragraph color-base size-xs weight-normal"
155
+ >
156
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
157
+ </p>
158
+ <p
159
+ className="paragraph color-base size-sm weight-normal"
160
+ >
161
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
162
+ </p>
163
+ <p
164
+ className="paragraph color-base size-md weight-normal"
165
+ >
166
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
167
+ </p>
168
+ <p
169
+ className="paragraph color-base size-lg weight-normal"
170
+ >
171
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
172
+ </p>
173
+ </div>
174
+ `;
175
+
176
+ exports[`Storyshots Atoms/Paragraph Striked 1`] = `
177
+ <div
178
+ style={
179
+ Object {
180
+ "alignContent": "flex-start",
181
+ "display": "flex",
182
+ "flexDirection": "column",
183
+ "flexWrap": "wrap",
184
+ "gap": "10px 30px",
185
+ "height": "100%",
186
+ "justifyContent": "flex-start",
187
+ "maxHeight": "auto",
188
+ }
189
+ }
190
+ >
191
+ <p
192
+ className="paragraph color-base size-md weight-normal is-striked"
193
+ >
194
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
195
+ </p>
196
+ </div>
197
+ `;
198
+
199
+ exports[`Storyshots Atoms/Paragraph Weights 1`] = `
200
+ <div
201
+ style={
202
+ Object {
203
+ "alignContent": "flex-start",
204
+ "display": "flex",
205
+ "flexDirection": "column",
206
+ "flexWrap": "wrap",
207
+ "gap": "10px 30px",
208
+ "height": "100%",
209
+ "justifyContent": "flex-start",
210
+ "maxHeight": "auto",
211
+ }
212
+ }
213
+ >
214
+ <p
215
+ className="paragraph color-base size-md weight-normal"
216
+ >
217
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
218
+ </p>
219
+ <p
220
+ className="paragraph color-base size-md weight-medium"
221
+ >
222
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
223
+ </p>
224
+ <p
225
+ className="paragraph color-base size-md weight-semibold"
226
+ >
227
+ Swords are no more use here. Esquire days mountain Fangorn champion brace waiting laboring preparing! Canopy plunder deceit cakehole strange Udùn piled fighters potent?
228
+ </p>
229
+ </div>
230
+ `;
@@ -0,0 +1,5 @@
1
+ export const options = {
2
+ colors: ['base', 'muted', 'inverted', 'primary', 'tertiary'],
3
+ sizes: ['xs', 'sm', 'md', 'lg'],
4
+ weights: ['normal', 'medium', 'semibold'],
5
+ }
@@ -0,0 +1,3 @@
1
+ export { default, Paragraph } from './Paragraph'
2
+ export { options } from './constants'
3
+ export { default as styles } from './Paragraph.module.css'
@@ -0,0 +1,40 @@
1
+ import React from 'react'
2
+ import PropTypes from 'prop-types'
3
+
4
+ import styles from './Picture.module.css'
5
+ import withStyles from '../../hocs/withStyles'
6
+
7
+ export const Picture = ({
8
+ getStyles,
9
+ src,
10
+ width,
11
+ height,
12
+ isRounded,
13
+ withBorder,
14
+ }) => (
15
+ <picture
16
+ className={getStyles('picture', {
17
+ 'is-rounded': isRounded,
18
+ 'with-border': withBorder,
19
+ })}
20
+ >
21
+ <img src={src} style={{ height, maxWidth: width }} />
22
+ </picture>
23
+ )
24
+
25
+ Picture.propTypes = {
26
+ src: PropTypes.string.isRequired,
27
+ getStyles: PropTypes.func.isRequired,
28
+ width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
29
+ height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
30
+ isRounded: PropTypes.bool,
31
+ withBorder: PropTypes.bool,
32
+ }
33
+
34
+ Picture.defaultProps = {
35
+ height: 'auto',
36
+ withBorder: false,
37
+ getStyles: () => {},
38
+ }
39
+
40
+ export default withStyles(styles)(Picture)