@edvisor/product-language 0.3.0 → 0.4.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 (290) hide show
  1. package/index.d.ts +2 -0
  2. package/index.js +9374 -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 +18 -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/select/components/menu-container.d.ts +3 -0
  59. package/lib/components/select/components/menu-row.d.ts +9 -0
  60. package/lib/components/select/components/menu.d.ts +2 -0
  61. package/lib/components/select/components/option.d.ts +10 -0
  62. package/lib/components/select/components/select-label.d.ts +1 -0
  63. package/lib/components/select/components/value-component-multi.d.ts +3 -0
  64. package/lib/components/select/components/value-component-single.d.ts +4 -0
  65. package/lib/components/select/components/value.d.ts +4 -0
  66. package/lib/components/select/index.d.ts +1 -0
  67. package/lib/components/select/select.d.ts +9 -0
  68. package/lib/components/select/types.d.ts +124 -0
  69. package/lib/components/select/utils.d.ts +15 -0
  70. package/lib/components/spinner/index.d.ts +1 -0
  71. package/lib/components/spinner/spinner-size-flags.d.ts +10 -0
  72. package/lib/components/spinner/spinner.d.ts +9 -0
  73. package/lib/components/tabs/components/index.d.ts +1 -0
  74. package/lib/components/tabs/components/tab.d.ts +7 -0
  75. package/lib/components/tabs/index.d.ts +1 -0
  76. package/lib/components/tabs/tabs.d.ts +15 -0
  77. package/lib/components/tag/components/close-button.d.ts +8 -0
  78. package/lib/components/tag/components/index.d.ts +2 -0
  79. package/lib/components/tag/components/tag-label.d.ts +8 -0
  80. package/lib/components/tag/index.d.ts +1 -0
  81. package/lib/components/tag/tag.d.ts +10 -0
  82. package/lib/components/thumbnail/index.d.ts +1 -0
  83. package/lib/components/thumbnail/thumbnail-size-flags.d.ts +10 -0
  84. package/lib/components/thumbnail/thumbnail.d.ts +10 -0
  85. package/lib/components/typography/index.d.ts +1 -0
  86. package/lib/components/typography/typography.d.ts +24 -0
  87. package/lib/foundations/color-system/base-palette/base-palette.d.ts +76 -0
  88. package/lib/foundations/color-system/base-palette/index.d.ts +1 -0
  89. package/lib/foundations/color-system/color-guidelines/color-guidelines.d.ts +132 -0
  90. package/lib/foundations/color-system/color-guidelines/index.d.ts +1 -0
  91. package/lib/foundations/color-system/components/color-sample.d.ts +17 -0
  92. package/lib/foundations/color-system/components/index.d.ts +1 -0
  93. package/lib/foundations/color-system/index.d.ts +1 -0
  94. package/lib/foundations/index.d.ts +4 -0
  95. package/lib/foundations/shadows/components.d.ts +8 -0
  96. package/lib/foundations/shadows/index.d.ts +1 -0
  97. package/lib/foundations/shadows/shadows.d.ts +8 -0
  98. package/lib/foundations/spacing/index.d.ts +1 -0
  99. package/lib/foundations/spacing/spacing-guidelines.d.ts +22 -0
  100. package/lib/foundations/spacing/spacing.d.ts +18 -0
  101. package/lib/foundations/typography/constants.d.ts +22 -0
  102. package/lib/foundations/typography/fonts.d.ts +1 -0
  103. package/lib/foundations/typography/index.d.ts +1 -0
  104. package/lib/foundations/typography/text-aspect-flags.d.ts +19 -0
  105. package/lib/foundations/typography/typography.d.ts +24 -0
  106. package/lib/helpers/generic-types.d.ts +21 -0
  107. package/lib/helpers/index.d.ts +6 -0
  108. package/lib/helpers/nothing.d.ts +8 -0
  109. package/{src/lib/helpers/numbers.ts → lib/helpers/numbers.d.ts} +50 -67
  110. package/lib/helpers/safe-navigation.d.ts +15 -0
  111. package/lib/helpers/slots.d.ts +23 -0
  112. package/lib/helpers/strings.d.ts +1 -0
  113. package/package.json +12 -3
  114. package/.babelrc +0 -12
  115. package/.eslintrc.json +0 -147
  116. package/.storybook/main.js +0 -57
  117. package/.storybook/manager.js +0 -7
  118. package/.storybook/preview.js +0 -15
  119. package/.storybook/tsconfig.json +0 -30
  120. package/jest.config.ts +0 -15
  121. package/jest.setup.ts +0 -2
  122. package/project.json +0 -96
  123. package/release-it.json +0 -18
  124. package/src/README.md +0 -61
  125. package/src/assets/svg/example_icon.svg +0 -3
  126. package/src/assets/svg/example_icon_white.svg +0 -3
  127. package/src/assets/svg/spinner.svg +0 -3
  128. package/src/assets/svg/spinner_white.svg +0 -3
  129. package/src/helpers/index.ts +0 -4
  130. package/src/helpers/playground.ts +0 -16
  131. package/src/helpers/talesOf.tsx +0 -42
  132. package/src/index.ts +0 -2
  133. package/src/lib/components/README.md +0 -49
  134. package/src/lib/components/alert-banner/alert-banner.tsx +0 -34
  135. package/src/lib/components/alert-banner/alert-level-flags.ts +0 -77
  136. package/src/lib/components/alert-banner/index.ts +0 -1
  137. package/src/lib/components/badge/badge-type-flags.ts +0 -72
  138. package/src/lib/components/badge/badge.test.tsx +0 -29
  139. package/src/lib/components/badge/badge.tsx +0 -22
  140. package/src/lib/components/badge/index.ts +0 -1
  141. package/src/lib/components/badge/stories/badge.stories.mdx +0 -44
  142. package/src/lib/components/badge/stories/components.tsx +0 -49
  143. package/src/lib/components/card/atoms/index.ts +0 -1
  144. package/src/lib/components/card/card.test.tsx +0 -162
  145. package/src/lib/components/card/card.tsx +0 -78
  146. package/src/lib/components/card/components/card-alert-banner-slot.tsx +0 -16
  147. package/src/lib/components/card/components/card-controls-slot.tsx +0 -19
  148. package/src/lib/components/card/components/card-section-slot.tsx +0 -51
  149. package/src/lib/components/card/components/index.ts +0 -3
  150. package/src/lib/components/card/index.ts +0 -2
  151. package/src/lib/components/card/molecules/index.ts +0 -1
  152. package/src/lib/components/card/molecules/left-right-card.test.tsx +0 -89
  153. package/src/lib/components/card/molecules/left-right-card.tsx +0 -63
  154. package/src/lib/components/card/storybook/card.stories.mdx +0 -100
  155. package/src/lib/components/card/storybook/components.tsx +0 -223
  156. package/src/lib/components/checkbox/checkbox.test.tsx +0 -39
  157. package/src/lib/components/checkbox/checkbox.tsx +0 -63
  158. package/src/lib/components/checkbox/helpers.tsx +0 -100
  159. package/src/lib/components/checkbox/index.tsx +0 -1
  160. package/src/lib/components/checkbox/stories/checkbox.stories.mdx +0 -57
  161. package/src/lib/components/checkbox/stories/components.tsx +0 -84
  162. package/src/lib/components/divider/divider-type-flags.tsx +0 -37
  163. package/src/lib/components/divider/divider.test.tsx +0 -34
  164. package/src/lib/components/divider/divider.tsx +0 -37
  165. package/src/lib/components/divider/index.tsx +0 -1
  166. package/src/lib/components/divider/stories/components.tsx +0 -13
  167. package/src/lib/components/divider/stories/divider.stories.mdx +0 -44
  168. package/src/lib/components/flag/flag-size-flags.tsx +0 -55
  169. package/src/lib/components/flag/flag.list.tsx +0 -788
  170. package/src/lib/components/flag/flag.test.tsx +0 -65
  171. package/src/lib/components/flag/flag.tsx +0 -97
  172. package/src/lib/components/flag/index.tsx +0 -1
  173. package/src/lib/components/flag/stories/components.tsx +0 -403
  174. package/src/lib/components/flag/stories/flag.stories.mdx +0 -48
  175. package/src/lib/components/flag/stories/playGround-select.tsx +0 -145
  176. package/src/lib/components/icon/icon-list.tsx +0 -135
  177. package/src/lib/components/icon/icon.test.tsx +0 -48
  178. package/src/lib/components/icon/icon.tsx +0 -181
  179. package/src/lib/components/icon/index.tsx +0 -1
  180. package/src/lib/components/icon/stories/components.tsx +0 -282
  181. package/src/lib/components/icon/stories/icon.stories.mdx +0 -65
  182. package/src/lib/components/index.ts +0 -19
  183. package/src/lib/components/input-field/components/index.ts +0 -2
  184. package/src/lib/components/input-field/components/labeled-input.tsx +0 -54
  185. package/src/lib/components/input-field/components/stepper.tsx +0 -60
  186. package/src/lib/components/input-field/index.ts +0 -6
  187. package/src/lib/components/input-field/input-field.test.tsx +0 -107
  188. package/src/lib/components/input-field/input-field.tsx +0 -126
  189. package/src/lib/components/input-field/input-number.tsx +0 -41
  190. package/src/lib/components/input-field/input-text.tsx +0 -30
  191. package/src/lib/components/input-field/storybook/components.tsx +0 -327
  192. package/src/lib/components/input-field/storybook/input-field.stories.mdx +0 -113
  193. package/src/lib/components/layout/flex.tsx +0 -22
  194. package/src/lib/components/layout/grid-layout.tsx +0 -40
  195. package/src/lib/components/layout/index.ts +0 -3
  196. package/src/lib/components/layout/left-right-layout.tsx +0 -67
  197. package/src/lib/components/link/index.ts +0 -1
  198. package/src/lib/components/link/link.test.tsx +0 -29
  199. package/src/lib/components/link/link.tsx +0 -56
  200. package/src/lib/components/link/storybook/link.stories.mdx +0 -52
  201. package/src/lib/components/molecules/avatar/avatar-size-flags.tsx +0 -55
  202. package/src/lib/components/molecules/avatar/avatar.test.tsx +0 -114
  203. package/src/lib/components/molecules/avatar/avatar.tsx +0 -80
  204. package/src/lib/components/molecules/avatar/index.tsx +0 -1
  205. package/src/lib/components/molecules/avatar/stories/avatar.stories.mdx +0 -52
  206. package/src/lib/components/molecules/avatar/stories/components.tsx +0 -36
  207. package/src/lib/components/molecules/button/button-flags.tsx +0 -340
  208. package/src/lib/components/molecules/button/button.test.tsx +0 -77
  209. package/src/lib/components/molecules/button/button.tsx +0 -214
  210. package/src/lib/components/molecules/button/index.tsx +0 -1
  211. package/src/lib/components/molecules/button/stories/button.stories.mdx +0 -105
  212. package/src/lib/components/molecules/button/stories/components.tsx +0 -84
  213. package/src/lib/components/molecules/index.ts +0 -3
  214. package/src/lib/components/molecules/input-checkbox/index.tsx +0 -1
  215. package/src/lib/components/molecules/input-checkbox/input-checkbox.test.tsx +0 -34
  216. package/src/lib/components/molecules/input-checkbox/input-checkbox.tsx +0 -49
  217. package/src/lib/components/molecules/input-checkbox/stories/components.tsx +0 -53
  218. package/src/lib/components/molecules/input-checkbox/stories/input-checkbox.stories.mdx +0 -49
  219. package/src/lib/components/organisms/index.ts +0 -1
  220. package/src/lib/components/organisms/multi-choice-list/index.tsx +0 -1
  221. package/src/lib/components/organisms/multi-choice-list/multi-choice-list.test.tsx +0 -33
  222. package/src/lib/components/organisms/multi-choice-list/multi-choice-list.tsx +0 -52
  223. package/src/lib/components/organisms/multi-choice-list/stories/components.tsx +0 -124
  224. package/src/lib/components/organisms/multi-choice-list/stories/multi-choice-list.stories.mdx +0 -99
  225. package/src/lib/components/spinner/index.tsx +0 -1
  226. package/src/lib/components/spinner/spinner-size-flags.tsx +0 -39
  227. package/src/lib/components/spinner/spinner.test.tsx +0 -31
  228. package/src/lib/components/spinner/spinner.tsx +0 -54
  229. package/src/lib/components/spinner/stories/components.tsx +0 -39
  230. package/src/lib/components/spinner/stories/spinner.stories.mdx +0 -35
  231. package/src/lib/components/tabs/components/index.ts +0 -1
  232. package/src/lib/components/tabs/components/tab.tsx +0 -62
  233. package/src/lib/components/tabs/index.tsx +0 -1
  234. package/src/lib/components/tabs/storybook/components.tsx +0 -282
  235. package/src/lib/components/tabs/storybook/tabs.stories.mdx +0 -97
  236. package/src/lib/components/tabs/tabs.test.tsx +0 -86
  237. package/src/lib/components/tabs/tabs.tsx +0 -101
  238. package/src/lib/components/tag/components/close-button.tsx +0 -85
  239. package/src/lib/components/tag/components/index.ts +0 -2
  240. package/src/lib/components/tag/components/tag-label.tsx +0 -44
  241. package/src/lib/components/tag/index.tsx +0 -1
  242. package/src/lib/components/tag/stories/components.tsx +0 -86
  243. package/src/lib/components/tag/stories/tag.stories.mdx +0 -42
  244. package/src/lib/components/tag/tag.test.tsx +0 -36
  245. package/src/lib/components/tag/tag.tsx +0 -33
  246. package/src/lib/components/thumbnail/index.tsx +0 -1
  247. package/src/lib/components/thumbnail/stories/thumbnail.stories.mdx +0 -34
  248. package/src/lib/components/thumbnail/thumbnail-size-flags.tsx +0 -41
  249. package/src/lib/components/thumbnail/thumbnail.test.tsx +0 -51
  250. package/src/lib/components/thumbnail/thumbnail.tsx +0 -45
  251. package/src/lib/components/typography/index.ts +0 -1
  252. package/src/lib/components/typography/storybook/components.tsx +0 -288
  253. package/src/lib/components/typography/storybook/typography.stories.mdx +0 -90
  254. package/src/lib/components/typography/typography.test.tsx +0 -97
  255. package/src/lib/components/typography/typography.tsx +0 -99
  256. package/src/lib/foundations/color-system/base-palette/base-palette.stories.tsx +0 -123
  257. package/src/lib/foundations/color-system/base-palette/base-palette.ts +0 -93
  258. package/src/lib/foundations/color-system/base-palette/index.ts +0 -1
  259. package/src/lib/foundations/color-system/color-guidelines/color-guidelines.stories.mdx +0 -85
  260. package/src/lib/foundations/color-system/color-guidelines/color-guidelines.stories.tsx +0 -231
  261. package/src/lib/foundations/color-system/color-guidelines/color-guidelines.ts +0 -160
  262. package/src/lib/foundations/color-system/color-guidelines/index.ts +0 -1
  263. package/src/lib/foundations/color-system/components/color-sample.tsx +0 -99
  264. package/src/lib/foundations/color-system/components/index.ts +0 -1
  265. package/src/lib/foundations/color-system/index.ts +0 -1
  266. package/src/lib/foundations/index.ts +0 -4
  267. package/src/lib/foundations/shadows/components.tsx +0 -59
  268. package/src/lib/foundations/shadows/index.ts +0 -1
  269. package/src/lib/foundations/shadows/shadows.stories.mdx +0 -71
  270. package/src/lib/foundations/shadows/shadows.tsx +0 -47
  271. package/src/lib/foundations/spacing/index.ts +0 -1
  272. package/src/lib/foundations/spacing/spacing-guidelines.ts +0 -24
  273. package/src/lib/foundations/spacing/spacing.stories.mdx +0 -51
  274. package/src/lib/foundations/spacing/spacing.ts +0 -18
  275. package/src/lib/foundations/typography/constants.ts +0 -25
  276. package/src/lib/foundations/typography/fonts.ts +0 -205
  277. package/src/lib/foundations/typography/index.tsx +0 -1
  278. package/src/lib/foundations/typography/text-aspect-flags.ts +0 -61
  279. package/src/lib/foundations/typography/typography.tsx +0 -102
  280. package/src/lib/helpers/generic-types.ts +0 -44
  281. package/src/lib/helpers/index.ts +0 -6
  282. package/src/lib/helpers/nothing.tsx +0 -18
  283. package/src/lib/helpers/safe-navigation.ts +0 -44
  284. package/src/lib/helpers/slots.test.tsx +0 -98
  285. package/src/lib/helpers/slots.tsx +0 -157
  286. package/src/lib/helpers/strings.test.ts +0 -47
  287. package/src/lib/helpers/strings.ts +0 -16
  288. package/tsconfig.json +0 -35
  289. package/tsconfig.lib.json +0 -28
  290. package/tsconfig.spec.json +0 -21
@@ -1,52 +0,0 @@
1
- import { Canvas, Meta } from '@storybook/addon-docs';
2
- import { Avatar } from '../index'
3
- import { WrapperStories, AvatarsWithText, AvatarsWithImage, WrapperStoriesWithLabel } from './components'
4
-
5
- <Meta
6
- title="Components/Avatar"
7
- component={Avatar}
8
- />
9
-
10
- # Avatar
11
-
12
- For more details, check out the component page on [Figma](https://www.figma.com/file/ue1CurHfZ426o2T2l8Dk64/Edvisor-Product-Language?node-id=1008%3A1257)
13
-
14
- ## How to use
15
-
16
- ```javascript
17
- // Import the component
18
- import { Avatar } from './index'
19
-
20
-
21
- // Render the component sending the required parameters
22
- <Avatar name="SOME-NAME-HERE" />
23
- ```
24
- ## Good Practices
25
- - You can send the `imageLabel` propertie as and `alt` propertie in order to set and alternative text to image
26
-
27
- ## Examples
28
-
29
- Default
30
- <Canvas>
31
- <WrapperStories>
32
- <AvatarsWithText>
33
- <Avatar name="Yan Leite" small />
34
- <Avatar name="Yan Leite" medium />
35
- <Avatar name="Yan Leite" large />
36
- </AvatarsWithText>
37
- <AvatarsWithImage>
38
- <Avatar name="Yan Leite" imageLabel="Edvisor Logo" small imageUrl='https://blog.edvisor.io/hubfs/Edvisor%20Smi.png' />
39
- <Avatar name="Yan Leite" medium imageUrl='https://blog.edvisor.io/hubfs/Edvisor%20Smi.png' />
40
- <Avatar name="Yan Leite" large imageUrl='https://blog.edvisor.io/hubfs/Edvisor%20Smi.png' />
41
- </AvatarsWithImage>
42
- </WrapperStories>
43
- </Canvas>
44
-
45
- Also, we can use that rendering the full name
46
- <Canvas>
47
- <WrapperStoriesWithLabel>
48
- <Avatar name="Yan Leite" withLabel />
49
- <Avatar name="Yan Leite" withLabel imageUrl='https://blog.edvisor.io/hubfs/Edvisor%20Smi.png' />
50
- </WrapperStoriesWithLabel>
51
- </Canvas>
52
-
@@ -1,36 +0,0 @@
1
- import styled from 'styled-components'
2
- import { Surface, Padding } from '@foundations'
3
-
4
- const WrapperStories = styled.div`
5
- width: 244px;
6
- height: 192px;
7
- background: ${Surface.Default.Default};
8
- `
9
-
10
- const WrapperStoriesWithLabel = styled.div`
11
- width: 130px;
12
- background: ${Surface.Default.Default};
13
-
14
- & > div {
15
- padding-bottom: ${Padding.l};
16
- }
17
- `
18
-
19
- const AvatarsWithText = styled.div`
20
- display: flex;
21
- justify-content: space-around;
22
- padding: ${Padding.l} 0 ${Padding.l} 0;
23
- `
24
-
25
- const AvatarsWithImage = styled.div`
26
- display: flex;
27
- justify-content: space-around;
28
- padding-bottom: ${Padding.l};
29
- `
30
-
31
- export {
32
- WrapperStories,
33
- AvatarsWithText,
34
- AvatarsWithImage,
35
- WrapperStoriesWithLabel,
36
- }
@@ -1,340 +0,0 @@
1
- // this file was generated, but it is safe to modify
2
- import {
3
- bitwiseOr,
4
- MappedEnum,
5
- RequireOnlyOne,
6
- PropsWithChildren,
7
- getRightmostSetBitNumber,
8
- } from '@helpers'
9
- import { Actions, Padding, Interactive, Text, Borders, Icons } from '@foundations'
10
-
11
- export const enum ButtonType {
12
- basic = 1,
13
- primary = 2,
14
- destructive = 4,
15
- destructivePrimary = 6,
16
- outline = 8,
17
- plain = 16,
18
- subtle = 32,
19
- plainSubtle = 48,
20
- }
21
-
22
- const enum ButtonSize {
23
- default = 1,
24
- small = 2,
25
- large = 4,
26
- }
27
-
28
- const enum ButtonDisabledType {
29
- enabled = 1,
30
- disabled = 2,
31
- }
32
-
33
- type ButtonTypes<T> = MappedEnum<typeof ButtonType, T>
34
- type ButtonSizes<T> = MappedEnum<typeof ButtonSize, T>
35
- type ButtonDisabledTypes<T> = MappedEnum<typeof ButtonDisabledType, T>
36
-
37
- function toButtonSize(n: number): ButtonSize {
38
- switch (n) {
39
- case ButtonSize.default:
40
- return ButtonSize.default
41
- case ButtonSize.small:
42
- return ButtonSize.small
43
- case ButtonSize.large:
44
- return ButtonSize.large
45
- default:
46
- return ButtonSize.default
47
- }
48
- }
49
-
50
- function toButtonDisabledType(n: number): ButtonDisabledType {
51
- switch (n) {
52
- case ButtonDisabledType.enabled:
53
- return ButtonDisabledType.enabled
54
- case ButtonDisabledType.disabled:
55
- return ButtonDisabledType.disabled
56
- default:
57
- return ButtonDisabledType.enabled
58
- }
59
- }
60
-
61
- function toButtonTypes(n: number): ButtonType {
62
- const defaultType = 0
63
- switch (n) {
64
- case defaultType:
65
- case ButtonType.basic:
66
- return ButtonType.basic
67
- case ButtonType.primary:
68
- return ButtonType.primary
69
- case ButtonType.destructivePrimary:
70
- return ButtonType.destructivePrimary
71
- case ButtonType.destructive:
72
- return ButtonType.destructive
73
- case ButtonType.outline:
74
- return ButtonType.outline
75
- case ButtonType.plain:
76
- return ButtonType.plain
77
- case ButtonType.plainSubtle:
78
- return ButtonType.plainSubtle
79
- default:
80
- return getRightmostSetBitNumber(n)
81
- }
82
- }
83
-
84
- const ButtonBackgroundColorValues = {
85
- [ButtonType.basic]: Actions.Secondary.Default,
86
- [ButtonType.primary]: Actions.Primary.Default,
87
- [ButtonType.destructivePrimary]: Actions.Critical.Default,
88
- [ButtonType.destructive]: 'none',
89
- [ButtonType.outline]: 'none',
90
- [ButtonType.plain]: 'none',
91
- [ButtonType.subtle]: 'none',
92
- [ButtonType.plainSubtle]: 'none',
93
- }
94
-
95
- const ButtonBackgroundColorDisabledValues = {
96
- [ButtonType.basic]: Actions.Secondary.Disabled,
97
- [ButtonType.primary]: Actions.Primary.Disabled,
98
- [ButtonType.destructivePrimary]: Actions.Critical.Disabled,
99
- [ButtonType.destructive]: Actions.Secondary.Disabled,
100
- [ButtonType.outline]: 'none',
101
- [ButtonType.plain]: 'none',
102
- [ButtonType.subtle]: Actions.Secondary.Disabled,
103
- [ButtonType.plainSubtle]: 'none',
104
- }
105
-
106
- const ButtonBackgroundColorHoverValues = {
107
- [ButtonType.basic]: Actions.Secondary.Hover,
108
- [ButtonType.primary]: Actions.Primary.Hover,
109
- [ButtonType.destructivePrimary]: Actions.Critical.Hover,
110
- [ButtonType.destructive]: Actions.Critical.Hover,
111
- [ButtonType.outline]: Actions.Secondary.Hover,
112
- [ButtonType.plain]: '',
113
- [ButtonType.subtle]: Actions.Secondary.Hover,
114
- [ButtonType.plainSubtle]: '',
115
- }
116
-
117
- const ButtonTextDecorationHoverValues = {
118
- [ButtonType.basic]: '',
119
- [ButtonType.primary]: '',
120
- [ButtonType.destructivePrimary]: '',
121
- [ButtonType.destructive]: '',
122
- [ButtonType.outline]: '',
123
- [ButtonType.plain]: 'underline',
124
- [ButtonType.subtle]: '',
125
- [ButtonType.plainSubtle]: 'underline',
126
- }
127
-
128
- const ButtonBackgroundColorPressedValues = {
129
- [ButtonType.basic]: Actions.Secondary.Pressed,
130
- [ButtonType.primary]: Actions.Primary.Pressed,
131
- [ButtonType.destructivePrimary]: Actions.Critical.Pressed,
132
- [ButtonType.destructive]: Actions.Critical.Pressed,
133
- [ButtonType.outline]: Actions.Secondary.Pressed,
134
- [ButtonType.plain]: Actions.Secondary.Hover,
135
- [ButtonType.subtle]: Actions.Secondary.Pressed,
136
- [ButtonType.plainSubtle]: Actions.Secondary.Hover,
137
- }
138
-
139
- const ButtonTextColorValues = {
140
- [ButtonType.basic]: Text.Default,
141
- [ButtonType.primary]: Text.OnPrimary,
142
- [ButtonType.destructivePrimary]: Text.OnCritical,
143
- [ButtonType.destructive]: Text.Default,
144
- [ButtonType.outline]: Text.Default,
145
- [ButtonType.plain]: Interactive.Default.Default,
146
- [ButtonType.subtle]: Text.Default,
147
- [ButtonType.plainSubtle]: Interactive.Subtle.Default,
148
- }
149
-
150
- const IconTextColorValues = {
151
- [ButtonType.basic]: Icons.Default,
152
- [ButtonType.primary]: Icons.OnPrimary,
153
- [ButtonType.destructivePrimary]: Icons.OnCritical,
154
- [ButtonType.destructive]: Icons.Default,
155
- [ButtonType.outline]: Icons.Default,
156
- [ButtonType.plain]: Interactive.Default.Default,
157
- [ButtonType.subtle]: Icons.Default,
158
- [ButtonType.plainSubtle]: Icons.Default,
159
- }
160
-
161
- const ButtonTextColorHoverValues = {
162
- [ButtonType.basic]: Text.Default,
163
- [ButtonType.primary]: Text.OnPrimary,
164
- [ButtonType.destructivePrimary]: Text.OnCritical,
165
- [ButtonType.destructive]: Text.OnCritical,
166
- [ButtonType.outline]: Text.Default,
167
- [ButtonType.plain]: Interactive.Default.Hover,
168
- [ButtonType.subtle]: Text.Default,
169
- [ButtonType.plainSubtle]: Interactive.Subtle.Hover,
170
- }
171
-
172
- const IconColorHoverValues = {
173
- [ButtonType.basic]: Icons.Default,
174
- [ButtonType.primary]: Icons.OnPrimary,
175
- [ButtonType.destructivePrimary]: Icons.OnCritical,
176
- [ButtonType.destructive]: Icons.OnCritical,
177
- [ButtonType.outline]: Icons.Default,
178
- [ButtonType.plain]: Interactive.Default.Hover,
179
- [ButtonType.subtle]: Icons.Default,
180
- [ButtonType.plainSubtle]: Interactive.Subtle.Hover,
181
- }
182
-
183
- const ButtonBorderValues = {
184
- [ButtonType.basic]: `1px solid ${Borders.Default.Default}`,
185
- [ButtonType.primary]: 'none',
186
- [ButtonType.destructivePrimary]: 'none',
187
- [ButtonType.destructive]: `1px solid ${Borders.Default.Default}`,
188
- [ButtonType.outline]: `1px solid ${Borders.Default.Default}`,
189
- [ButtonType.plain]: 'none',
190
- [ButtonType.subtle]: `1px solid ${Borders.Default.Default}`,
191
- [ButtonType.plainSubtle]: 'none',
192
- }
193
-
194
- const ButtonBorderDisabledValues = {
195
- [ButtonType.basic]: `1px solid ${Borders.Default.Subdued}`,
196
- [ButtonType.primary]: 'none',
197
- [ButtonType.destructivePrimary]: 'none',
198
- [ButtonType.destructive]: `1px solid ${Borders.Default.Subdued}`,
199
- [ButtonType.outline]: `1px solid ${Borders.Default.Default}`,
200
- [ButtonType.plain]: 'none',
201
- [ButtonType.subtle]: `1px solid ${Borders.Default.Subdued}`,
202
- [ButtonType.plainSubtle]: 'none',
203
- }
204
-
205
- const ButtonTextColorDisabled = {
206
- [ButtonDisabledType.enabled]: '',
207
- [ButtonDisabledType.disabled]: Text.Light,
208
- }
209
-
210
- const ButtonCursor = {
211
- [ButtonDisabledType.enabled]: 'pointer',
212
- [ButtonDisabledType.disabled]: 'not-allowed',
213
- }
214
-
215
- const ButtonSizeValues = {
216
- [ButtonSize.small]: `${Padding.xxs} ${Padding.s}`,
217
- [ButtonSize.default]: `${Padding.xs} ${Padding.m}`,
218
- [ButtonSize.large]: `${Padding.s} ${Padding.l}`,
219
- }
220
-
221
- const ButtonSizeValuesByType = {
222
- [ButtonType.basic]: '',
223
- [ButtonType.primary]: '',
224
- [ButtonType.destructivePrimary]: '',
225
- [ButtonType.destructive]: '',
226
- [ButtonType.outline]: '',
227
- [ButtonType.plain]: `${Padding.xxxs} ${Padding.xxs}`,
228
- [ButtonType.subtle]: '',
229
- [ButtonType.plainSubtle]: `${Padding.xxxs} ${Padding.xxs}`,
230
- }
231
-
232
- const ButtonTypeValues = {
233
- [ButtonType.basic]: 1,
234
- [ButtonType.primary]: 2,
235
- [ButtonType.destructive]: 4,
236
- [ButtonType.destructivePrimary]: 6,
237
- [ButtonType.outline]: 8,
238
- [ButtonType.plain]: 16,
239
- [ButtonType.subtle]: 32,
240
- [ButtonType.plainSubtle]: 48,
241
- }
242
-
243
- export type ButtonTypeProps = Partial<RequireOnlyOne<ButtonTypes<boolean>>> &
244
- PropsWithChildren
245
-
246
- export type ButtonSizeProps = Partial<RequireOnlyOne<ButtonSizes<boolean>>> &
247
- PropsWithChildren
248
-
249
- export type ButtonDisabledTypeProps = Partial<
250
- RequireOnlyOne<ButtonDisabledTypes<boolean>>
251
- > &
252
- PropsWithChildren
253
-
254
- export function getBackgroundColorByType(type: ButtonType): string {
255
- return ButtonBackgroundColorValues[type]
256
- }
257
-
258
- export function getBackgroundColorHoverByType(type: ButtonType): string {
259
- return ButtonBackgroundColorHoverValues[type]
260
- }
261
-
262
- export function getTextDecorationHoverByType(type: ButtonType): string {
263
- return ButtonTextDecorationHoverValues[type]
264
- }
265
-
266
- export function getBackgroundColorDisabledByType(type: ButtonType): string {
267
- return ButtonBackgroundColorDisabledValues[type]
268
- }
269
-
270
- export function getBackgroundColorPressedByType(type: ButtonType): string {
271
- return ButtonBackgroundColorPressedValues[type]
272
- }
273
-
274
- export function getTextColorByType(type: ButtonType): string {
275
- return ButtonTextColorValues[type]
276
- }
277
-
278
- export function getIconColorByType(type: ButtonType): string {
279
- return IconTextColorValues[type]
280
- }
281
-
282
- export function getTextColorOnHoverByType(type: ButtonType): string {
283
- return ButtonTextColorHoverValues[type]
284
- }
285
-
286
- export function getIconColorOnHoverByType(type: ButtonType): string {
287
- return IconColorHoverValues[type]
288
- }
289
-
290
- export function getBorderByType(type: ButtonType): string {
291
- return ButtonBorderValues[type]
292
- }
293
-
294
- export function getBorderDisabledByType(type: ButtonType): string {
295
- return ButtonBorderDisabledValues[type]
296
- }
297
-
298
- export function getPaddingBySize(props: ButtonSizeProps): string {
299
- return ButtonSizeValues[
300
- toButtonSize(bitwiseOr([props.default, props.small, props.large]))
301
- ]
302
- }
303
-
304
- export function getPaddingByType(type: ButtonType): string {
305
- return ButtonSizeValuesByType[type]
306
- }
307
-
308
- export function getTextColorIfDisabled(props: ButtonDisabledTypeProps): string {
309
- return ButtonTextColorDisabled[
310
- toButtonDisabledType(bitwiseOr([props.enabled, props.disabled]))
311
- ]
312
- }
313
-
314
- export function getCursor(props: ButtonDisabledTypeProps): string {
315
- return ButtonCursor[
316
- toButtonDisabledType(bitwiseOr([props.enabled, props.disabled]))
317
- ]
318
- }
319
-
320
- export function getIsDisabled(props: ButtonDisabledTypeProps): boolean {
321
- return (
322
- toButtonDisabledType(bitwiseOr([props.enabled, props.disabled])) ===
323
- ButtonDisabledType.disabled
324
- )
325
- }
326
-
327
- export function getButtonType(props: ButtonTypeProps) {
328
- return ButtonTypeValues[
329
- toButtonTypes(
330
- bitwiseOr([
331
- props.basic,
332
- props.primary,
333
- props.destructive,
334
- props.outline,
335
- props.plain,
336
- props.subtle,
337
- ])
338
- )
339
- ]
340
- }
@@ -1,77 +0,0 @@
1
- import { Actions } from '@foundations'
2
- import {render, screen } from '@testing-library/react'
3
- import { Button } from './index'
4
-
5
- describe('Button Tests', () => {
6
- describe('ButtonBasic Tests', () => {
7
- it('should render Button with given Text', async () => {
8
- render(
9
- <Button>Test Button</Button>
10
- )
11
-
12
- expect(screen.getByText('Test Button')).toBeInTheDocument()
13
- expect(screen.queryByRole('button')).toBeInTheDocument()
14
- })
15
-
16
- })
17
-
18
- describe('ButtonPrimary Tests', () => {
19
- it('should render Button with given Text', async () => {
20
- render(
21
- <Button primary>Test Button</Button>
22
- )
23
-
24
- expect(screen.getByText('Test Button')).toBeInTheDocument()
25
- expect(screen.queryByRole('button')).toBeInTheDocument()
26
- })
27
-
28
- })
29
-
30
- describe('ButtonDestructive Tests', () => {
31
- it('should render Button with given Text', async () => {
32
- render(
33
- <Button destructive>Test Button</Button>
34
- )
35
-
36
- expect(screen.getByText('Test Button')).toBeInTheDocument()
37
- expect(screen.queryByRole('button')).toBeInTheDocument()
38
- expect(screen.queryByRole('button')).toHaveStyle('background: none')
39
- })
40
-
41
- it('should render Button with given Text', async () => {
42
- render(
43
- <Button destructive primary>Test Button</Button>
44
- )
45
-
46
- expect(screen.getByText('Test Button')).toBeInTheDocument()
47
- expect(screen.queryByRole('button')).toBeInTheDocument()
48
- expect(screen.queryByRole('button')).toHaveStyle(`background: ${Actions.Critical.Default}`)
49
- })
50
-
51
-
52
- })
53
-
54
- describe('ButtonOutline Tests', () => {
55
- it('should render Button with given Text', async () => {
56
- render(
57
- <Button outline>Test Button</Button>
58
- )
59
-
60
- expect(screen.getByText('Test Button')).toBeInTheDocument()
61
- expect(screen.queryByRole('button')).toBeInTheDocument()
62
- })
63
-
64
- })
65
-
66
- describe('ButtonPlain Tests', () => {
67
- it('should render Button with given Text', async () => {
68
- render(
69
- <Button plain>Test Button</Button>
70
- )
71
-
72
- expect(screen.getByText('Test Button')).toBeInTheDocument()
73
- expect(screen.queryByRole('button')).toBeInTheDocument()
74
- })
75
- })
76
-
77
- })