@edvisor/product-language 0.3.0 → 0.3.1

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 (278) hide show
  1. package/index.d.ts +2 -0
  2. package/index.js +7914 -0
  3. package/lib/components/alert-banner/alert-banner.d.ts +11 -0
  4. package/lib/components/alert-banner/alert-level-flags.d.ts +13 -0
  5. package/lib/components/alert-banner/index.d.ts +1 -0
  6. package/lib/components/badge/badge-type-flags.d.ts +18 -0
  7. package/lib/components/badge/badge.d.ts +5 -0
  8. package/lib/components/badge/index.d.ts +1 -0
  9. package/{src/lib/components/card/atoms/card-frame.tsx → lib/components/card/atoms/card-frame.d.ts} +7 -17
  10. package/lib/components/card/atoms/index.d.ts +1 -0
  11. package/lib/components/card/card.d.ts +14 -0
  12. package/lib/components/card/components/card-alert-banner-slot.d.ts +5 -0
  13. package/lib/components/card/components/card-controls-slot.d.ts +4 -0
  14. package/lib/components/card/components/card-section-slot.d.ts +11 -0
  15. package/lib/components/card/components/index.d.ts +3 -0
  16. package/lib/components/card/index.d.ts +2 -0
  17. package/lib/components/card/molecules/index.d.ts +1 -0
  18. package/lib/components/card/molecules/left-right-card.d.ts +16 -0
  19. package/lib/components/checkbox/checkbox.d.ts +10 -0
  20. package/lib/components/checkbox/helpers.d.ts +12 -0
  21. package/lib/components/checkbox/index.d.ts +1 -0
  22. package/lib/components/divider/divider-type-flags.d.ts +9 -0
  23. package/lib/components/divider/divider.d.ts +7 -0
  24. package/lib/components/divider/index.d.ts +1 -0
  25. package/lib/components/flag/flag-size-flags.d.ts +12 -0
  26. package/lib/components/flag/flag.d.ts +9 -0
  27. package/lib/components/flag/flag.list.d.ts +781 -0
  28. package/lib/components/flag/index.d.ts +1 -0
  29. package/lib/components/icon/icon-list.d.ts +131 -0
  30. package/lib/components/icon/icon.d.ts +131 -0
  31. package/lib/components/icon/index.d.ts +1 -0
  32. package/lib/components/index.d.ts +17 -0
  33. package/lib/components/input-field/components/index.d.ts +2 -0
  34. package/lib/components/input-field/components/labeled-input.d.ts +10 -0
  35. package/lib/components/input-field/components/stepper.d.ts +7 -0
  36. package/lib/components/input-field/index.d.ts +3 -0
  37. package/lib/components/input-field/input-field.d.ts +25 -0
  38. package/lib/components/input-field/input-number.d.ts +18 -0
  39. package/lib/components/input-field/input-text.d.ts +14 -0
  40. package/lib/components/layout/flex.d.ts +16 -0
  41. package/lib/components/layout/grid-layout.d.ts +11 -0
  42. package/lib/components/layout/index.d.ts +3 -0
  43. package/lib/components/layout/left-right-layout.d.ts +34 -0
  44. package/lib/components/link/index.d.ts +1 -0
  45. package/lib/components/link/link.d.ts +14 -0
  46. package/lib/components/molecules/avatar/avatar-size-flags.d.ts +12 -0
  47. package/lib/components/molecules/avatar/avatar.d.ts +12 -0
  48. package/lib/components/molecules/avatar/index.d.ts +1 -0
  49. package/lib/components/molecules/button/button-flags.d.ts +44 -0
  50. package/lib/components/molecules/button/button.d.ts +12 -0
  51. package/lib/components/molecules/button/index.d.ts +1 -0
  52. package/lib/components/molecules/index.d.ts +3 -0
  53. package/lib/components/molecules/input-checkbox/index.d.ts +1 -0
  54. package/lib/components/molecules/input-checkbox/input-checkbox.d.ts +8 -0
  55. package/lib/components/organisms/index.d.ts +1 -0
  56. package/lib/components/organisms/multi-choice-list/index.d.ts +1 -0
  57. package/lib/components/organisms/multi-choice-list/multi-choice-list.d.ts +10 -0
  58. package/lib/components/spinner/index.d.ts +1 -0
  59. package/lib/components/spinner/spinner-size-flags.d.ts +10 -0
  60. package/lib/components/spinner/spinner.d.ts +9 -0
  61. package/lib/components/tabs/components/index.d.ts +1 -0
  62. package/lib/components/tabs/components/tab.d.ts +7 -0
  63. package/lib/components/tabs/index.d.ts +1 -0
  64. package/lib/components/tabs/tabs.d.ts +15 -0
  65. package/lib/components/tag/components/close-button.d.ts +8 -0
  66. package/lib/components/tag/components/index.d.ts +2 -0
  67. package/lib/components/tag/components/tag-label.d.ts +8 -0
  68. package/lib/components/tag/index.d.ts +1 -0
  69. package/lib/components/tag/tag.d.ts +10 -0
  70. package/lib/components/thumbnail/index.d.ts +1 -0
  71. package/lib/components/thumbnail/thumbnail-size-flags.d.ts +10 -0
  72. package/lib/components/thumbnail/thumbnail.d.ts +10 -0
  73. package/lib/components/typography/index.d.ts +1 -0
  74. package/lib/components/typography/typography.d.ts +24 -0
  75. package/lib/foundations/color-system/base-palette/base-palette.d.ts +76 -0
  76. package/lib/foundations/color-system/base-palette/index.d.ts +1 -0
  77. package/lib/foundations/color-system/color-guidelines/color-guidelines.d.ts +132 -0
  78. package/lib/foundations/color-system/color-guidelines/index.d.ts +1 -0
  79. package/lib/foundations/color-system/components/color-sample.d.ts +17 -0
  80. package/lib/foundations/color-system/components/index.d.ts +1 -0
  81. package/lib/foundations/color-system/index.d.ts +1 -0
  82. package/lib/foundations/index.d.ts +4 -0
  83. package/lib/foundations/shadows/components.d.ts +8 -0
  84. package/lib/foundations/shadows/index.d.ts +1 -0
  85. package/lib/foundations/shadows/shadows.d.ts +8 -0
  86. package/lib/foundations/spacing/index.d.ts +1 -0
  87. package/lib/foundations/spacing/spacing-guidelines.d.ts +22 -0
  88. package/lib/foundations/spacing/spacing.d.ts +18 -0
  89. package/lib/foundations/typography/constants.d.ts +22 -0
  90. package/lib/foundations/typography/fonts.d.ts +1 -0
  91. package/lib/foundations/typography/index.d.ts +1 -0
  92. package/lib/foundations/typography/text-aspect-flags.d.ts +19 -0
  93. package/lib/foundations/typography/typography.d.ts +24 -0
  94. package/lib/helpers/generic-types.d.ts +21 -0
  95. package/lib/helpers/index.d.ts +6 -0
  96. package/lib/helpers/nothing.d.ts +8 -0
  97. package/{src/lib/helpers/numbers.ts → lib/helpers/numbers.d.ts} +50 -67
  98. package/lib/helpers/safe-navigation.d.ts +15 -0
  99. package/lib/helpers/slots.d.ts +23 -0
  100. package/lib/helpers/strings.d.ts +1 -0
  101. package/package.json +11 -3
  102. package/.babelrc +0 -12
  103. package/.eslintrc.json +0 -147
  104. package/.storybook/main.js +0 -57
  105. package/.storybook/manager.js +0 -7
  106. package/.storybook/preview.js +0 -15
  107. package/.storybook/tsconfig.json +0 -30
  108. package/jest.config.ts +0 -15
  109. package/jest.setup.ts +0 -2
  110. package/project.json +0 -96
  111. package/release-it.json +0 -18
  112. package/src/README.md +0 -61
  113. package/src/assets/svg/example_icon.svg +0 -3
  114. package/src/assets/svg/example_icon_white.svg +0 -3
  115. package/src/assets/svg/spinner.svg +0 -3
  116. package/src/assets/svg/spinner_white.svg +0 -3
  117. package/src/helpers/index.ts +0 -4
  118. package/src/helpers/playground.ts +0 -16
  119. package/src/helpers/talesOf.tsx +0 -42
  120. package/src/index.ts +0 -2
  121. package/src/lib/components/README.md +0 -49
  122. package/src/lib/components/alert-banner/alert-banner.tsx +0 -34
  123. package/src/lib/components/alert-banner/alert-level-flags.ts +0 -77
  124. package/src/lib/components/alert-banner/index.ts +0 -1
  125. package/src/lib/components/badge/badge-type-flags.ts +0 -72
  126. package/src/lib/components/badge/badge.test.tsx +0 -29
  127. package/src/lib/components/badge/badge.tsx +0 -22
  128. package/src/lib/components/badge/index.ts +0 -1
  129. package/src/lib/components/badge/stories/badge.stories.mdx +0 -44
  130. package/src/lib/components/badge/stories/components.tsx +0 -49
  131. package/src/lib/components/card/atoms/index.ts +0 -1
  132. package/src/lib/components/card/card.test.tsx +0 -162
  133. package/src/lib/components/card/card.tsx +0 -78
  134. package/src/lib/components/card/components/card-alert-banner-slot.tsx +0 -16
  135. package/src/lib/components/card/components/card-controls-slot.tsx +0 -19
  136. package/src/lib/components/card/components/card-section-slot.tsx +0 -51
  137. package/src/lib/components/card/components/index.ts +0 -3
  138. package/src/lib/components/card/index.ts +0 -2
  139. package/src/lib/components/card/molecules/index.ts +0 -1
  140. package/src/lib/components/card/molecules/left-right-card.test.tsx +0 -89
  141. package/src/lib/components/card/molecules/left-right-card.tsx +0 -63
  142. package/src/lib/components/card/storybook/card.stories.mdx +0 -100
  143. package/src/lib/components/card/storybook/components.tsx +0 -223
  144. package/src/lib/components/checkbox/checkbox.test.tsx +0 -39
  145. package/src/lib/components/checkbox/checkbox.tsx +0 -63
  146. package/src/lib/components/checkbox/helpers.tsx +0 -100
  147. package/src/lib/components/checkbox/index.tsx +0 -1
  148. package/src/lib/components/checkbox/stories/checkbox.stories.mdx +0 -57
  149. package/src/lib/components/checkbox/stories/components.tsx +0 -84
  150. package/src/lib/components/divider/divider-type-flags.tsx +0 -37
  151. package/src/lib/components/divider/divider.test.tsx +0 -34
  152. package/src/lib/components/divider/divider.tsx +0 -37
  153. package/src/lib/components/divider/index.tsx +0 -1
  154. package/src/lib/components/divider/stories/components.tsx +0 -13
  155. package/src/lib/components/divider/stories/divider.stories.mdx +0 -44
  156. package/src/lib/components/flag/flag-size-flags.tsx +0 -55
  157. package/src/lib/components/flag/flag.list.tsx +0 -788
  158. package/src/lib/components/flag/flag.test.tsx +0 -65
  159. package/src/lib/components/flag/flag.tsx +0 -97
  160. package/src/lib/components/flag/index.tsx +0 -1
  161. package/src/lib/components/flag/stories/components.tsx +0 -403
  162. package/src/lib/components/flag/stories/flag.stories.mdx +0 -48
  163. package/src/lib/components/flag/stories/playGround-select.tsx +0 -145
  164. package/src/lib/components/icon/icon-list.tsx +0 -135
  165. package/src/lib/components/icon/icon.test.tsx +0 -48
  166. package/src/lib/components/icon/icon.tsx +0 -181
  167. package/src/lib/components/icon/index.tsx +0 -1
  168. package/src/lib/components/icon/stories/components.tsx +0 -282
  169. package/src/lib/components/icon/stories/icon.stories.mdx +0 -65
  170. package/src/lib/components/index.ts +0 -19
  171. package/src/lib/components/input-field/components/index.ts +0 -2
  172. package/src/lib/components/input-field/components/labeled-input.tsx +0 -54
  173. package/src/lib/components/input-field/components/stepper.tsx +0 -60
  174. package/src/lib/components/input-field/index.ts +0 -6
  175. package/src/lib/components/input-field/input-field.test.tsx +0 -107
  176. package/src/lib/components/input-field/input-field.tsx +0 -126
  177. package/src/lib/components/input-field/input-number.tsx +0 -41
  178. package/src/lib/components/input-field/input-text.tsx +0 -30
  179. package/src/lib/components/input-field/storybook/components.tsx +0 -327
  180. package/src/lib/components/input-field/storybook/input-field.stories.mdx +0 -113
  181. package/src/lib/components/layout/flex.tsx +0 -22
  182. package/src/lib/components/layout/grid-layout.tsx +0 -40
  183. package/src/lib/components/layout/index.ts +0 -3
  184. package/src/lib/components/layout/left-right-layout.tsx +0 -67
  185. package/src/lib/components/link/index.ts +0 -1
  186. package/src/lib/components/link/link.test.tsx +0 -29
  187. package/src/lib/components/link/link.tsx +0 -56
  188. package/src/lib/components/link/storybook/link.stories.mdx +0 -52
  189. package/src/lib/components/molecules/avatar/avatar-size-flags.tsx +0 -55
  190. package/src/lib/components/molecules/avatar/avatar.test.tsx +0 -114
  191. package/src/lib/components/molecules/avatar/avatar.tsx +0 -80
  192. package/src/lib/components/molecules/avatar/index.tsx +0 -1
  193. package/src/lib/components/molecules/avatar/stories/avatar.stories.mdx +0 -52
  194. package/src/lib/components/molecules/avatar/stories/components.tsx +0 -36
  195. package/src/lib/components/molecules/button/button-flags.tsx +0 -340
  196. package/src/lib/components/molecules/button/button.test.tsx +0 -77
  197. package/src/lib/components/molecules/button/button.tsx +0 -214
  198. package/src/lib/components/molecules/button/index.tsx +0 -1
  199. package/src/lib/components/molecules/button/stories/button.stories.mdx +0 -105
  200. package/src/lib/components/molecules/button/stories/components.tsx +0 -84
  201. package/src/lib/components/molecules/index.ts +0 -3
  202. package/src/lib/components/molecules/input-checkbox/index.tsx +0 -1
  203. package/src/lib/components/molecules/input-checkbox/input-checkbox.test.tsx +0 -34
  204. package/src/lib/components/molecules/input-checkbox/input-checkbox.tsx +0 -49
  205. package/src/lib/components/molecules/input-checkbox/stories/components.tsx +0 -53
  206. package/src/lib/components/molecules/input-checkbox/stories/input-checkbox.stories.mdx +0 -49
  207. package/src/lib/components/organisms/index.ts +0 -1
  208. package/src/lib/components/organisms/multi-choice-list/index.tsx +0 -1
  209. package/src/lib/components/organisms/multi-choice-list/multi-choice-list.test.tsx +0 -33
  210. package/src/lib/components/organisms/multi-choice-list/multi-choice-list.tsx +0 -52
  211. package/src/lib/components/organisms/multi-choice-list/stories/components.tsx +0 -124
  212. package/src/lib/components/organisms/multi-choice-list/stories/multi-choice-list.stories.mdx +0 -99
  213. package/src/lib/components/spinner/index.tsx +0 -1
  214. package/src/lib/components/spinner/spinner-size-flags.tsx +0 -39
  215. package/src/lib/components/spinner/spinner.test.tsx +0 -31
  216. package/src/lib/components/spinner/spinner.tsx +0 -54
  217. package/src/lib/components/spinner/stories/components.tsx +0 -39
  218. package/src/lib/components/spinner/stories/spinner.stories.mdx +0 -35
  219. package/src/lib/components/tabs/components/index.ts +0 -1
  220. package/src/lib/components/tabs/components/tab.tsx +0 -62
  221. package/src/lib/components/tabs/index.tsx +0 -1
  222. package/src/lib/components/tabs/storybook/components.tsx +0 -282
  223. package/src/lib/components/tabs/storybook/tabs.stories.mdx +0 -97
  224. package/src/lib/components/tabs/tabs.test.tsx +0 -86
  225. package/src/lib/components/tabs/tabs.tsx +0 -101
  226. package/src/lib/components/tag/components/close-button.tsx +0 -85
  227. package/src/lib/components/tag/components/index.ts +0 -2
  228. package/src/lib/components/tag/components/tag-label.tsx +0 -44
  229. package/src/lib/components/tag/index.tsx +0 -1
  230. package/src/lib/components/tag/stories/components.tsx +0 -86
  231. package/src/lib/components/tag/stories/tag.stories.mdx +0 -42
  232. package/src/lib/components/tag/tag.test.tsx +0 -36
  233. package/src/lib/components/tag/tag.tsx +0 -33
  234. package/src/lib/components/thumbnail/index.tsx +0 -1
  235. package/src/lib/components/thumbnail/stories/thumbnail.stories.mdx +0 -34
  236. package/src/lib/components/thumbnail/thumbnail-size-flags.tsx +0 -41
  237. package/src/lib/components/thumbnail/thumbnail.test.tsx +0 -51
  238. package/src/lib/components/thumbnail/thumbnail.tsx +0 -45
  239. package/src/lib/components/typography/index.ts +0 -1
  240. package/src/lib/components/typography/storybook/components.tsx +0 -288
  241. package/src/lib/components/typography/storybook/typography.stories.mdx +0 -90
  242. package/src/lib/components/typography/typography.test.tsx +0 -97
  243. package/src/lib/components/typography/typography.tsx +0 -99
  244. package/src/lib/foundations/color-system/base-palette/base-palette.stories.tsx +0 -123
  245. package/src/lib/foundations/color-system/base-palette/base-palette.ts +0 -93
  246. package/src/lib/foundations/color-system/base-palette/index.ts +0 -1
  247. package/src/lib/foundations/color-system/color-guidelines/color-guidelines.stories.mdx +0 -85
  248. package/src/lib/foundations/color-system/color-guidelines/color-guidelines.stories.tsx +0 -231
  249. package/src/lib/foundations/color-system/color-guidelines/color-guidelines.ts +0 -160
  250. package/src/lib/foundations/color-system/color-guidelines/index.ts +0 -1
  251. package/src/lib/foundations/color-system/components/color-sample.tsx +0 -99
  252. package/src/lib/foundations/color-system/components/index.ts +0 -1
  253. package/src/lib/foundations/color-system/index.ts +0 -1
  254. package/src/lib/foundations/index.ts +0 -4
  255. package/src/lib/foundations/shadows/components.tsx +0 -59
  256. package/src/lib/foundations/shadows/index.ts +0 -1
  257. package/src/lib/foundations/shadows/shadows.stories.mdx +0 -71
  258. package/src/lib/foundations/shadows/shadows.tsx +0 -47
  259. package/src/lib/foundations/spacing/index.ts +0 -1
  260. package/src/lib/foundations/spacing/spacing-guidelines.ts +0 -24
  261. package/src/lib/foundations/spacing/spacing.stories.mdx +0 -51
  262. package/src/lib/foundations/spacing/spacing.ts +0 -18
  263. package/src/lib/foundations/typography/constants.ts +0 -25
  264. package/src/lib/foundations/typography/fonts.ts +0 -205
  265. package/src/lib/foundations/typography/index.tsx +0 -1
  266. package/src/lib/foundations/typography/text-aspect-flags.ts +0 -61
  267. package/src/lib/foundations/typography/typography.tsx +0 -102
  268. package/src/lib/helpers/generic-types.ts +0 -44
  269. package/src/lib/helpers/index.ts +0 -6
  270. package/src/lib/helpers/nothing.tsx +0 -18
  271. package/src/lib/helpers/safe-navigation.ts +0 -44
  272. package/src/lib/helpers/slots.test.tsx +0 -98
  273. package/src/lib/helpers/slots.tsx +0 -157
  274. package/src/lib/helpers/strings.test.ts +0 -47
  275. package/src/lib/helpers/strings.ts +0 -16
  276. package/tsconfig.json +0 -35
  277. package/tsconfig.lib.json +0 -28
  278. package/tsconfig.spec.json +0 -21
@@ -1,63 +0,0 @@
1
- import { InputHTMLAttributes } from 'react'
2
- import styled from 'styled-components'
3
- import { Margin, Padding, Focused } from '@foundations'
4
- import { FC, is } from '@helpers'
5
- import {
6
- getDisabledStyles,
7
- getInvalidStyles,
8
- getDefaultStyles,
9
- } from './helpers'
10
-
11
- const CustomizedCheckbox = styled.input<{ error?: boolean }>`
12
- appearance: none;
13
- position: relative;
14
- box-sizing: content-box;
15
- width: 18px;
16
- height: 18px;
17
- margin: ${Margin.none};
18
- padding: ${Padding.none};
19
- border-radius: 4px;
20
- user-select: none;
21
- vertical-align: bottom;
22
- display: inline-block;
23
-
24
- ${({ disabled, error }) => {
25
- if (is(disabled)) {
26
- return getDisabledStyles()
27
- } else if (is(error)) {
28
- return getInvalidStyles()
29
- } else {
30
- return getDefaultStyles()
31
- }
32
- }}
33
-
34
- :focus-visible {
35
- outline: 2px solid ${Focused.Default};
36
- outline-offset: 1px;
37
- }
38
- `
39
-
40
- export interface ICheckboxProps {
41
- disabled?: boolean
42
- checked?: boolean
43
- error?: boolean
44
- className?: string
45
- }
46
-
47
- export type IProps = ICheckboxProps & InputHTMLAttributes<HTMLInputElement>
48
-
49
- export const Checkbox: FC<IProps> = (props: IProps) => {
50
- const {
51
- error = false,
52
- ...htmlProps
53
- } = props
54
-
55
- return (
56
- <CustomizedCheckbox
57
- {...htmlProps}
58
-
59
- type='checkbox'
60
- error={error}
61
- />
62
- )
63
- }
@@ -1,100 +0,0 @@
1
- import { css } from 'styled-components'
2
- import { Surface, Borders, Actions, Interactive, Icons } from '@foundations'
3
- import { Hex, isNil } from '@helpers'
4
-
5
- interface ICheckedProps {
6
- checked?: boolean;
7
- }
8
-
9
- const WIDTH = 12
10
- const HEIGHT = 10
11
-
12
- /** no magic here, just copy/pasted the svg from the mockup
13
- * I had to tweak the width and height though
14
- */
15
- const svg = `
16
- <svg xmlns='http://www.w3.org/2000/svg' width='${WIDTH}' height='${HEIGHT}' viewBox='0 0 10 8'>
17
- <path d='M4.50846 7.37941C4.0689 7.81898 3.35108 7.81898 2.91151 7.37941L0.330581 4.79848C-0.110194 4.35892 -0.110194 3.64109 0.330581 3.20153C0.770146 2.76196 1.48797 2.76196 1.92753 3.20153L3.70999 4.98399L8.07338 0.620598C8.51294 0.181033 9.23076 0.181033 9.67033 0.620598C10.1099 1.06016 10.1099 1.77798 9.67033 2.21755L4.50846 7.37941Z' fill='white'/>
18
- </svg>
19
- `
20
-
21
- function getCheckMark () {
22
- return css`
23
- ::before {
24
- position: absolute;
25
- content: url("data:image/svg+xml,${svg}");
26
- top: 3px;
27
- left: 3px;
28
- }
29
- `
30
- }
31
-
32
- /** the reason I have this isNil to test
33
- * whether `checked` was passes is this:
34
- *
35
- * if the user passed "checked" then
36
- * they expect the checked styles to be
37
- * seen if and only if checked is true.
38
- * In that case I don't add the :checked
39
- * selector because the user doesn't want
40
- * the styles to depend on the browser's
41
- * idea of the state of the button.
42
- */
43
- function getCheckedStyles (color: Hex) {
44
- return css<{ checked?: boolean }>`
45
- ${({ checked }) => isNil(checked)
46
- ? css`
47
- :checked {
48
- background: ${color};
49
- border: 2px solid ${color};
50
- ${getCheckMark()}
51
- }
52
- `
53
- : checked
54
- ? css`
55
- background: ${color};
56
- border: 2px solid ${color};
57
- ${getCheckMark()}
58
- `
59
- : ''
60
- }
61
- `
62
- }
63
-
64
- export const getHoverStyles = () => css`
65
- background: ${Surface.Default.Hover};
66
-
67
- ${getCheckedStyles(Interactive.Default.Hover)}
68
- `
69
-
70
- export const getDisabledStyles = () => css`
71
- pointer-events: none;
72
- background: ${(props: ICheckedProps) =>
73
- props.checked === true
74
- ? `${Borders.Default.Default}`
75
- : `${Surface.Default.Subdued}`};
76
- border: 2px solid ${Borders.Default.Default};
77
-
78
- ${getCheckedStyles(Icons.Disabled)}
79
- `
80
-
81
- export const getDefaultStyles = () => css`
82
- background: ${Surface.Default.Default};
83
- border: 2px solid ${Interactive.Default.Disabled};
84
-
85
- ${getCheckedStyles(Interactive.Default.Default)}
86
-
87
- :hover {
88
- ${getHoverStyles}
89
- }
90
- `
91
-
92
- export const getInvalidStyles = () => css`
93
- background: ${(props: ICheckedProps) =>
94
- props.checked === true
95
- ? `${Actions.Critical.Default}`
96
- : `${Surface.Critical.Subdued}`};
97
- border: 2px solid ${Borders.Critical.Default};
98
-
99
- ${getCheckedStyles(Icons.Critical)}
100
- `
@@ -1 +0,0 @@
1
- export * from './checkbox'
@@ -1,57 +0,0 @@
1
- import { Canvas, Meta, Story } from '@storybook/addon-docs';
2
- import { Checkbox } from '../checkbox'
3
- import { IntegratedExample, CheckboxExample, LimitationsExample } from './components'
4
-
5
- <Meta
6
- title="Components/Checkbox"
7
- component={Checkbox}
8
- />
9
-
10
- # Checkbox
11
-
12
- Checkboxes are most commonly used to give users a way to make a range of selections (zero, one, or multiple). They may also be used as a way to have users indicate they agree to specific terms and services.
13
-
14
- For more details, check out the component page on [Figma](https://www.figma.com/file/ue1CurHfZ426o2T2l8Dk64/Edvisor-Product-Language?node-id=1008%3A1257)
15
-
16
- ## How to use
17
-
18
- ```tsx
19
- import { Checkbox } from './index'
20
-
21
- <Checkbox />
22
- ```
23
-
24
- ### Typical Usage
25
-
26
- Checkbox is "drop-in" compatible with an html input checkbox.
27
-
28
- <IntegratedExample />
29
-
30
- ### Modifiers
31
-
32
- Control the appearance of the checkbox with its modifiers.
33
-
34
- <CheckboxExample />
35
-
36
- ## API
37
-
38
- Extends `HTMLAttributes<HTMLInputElement>`
39
-
40
- | Name | Type | Description |
41
- | ----------- | --------- | ------------------------------------------------------------------- |
42
- | `checked?` | `boolean` | Set checkbox as filled |
43
- | `disabled?` | `boolean` | Set checkbox as a disabled way (can't click or interact with that) |
44
- | `error?` | `boolean` | Useful to work inside a form or show some feedback from user action |
45
- | `onChange?` | `event` | You can listen the changes from the component |
46
-
47
- ## Changelog
48
-
49
- ### [0.1.0]
50
- - replace the checkbox implementation with an input type=checkbox styled to look like what we need
51
-
52
- ### [0.0.1]
53
- - update checkbox to behave more like html input with type='checkbox'
54
-
55
- ### [0.0.0]
56
- - Offer the "indeterminate" style
57
- - Get feedback from the component usage (we can migrate to just rendering with css pseudo elements if necessary)
@@ -1,84 +0,0 @@
1
- import { Margin, } from '@foundations'
2
- import { If } from '@helpers'
3
- import { Button } from 'components/molecules/button'
4
- import { Caption, Label } from 'components/typography'
5
- import { Playground } from 'storybook-addon-jarle-monaco'
6
- import styled from 'styled-components'
7
- import { Checkbox as Base } from '../checkbox'
8
-
9
- const Checkbox = styled(Base)`
10
- display: inline-block;
11
- `
12
-
13
- export const CheckboxExample = () => (
14
- <Playground
15
- code={`
16
- <>
17
- <Checkbox />
18
- <Checkbox checked readOnly />
19
- <Checkbox disabled />
20
- <Checkbox checked disabled readOnly />
21
- <Checkbox error />
22
- <Checkbox checked error readOnly />
23
- </>
24
- `}
25
- providerProps={{
26
- renderAsComponent: true,
27
- scope: {
28
- Checkbox,
29
- },
30
- }}
31
- />
32
- )
33
-
34
- const Fields = styled.div`
35
- margin-bottom: ${Margin.s};
36
- `
37
-
38
- export const IntegratedExample = () => (
39
- <Playground
40
- code={`
41
- /* Edit this code sample! */
42
- const [withError, setWithError] = useState(false);
43
- const [accepted, setAccepted] = useState(false);
44
-
45
- <form onSubmit={(e) => {
46
- e.preventDefault()
47
- }}
48
- >
49
- <Fields>
50
- {/* try replacing Checkbox with input */}
51
- <Checkbox
52
- id="accept_terms"
53
- type="checkbox"
54
- checked={accepted}
55
- onInvalid={(e) => {
56
- setWithError(true)
57
- }}
58
- error={withError}
59
- onChange={(e) => {
60
- setAccepted(!accepted)
61
- setWithError(false)
62
- }}
63
- required
64
- />
65
- <label htmlFor="accept_terms"><Label as='span'>I accept these terms.</Label></label>
66
- <If is={accepted}><Caption subdued>You have accepted the terms.</Caption></If>
67
- </Fields>
68
- <Button type='button' onClick={() => setAccepted(false)}>Clear</Button>
69
- <Button primary type="submit">Submit</Button>
70
- </form>
71
- `}
72
- providerProps={{
73
- renderAsComponent: true,
74
- scope: {
75
- Checkbox,
76
- Caption,
77
- Button,
78
- If,
79
- Label,
80
- Fields,
81
- },
82
- }}
83
- />
84
- )
@@ -1,37 +0,0 @@
1
- // this file was generated, but it is safe to modify
2
- import { bitwiseOr, MappedEnum, RequireOnlyOne, PropsWithChildren } from '@helpers'
3
- import { Borders } from '@foundations'
4
-
5
- const enum DividerType {
6
- default = 1,
7
- subdued = 2,
8
- }
9
-
10
- type DividerTypes<T> = MappedEnum<typeof DividerType, T>
11
-
12
- function toDividerType(n: number): DividerType {
13
- switch (n) {
14
- case DividerType.default:
15
- return DividerType.default
16
- case DividerType.subdued:
17
- return DividerType.subdued
18
- default:
19
- return DividerType.default
20
- }
21
- }
22
-
23
- const DividerTypeColor = {
24
- [DividerType.default]: Borders.Default.Default,
25
- [DividerType.subdued]: Borders.Default.Subdued,
26
- }
27
-
28
- export type DivideTypeProps = Partial<RequireOnlyOne<DividerTypes<boolean>>> &
29
- PropsWithChildren
30
-
31
- export function getColor(props: DivideTypeProps): string {
32
- return DividerTypeColor[
33
- toDividerType(
34
- bitwiseOr([props.default, props.subdued])
35
- )
36
- ]
37
- }
@@ -1,34 +0,0 @@
1
- import { render, screen } from '@testing-library/react'
2
- import { Divider } from './index'
3
- import { Borders } from '@foundations'
4
-
5
- describe('Divider Tests', () => {
6
- describe('Divider Tests', () => {
7
- it('should render the Divider with default color', async () => {
8
- render(
9
- <Divider/>
10
- )
11
-
12
- expect(screen.getByTestId('divider-test')).toBeInTheDocument()
13
- expect(screen.getByTestId('divider-test')).toHaveStyle(`border: 1px solid ${Borders.Default.Default}`)
14
- })
15
-
16
- it('should render the Divider with default color using parameter', async () => {
17
- render(
18
- <Divider default/>
19
- )
20
-
21
- expect(screen.getByTestId('divider-test')).toBeInTheDocument()
22
- expect(screen.getByTestId('divider-test')).toHaveStyle(`border: 1px solid ${Borders.Default.Default}`)
23
- })
24
-
25
- it('should render the Divider with subdued color', async () => {
26
- render(
27
- <Divider subdued/>
28
- )
29
-
30
- expect(screen.getByTestId('divider-test')).toBeInTheDocument()
31
- expect(screen.getByTestId('divider-test')).toHaveStyle(`border: 1px solid ${Borders.Default.Subdued}`)
32
- })
33
- })
34
- })
@@ -1,37 +0,0 @@
1
- import styled from 'styled-components'
2
- import { FC } from '@helpers'
3
- import { DivideTypeProps, getColor } from './divider-type-flags'
4
-
5
- /**
6
- * @TODO I added flex here because without it the bottom margin was
7
- * being collapsed with the next sibling (when I applied margins to the divider,
8
- * which I expect we basically _always_ will)
9
- *
10
- * I'm not confident with reasoning about margin-collapse so if you see
11
- * this comment and feel like experimenting, go crazy. Check out the
12
- * card stories for an example of the divider (it's way at the bottom)
13
- */
14
- const DividerWrapper = styled.div`
15
- position: relative;
16
- width:100%;
17
- `
18
-
19
- const DividerLine = styled.hr<{ color: string }>`
20
- position: absolute;
21
- left: 0;
22
- right: 0;
23
- margin: unset;
24
- border: 1px solid ${({ color }) => color};
25
- `
26
-
27
- type IProps = { className?: string } & DivideTypeProps
28
-
29
- export const Divider: FC<IProps> = (props) => {
30
- const color = getColor(props)
31
-
32
- return (
33
- <DividerWrapper className={props.className}>
34
- <DividerLine color={color} data-testid="divider-test"/>
35
- </DividerWrapper>
36
- )
37
- }
@@ -1 +0,0 @@
1
- export * from './divider'
@@ -1,13 +0,0 @@
1
- import styled from 'styled-components'
2
- import { Padding, Surface } from '@foundations'
3
-
4
-
5
- const WrapperStories = styled.div`
6
- width: 390px;
7
- padding: ${Padding.l};
8
- background: ${Surface.Default.Default};
9
- `
10
-
11
- export {
12
- WrapperStories
13
- }
@@ -1,44 +0,0 @@
1
- import { Canvas, Meta } from '@storybook/addon-docs';
2
- import { Divider } from '../index'
3
- import { WrapperStories, AvatarsWithText, AvatarsWithImage, WrapperStoriesWithLabel } from './components'
4
-
5
- <Meta
6
- title="Components/Divider"
7
- component={Divider}
8
- />
9
-
10
- # Divider
11
-
12
- For more details, check out the component page on [Figma](https://www.figma.com/file/ue1CurHfZ426o2T2l8Dk64/Edvisor-Product-Language?node-id=1194%3A1611)
13
-
14
- ## How to use
15
-
16
- ```javascript
17
- // Import the component
18
- import { Divider } from './index'
19
-
20
-
21
- // Render the component sending the parameters
22
- <Divider default/>
23
-
24
- //or
25
-
26
- <Divider subdued/>
27
- ```
28
-
29
- ## Examples
30
-
31
- Default Divider
32
- <Canvas>
33
- <WrapperStories>
34
- <Divider default/>
35
- </WrapperStories>
36
- </Canvas>
37
-
38
- Subdued Divider
39
- <Canvas>
40
- <WrapperStories>
41
- <Divider subdued/>
42
- </WrapperStories>
43
- </Canvas>
44
-
@@ -1,55 +0,0 @@
1
- import { bitwiseOr, MappedEnum, RequireOnlyOne, PropsWithChildren } from '@helpers'
2
-
3
- export const enum FlagSize {
4
- small = 1,
5
- medium = 2,
6
- large = 4,
7
- }
8
-
9
- type FlagSizes<T> = MappedEnum<typeof FlagSize, T>
10
-
11
- function toFlag(n: number): FlagSize {
12
- switch (n) {
13
- case FlagSize.small:
14
- return FlagSize.small
15
- case FlagSize.medium:
16
- return FlagSize.medium
17
- case FlagSize.large:
18
- return FlagSize.large
19
- default:
20
- return FlagSize.medium
21
- }
22
- }
23
-
24
- const FlagWidthValues = {
25
- [FlagSize.small]: '20',
26
- [FlagSize.medium]: '20',
27
- [FlagSize.large]: '32',
28
- }
29
-
30
- const FlagHeightValues = {
31
- [FlagSize.small]: '20',
32
- [FlagSize.medium]: '20',
33
- [FlagSize.large]: '24',
34
- }
35
-
36
- export type FlagProps = Partial<RequireOnlyOne<FlagSizes<boolean>>> &
37
- PropsWithChildren
38
-
39
- export function getHeigthBySize(props: FlagProps): string {
40
- return FlagHeightValues[
41
- getFlagSize(props)
42
- ]
43
- }
44
-
45
- export function getWidthBySize(props: FlagProps): string {
46
- return FlagWidthValues[
47
- getFlagSize(props)
48
- ]
49
- }
50
-
51
- export function getFlagSize(props: FlagProps) {
52
- return toFlag(
53
- bitwiseOr([props.small, props.medium, props.large])
54
- )
55
- }