@edvisor/product-language 0.1.0 → 0.1.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 (231) hide show
  1. package/index.d.ts +2 -0
  2. package/index.js +6078 -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 +11 -0
  20. package/lib/components/checkbox/components/components.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/index.d.ts +12 -0
  26. package/lib/components/input-field/components/index.d.ts +2 -0
  27. package/lib/components/input-field/components/labeled-input.d.ts +11 -0
  28. package/lib/components/input-field/components/stepper.d.ts +7 -0
  29. package/lib/components/input-field/index.d.ts +3 -0
  30. package/lib/components/input-field/input-field.d.ts +25 -0
  31. package/lib/components/input-field/input-number.d.ts +18 -0
  32. package/lib/components/input-field/input-text.d.ts +14 -0
  33. package/lib/components/layout/flex.d.ts +16 -0
  34. package/lib/components/layout/grid-layout.d.ts +11 -0
  35. package/lib/components/layout/index.d.ts +3 -0
  36. package/lib/components/layout/left-right-layout.d.ts +70 -0
  37. package/lib/components/link/index.d.ts +1 -0
  38. package/lib/components/link/link.d.ts +14 -0
  39. package/lib/components/molecules/avatar/avatar-size-flags.d.ts +12 -0
  40. package/lib/components/molecules/avatar/avatar.d.ts +12 -0
  41. package/lib/components/molecules/avatar/index.d.ts +1 -0
  42. package/lib/components/molecules/button/button-flags.d.ts +39 -0
  43. package/lib/components/molecules/button/button.d.ts +24 -0
  44. package/lib/components/molecules/button/index.d.ts +1 -0
  45. package/lib/components/molecules/index.d.ts +3 -0
  46. package/lib/components/molecules/input-checkbox/index.d.ts +1 -0
  47. package/lib/components/molecules/input-checkbox/input-checkbox.d.ts +8 -0
  48. package/lib/components/organisms/index.d.ts +1 -0
  49. package/lib/components/organisms/multi-choice-list/index.d.ts +1 -0
  50. package/lib/components/organisms/multi-choice-list/multi-choice-list.d.ts +11 -0
  51. package/lib/components/spinner/index.d.ts +1 -0
  52. package/lib/components/spinner/spinner-size-flags.d.ts +10 -0
  53. package/lib/components/spinner/spinner.d.ts +9 -0
  54. package/lib/components/thumbnail/index.d.ts +1 -0
  55. package/lib/components/thumbnail/thumbnail-size-flags.d.ts +10 -0
  56. package/lib/components/thumbnail/thumbnail.d.ts +9 -0
  57. package/lib/components/typography/index.d.ts +1 -0
  58. package/lib/components/typography/typography.d.ts +23 -0
  59. package/lib/foundations/color-system/base-palette/base-palette.d.ts +77 -0
  60. package/lib/foundations/color-system/base-palette/index.d.ts +1 -0
  61. package/lib/foundations/color-system/color-guidelines/color-guidelines.d.ts +131 -0
  62. package/lib/foundations/color-system/color-guidelines/index.d.ts +1 -0
  63. package/lib/foundations/color-system/components/color-sample.d.ts +17 -0
  64. package/lib/foundations/color-system/components/index.d.ts +1 -0
  65. package/lib/foundations/color-system/index.d.ts +1 -0
  66. package/lib/foundations/index.d.ts +4 -0
  67. package/lib/foundations/shadows/components.d.ts +8 -0
  68. package/lib/foundations/shadows/index.d.ts +1 -0
  69. package/lib/foundations/shadows/shadows.d.ts +8 -0
  70. package/lib/foundations/spacing/index.d.ts +1 -0
  71. package/lib/foundations/spacing/spacing-guidelines.d.ts +22 -0
  72. package/lib/foundations/spacing/spacing.d.ts +18 -0
  73. package/lib/foundations/typography/constants.d.ts +22 -0
  74. package/lib/foundations/typography/index.d.ts +1 -0
  75. package/lib/foundations/typography/text-aspect-flags.d.ts +14 -0
  76. package/lib/foundations/typography/typography.d.ts +19 -0
  77. package/lib/helpers/generic-types.d.ts +21 -0
  78. package/lib/helpers/index.d.ts +6 -0
  79. package/lib/helpers/nothing.d.ts +8 -0
  80. package/{src/lib/helpers/numbers.ts → lib/helpers/numbers.d.ts} +41 -53
  81. package/lib/helpers/safe-navigation.d.ts +14 -0
  82. package/lib/helpers/slots.d.ts +8 -0
  83. package/lib/helpers/strings.d.ts +1 -0
  84. package/package.json +12 -22
  85. package/release-it.json +18 -0
  86. package/.babelrc +0 -12
  87. package/.eslintrc.json +0 -139
  88. package/.storybook/main.js +0 -57
  89. package/.storybook/manager.js +0 -7
  90. package/.storybook/preview-head.html +0 -1
  91. package/.storybook/preview.js +0 -15
  92. package/.storybook/tsconfig.json +0 -30
  93. package/jest.config.ts +0 -15
  94. package/jest.setup.ts +0 -2
  95. package/project.json +0 -75
  96. package/src/assets/svg/example_icon.svg +0 -3
  97. package/src/assets/svg/example_icon_white.svg +0 -3
  98. package/src/assets/svg/spinner.svg +0 -3
  99. package/src/assets/svg/spinner_white.svg +0 -3
  100. package/src/helpers/index.ts +0 -3
  101. package/src/helpers/talesOf.tsx +0 -42
  102. package/src/index.ts +0 -2
  103. package/src/lib/components/README.md +0 -49
  104. package/src/lib/components/alert-banner/alert-banner.tsx +0 -34
  105. package/src/lib/components/alert-banner/alert-level-flags.ts +0 -77
  106. package/src/lib/components/alert-banner/index.ts +0 -1
  107. package/src/lib/components/badge/badge-type-flags.ts +0 -72
  108. package/src/lib/components/badge/badge.stories.tsx +0 -16
  109. package/src/lib/components/badge/badge.test.tsx +0 -29
  110. package/src/lib/components/badge/badge.tsx +0 -31
  111. package/src/lib/components/badge/index.ts +0 -1
  112. package/src/lib/components/card/atoms/index.ts +0 -1
  113. package/src/lib/components/card/card.test.tsx +0 -163
  114. package/src/lib/components/card/card.tsx +0 -78
  115. package/src/lib/components/card/components/card-alert-banner-slot.tsx +0 -16
  116. package/src/lib/components/card/components/card-controls-slot.tsx +0 -19
  117. package/src/lib/components/card/components/card-section-slot.tsx +0 -51
  118. package/src/lib/components/card/components/index.ts +0 -3
  119. package/src/lib/components/card/index.ts +0 -2
  120. package/src/lib/components/card/molecules/index.ts +0 -1
  121. package/src/lib/components/card/molecules/left-right-card.test.tsx +0 -89
  122. package/src/lib/components/card/molecules/left-right-card.tsx +0 -63
  123. package/src/lib/components/card/storybook/card.stories.mdx +0 -100
  124. package/src/lib/components/card/storybook/components.tsx +0 -240
  125. package/src/lib/components/checkbox/checkbox.test.tsx +0 -39
  126. package/src/lib/components/checkbox/checkbox.tsx +0 -124
  127. package/src/lib/components/checkbox/components/components.tsx +0 -59
  128. package/src/lib/components/checkbox/index.tsx +0 -1
  129. package/src/lib/components/checkbox/stories/checkbox.stories.mdx +0 -54
  130. package/src/lib/components/checkbox/stories/components.tsx +0 -36
  131. package/src/lib/components/checkbox/stories/index.tsx +0 -1
  132. package/src/lib/components/divider/divider-type-flags.tsx +0 -37
  133. package/src/lib/components/divider/divider.test.tsx +0 -34
  134. package/src/lib/components/divider/divider.tsx +0 -37
  135. package/src/lib/components/divider/index.tsx +0 -1
  136. package/src/lib/components/divider/stories/components.tsx +0 -13
  137. package/src/lib/components/divider/stories/divider.stories.mdx +0 -50
  138. package/src/lib/components/index.ts +0 -14
  139. package/src/lib/components/input-field/components/index.ts +0 -2
  140. package/src/lib/components/input-field/components/labeled-input.tsx +0 -61
  141. package/src/lib/components/input-field/components/stepper.tsx +0 -59
  142. package/src/lib/components/input-field/index.ts +0 -6
  143. package/src/lib/components/input-field/input-field.test.tsx +0 -108
  144. package/src/lib/components/input-field/input-field.tsx +0 -126
  145. package/src/lib/components/input-field/input-number.tsx +0 -41
  146. package/src/lib/components/input-field/input-text.tsx +0 -30
  147. package/src/lib/components/input-field/storybook/components.tsx +0 -334
  148. package/src/lib/components/input-field/storybook/input-field.stories.mdx +0 -113
  149. package/src/lib/components/layout/flex.tsx +0 -22
  150. package/src/lib/components/layout/grid-layout.tsx +0 -40
  151. package/src/lib/components/layout/index.ts +0 -3
  152. package/src/lib/components/layout/left-right-layout.tsx +0 -67
  153. package/src/lib/components/link/index.ts +0 -1
  154. package/src/lib/components/link/link.test.tsx +0 -29
  155. package/src/lib/components/link/link.tsx +0 -56
  156. package/src/lib/components/link/storybook/link.stories.mdx +0 -51
  157. package/src/lib/components/molecules/avatar/avatar-size-flags.tsx +0 -55
  158. package/src/lib/components/molecules/avatar/avatar.test.tsx +0 -114
  159. package/src/lib/components/molecules/avatar/avatar.tsx +0 -80
  160. package/src/lib/components/molecules/avatar/index.tsx +0 -1
  161. package/src/lib/components/molecules/avatar/stories/avatar.stories.mdx +0 -55
  162. package/src/lib/components/molecules/avatar/stories/components.tsx +0 -36
  163. package/src/lib/components/molecules/button/button-flags.tsx +0 -235
  164. package/src/lib/components/molecules/button/button.test.tsx +0 -77
  165. package/src/lib/components/molecules/button/button.tsx +0 -231
  166. package/src/lib/components/molecules/button/index.tsx +0 -1
  167. package/src/lib/components/molecules/button/stories/button.stories.mdx +0 -104
  168. package/src/lib/components/molecules/button/stories/components.tsx +0 -86
  169. package/src/lib/components/molecules/index.ts +0 -3
  170. package/src/lib/components/molecules/input-checkbox/index.tsx +0 -1
  171. package/src/lib/components/molecules/input-checkbox/input-checkbox.test.tsx +0 -34
  172. package/src/lib/components/molecules/input-checkbox/input-checkbox.tsx +0 -50
  173. package/src/lib/components/molecules/input-checkbox/stories/components.tsx +0 -36
  174. package/src/lib/components/molecules/input-checkbox/stories/index.tsx +0 -1
  175. package/src/lib/components/molecules/input-checkbox/stories/input-checkbox.stories.mdx +0 -51
  176. package/src/lib/components/organisms/index.ts +0 -1
  177. package/src/lib/components/organisms/multi-choice-list/index.tsx +0 -1
  178. package/src/lib/components/organisms/multi-choice-list/multi-choice-list.test.tsx +0 -33
  179. package/src/lib/components/organisms/multi-choice-list/multi-choice-list.tsx +0 -53
  180. package/src/lib/components/organisms/multi-choice-list/stories/components.tsx +0 -126
  181. package/src/lib/components/organisms/multi-choice-list/stories/index.tsx +0 -1
  182. package/src/lib/components/organisms/multi-choice-list/stories/multi-choice-list.stories.mdx +0 -99
  183. package/src/lib/components/spinner/index.tsx +0 -1
  184. package/src/lib/components/spinner/spinner-size-flags.tsx +0 -39
  185. package/src/lib/components/spinner/spinner.test.tsx +0 -31
  186. package/src/lib/components/spinner/spinner.tsx +0 -67
  187. package/src/lib/components/spinner/stories/components.tsx +0 -8
  188. package/src/lib/components/spinner/stories/spinner.stories.mdx +0 -42
  189. package/src/lib/components/thumbnail/index.tsx +0 -1
  190. package/src/lib/components/thumbnail/stories/thumbnail.stories.mdx +0 -34
  191. package/src/lib/components/thumbnail/thumbnail-size-flags.tsx +0 -41
  192. package/src/lib/components/thumbnail/thumbnail.test.tsx +0 -51
  193. package/src/lib/components/thumbnail/thumbnail.tsx +0 -40
  194. package/src/lib/components/typography/index.ts +0 -1
  195. package/src/lib/components/typography/storybook/components.tsx +0 -256
  196. package/src/lib/components/typography/storybook/typography.stories.mdx +0 -88
  197. package/src/lib/components/typography/typography.test.tsx +0 -93
  198. package/src/lib/components/typography/typography.tsx +0 -57
  199. package/src/lib/foundations/color-system/base-palette/base-palette.stories.tsx +0 -123
  200. package/src/lib/foundations/color-system/base-palette/base-palette.ts +0 -94
  201. package/src/lib/foundations/color-system/base-palette/index.ts +0 -1
  202. package/src/lib/foundations/color-system/color-guidelines/color-guidelines.stories.mdx +0 -85
  203. package/src/lib/foundations/color-system/color-guidelines/color-guidelines.stories.tsx +0 -231
  204. package/src/lib/foundations/color-system/color-guidelines/color-guidelines.ts +0 -159
  205. package/src/lib/foundations/color-system/color-guidelines/index.ts +0 -1
  206. package/src/lib/foundations/color-system/components/color-sample.tsx +0 -99
  207. package/src/lib/foundations/color-system/components/index.ts +0 -1
  208. package/src/lib/foundations/color-system/index.ts +0 -1
  209. package/src/lib/foundations/index.ts +0 -4
  210. package/src/lib/foundations/shadows/components.tsx +0 -59
  211. package/src/lib/foundations/shadows/index.ts +0 -1
  212. package/src/lib/foundations/shadows/shadows.stories.mdx +0 -71
  213. package/src/lib/foundations/shadows/shadows.tsx +0 -47
  214. package/src/lib/foundations/spacing/index.ts +0 -1
  215. package/src/lib/foundations/spacing/spacing-guidelines.ts +0 -24
  216. package/src/lib/foundations/spacing/spacing.stories.mdx +0 -51
  217. package/src/lib/foundations/spacing/spacing.ts +0 -18
  218. package/src/lib/foundations/typography/constants.ts +0 -25
  219. package/src/lib/foundations/typography/index.tsx +0 -1
  220. package/src/lib/foundations/typography/text-aspect-flags.ts +0 -54
  221. package/src/lib/foundations/typography/typography.tsx +0 -97
  222. package/src/lib/helpers/generic-types.ts +0 -44
  223. package/src/lib/helpers/index.ts +0 -6
  224. package/src/lib/helpers/nothing.tsx +0 -18
  225. package/src/lib/helpers/safe-navigation.ts +0 -34
  226. package/src/lib/helpers/slots.tsx +0 -76
  227. package/src/lib/helpers/strings.test.ts +0 -47
  228. package/src/lib/helpers/strings.ts +0 -16
  229. package/tsconfig.json +0 -35
  230. package/tsconfig.lib.json +0 -28
  231. package/tsconfig.spec.json +0 -21
@@ -1,59 +0,0 @@
1
- import styled from 'styled-components'
2
- import { Surface } from '../color-system'
3
- import { Padding } from '../spacing'
4
- import {
5
- shadowSm,
6
- shadow,
7
- shadowMd,
8
- shadowLg,
9
- shadowXl,
10
- shadow2Xl,
11
- shadowInner,
12
- } from './shadows'
13
-
14
- const Container = styled.div`
15
- width: 128px;
16
- height: 128px;
17
- background: ${Surface.Default};
18
- display: flex;
19
- flex-direction: row;
20
- justify-content: center;
21
- align-items: center;
22
- padding: ${Padding.none};
23
- `
24
-
25
- const ShadowSm = styled(Container)`
26
- ${shadowSm}
27
- `
28
- const Shadow = styled(Container)`
29
- ${shadow}
30
- `
31
-
32
- const ShadowMd = styled(Container)`
33
- ${shadowMd}
34
- `
35
- const ShadowLg = styled(Container)`
36
- ${shadowLg}
37
- `
38
-
39
- const ShadowXl = styled(Container)`
40
- ${shadowXl}
41
- `
42
-
43
- const Shadow2Xl = styled(Container)`
44
- ${shadow2Xl}
45
- `
46
-
47
- const ShadowInner = styled(Container)`
48
- ${shadowInner}
49
- `
50
-
51
- export {
52
- ShadowSm,
53
- Shadow,
54
- ShadowLg,
55
- ShadowMd,
56
- ShadowXl,
57
- Shadow2Xl,
58
- ShadowInner,
59
- }
@@ -1 +0,0 @@
1
- export * from './shadows'
@@ -1,71 +0,0 @@
1
- import { Canvas, Meta } from '@storybook/addon-docs';
2
- import {
3
- ShadowSm,
4
- Shadow,
5
- Shadow2Xl,
6
- ShadowInner,
7
- ShadowMd,
8
- ShadowLg,
9
- ShadowXl
10
- } from './components'
11
-
12
- <Meta title="Foundations/Shadows"/>
13
-
14
- # Shadows
15
-
16
- For more details, check out the guidelines on [Figma](https://www.figma.com/file/ue1CurHfZ426o2T2l8Dk64/UI-Library-(in-progress)?node-id=743%3A7913)
17
-
18
- ## How to use
19
-
20
- ```javascript
21
- // Import the shadow that we'd like to use.
22
- import {
23
- shadowSm,
24
- } from './shadows';
25
-
26
- import styled from 'styled-components';
27
-
28
- // Add them to the styled strucute that you'd like to add the shadow
29
- const ShadowSm = styled.div`
30
- ${shadowSm}
31
- `
32
- ```
33
-
34
- ## Examples
35
-
36
- <Canvas>
37
- <ShadowSm>
38
- .shadow-sm
39
- </ShadowSm>
40
- <Shadow>
41
- .shadow
42
- </Shadow>
43
- <ShadowMd>
44
- .shadow-md
45
- </ShadowMd>
46
- <ShadowLg>
47
- .shadow-lg
48
- </ShadowLg>
49
- <ShadowXl>
50
- .shadow-xl
51
- </ShadowXl>
52
- <Shadow2Xl>
53
- .shadow-2xl
54
- </Shadow2Xl>
55
- <ShadowInner>
56
- .shadow-inner
57
- </ShadowInner>
58
- </Canvas>
59
-
60
- ## List of Values
61
-
62
- | Name |
63
- | ---- |
64
- | `shadowSm` |
65
- | `shadow` |
66
- | `shadowMd` |
67
- | `shadowLg` |
68
- | `shadowXl` |
69
- | `shadow2Xl` |
70
- | `shadowInner` |
71
-
@@ -1,47 +0,0 @@
1
- import { css } from 'styled-components'
2
-
3
- const shadowSm = css`
4
- box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05);
5
- border-radius: 6px;
6
- `
7
-
8
- const shadow = css`
9
- box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1), 0px 1px 2px rgba(0, 0, 0, 0.06);
10
- border-radius: 6px;
11
- `
12
-
13
- const shadowMd = css`
14
- box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.1);
15
- border-radius: 6px;
16
- `
17
-
18
- const shadowLg = css`
19
- box-shadow: 0px 10px 15px -3px rgba(0, 0, 0, 0.1), 0px 4px 6px -2px rgba(0, 0, 0, 0.05);
20
- border-radius: 6px;
21
- `
22
-
23
- const shadowXl = css`
24
- box-shadow: 0px 20px 25px -5px rgba(0, 0, 0, 0.1), 0px 10px 10px -5px rgba(0, 0, 0, 0.04);
25
- border-radius: 6px;
26
- `
27
-
28
- const shadow2Xl = css`
29
- box-shadow: 0px 25px 50px -12px rgba(0, 0, 0, 0.25);
30
- border-radius: 6px;
31
- `
32
-
33
- const shadowInner = css`
34
- box-shadow: inset 0px 2px 4px rgba(0, 0, 0, 0.06);
35
- border-radius: 6px;
36
- `
37
-
38
- export {
39
- shadowSm,
40
- shadow,
41
- shadowMd,
42
- shadowLg,
43
- shadowXl,
44
- shadow2Xl,
45
- shadowInner,
46
- }
47
-
@@ -1 +0,0 @@
1
- export * from './spacing-guidelines'
@@ -1,24 +0,0 @@
1
- import { SPACING } from './spacing'
2
-
3
- export const Padding = {
4
- none: 0,
5
- xxxs: SPACING.Size2,
6
- xxs: SPACING.Size4,
7
- xs: SPACING.Size8,
8
- s: SPACING.Size12,
9
- m: SPACING.Size16,
10
- l: SPACING.Size24,
11
- xl: SPACING.Size32,
12
- } as const
13
-
14
- export const Margin = {
15
- none: 0,
16
- xxxs: SPACING.Size2,
17
- xxs: SPACING.Size4,
18
- xs: SPACING.Size8,
19
- s: SPACING.Size12,
20
- m: SPACING.Size16,
21
- l: SPACING.Size24,
22
- xl: SPACING.Size32,
23
- xxl: SPACING.Size64,
24
- } as const
@@ -1,51 +0,0 @@
1
- import { Meta, Description } from '@storybook/addon-docs';
2
-
3
-
4
- <Meta title="Foundations/Spacing" />
5
-
6
- # Spacing System
7
-
8
- All spacing for components and typography is done in increments of 8 pixels.
9
- This forms the basic unit of measurement for spacing.
10
-
11
- For more details, check out the guidelines on [Figma](https://www.figma.com/file/ue1CurHfZ426o2T2l8Dk64/UI-Library-(in-progress)?node-id=388%3A364)
12
-
13
- ## How to use
14
-
15
- ```javascript
16
- import SPACING from './spacing'
17
-
18
- //get the token value
19
- SPACING.[`YOUR-VALUE-HERE`]
20
- ```
21
-
22
- ## When to use
23
-
24
- You can set this values from this props:
25
-
26
- - width
27
- - heigth
28
- - margin
29
- - padding
30
-
31
-
32
- ## List of Values
33
-
34
- | Name | Value |
35
- | ---- | ----- |
36
- | `Size2` | 2px|
37
- | `Size4` | 4px|
38
- | `Size8` | 8px|
39
- | `Size12` | 12px|
40
- | `Size16` | 16px|
41
- | `Size24` | 24px|
42
- | `Size32` | 32px|
43
- | `Size64` | 64px|
44
- | `Size96` | 96px|
45
- | `Size128` | 128px|
46
- | `Size192` | 192px|
47
- | `Size256` | 256px|
48
- | `Size384` | 384px|
49
- | `Size512` | 512px|
50
- | `Size640` | 640px|
51
- | `Size768` | 768px|
@@ -1,18 +0,0 @@
1
- export enum SPACING {
2
- Size2 = '2px',
3
- Size4 = '4px',
4
- Size8 = '8px',
5
- Size12 = '12px',
6
- Size16 = '16px',
7
- Size24 = '24px',
8
- Size32 = '32px',
9
- Size64 = '64px',
10
- Size96 = '96px',
11
- Size128 = '128px',
12
- Size192 = '192px',
13
- Size256 = '256px',
14
- Size384 = '384px',
15
- Size512 = '512px',
16
- Size640 = '640px',
17
- Size768 = '768px',
18
- }
@@ -1,25 +0,0 @@
1
-
2
- export const enum FontWeight {
3
- Regular = '400',
4
- Medium = '500',
5
- SemiBold = '600',
6
- }
7
-
8
- export const FontSize = {
9
- a: '13px',
10
- b: '14px',
11
- c: '16px',
12
- d: '18px',
13
- e: '20px',
14
- f: '28px',
15
- g: '36px',
16
- } as const
17
-
18
- export const LineHeight = {
19
- a: '16px',
20
- b: '20px',
21
- c: '24px',
22
- d: '28px',
23
- e: '32px',
24
- f: '44px',
25
- } as const
@@ -1 +0,0 @@
1
- export * from './typography'
@@ -1,54 +0,0 @@
1
- import { bitwiseOr, MappedEnum, PropsWithChildren, RequireOnlyOne } from '@helpers'
2
- import { Text } from '../color-system'
3
-
4
- export const enum TextAspects {
5
- default = 1,
6
- subdued = 2,
7
- light = 4,
8
- critical = 8,
9
- success = 16,
10
- onPrimary = 32,
11
- onCritical = 64,
12
- }
13
-
14
- type TextOptions<T> = MappedEnum<typeof TextAspects, T>
15
-
16
- function toTextAspect(n: number): TextAspects {
17
- switch (n) {
18
- case TextAspects.subdued: return TextAspects.subdued
19
- case TextAspects.light: return TextAspects.light
20
- case TextAspects.critical: return TextAspects.critical
21
- case TextAspects.success: return TextAspects.success
22
- case TextAspects.onPrimary: return TextAspects.onPrimary
23
- case TextAspects.onCritical: return TextAspects.onCritical
24
- default: return TextAspects.default
25
- }
26
- }
27
-
28
- const TextAspectColors = {
29
- [TextAspects.default]: Text.Default,
30
- [TextAspects.subdued]: Text.Subdued,
31
- [TextAspects.light]: Text.Light,
32
- [TextAspects.onPrimary]: Text.OnPrimary,
33
- [TextAspects.onCritical]: Text.OnPrimary,
34
- [TextAspects.success]: Text.Success,
35
- [TextAspects.critical]: Text.Critical,
36
- }
37
-
38
- export type ITextAspectProps = Partial<RequireOnlyOne<TextOptions<boolean>>> & PropsWithChildren
39
-
40
- export function getTextAspect(props: ITextAspectProps) {
41
- return TextAspectColors[
42
- toTextAspect(
43
- bitwiseOr([
44
- props.default,
45
- props.subdued,
46
- props.light,
47
- props.critical,
48
- props.success,
49
- props.onPrimary,
50
- props.onCritical,
51
- ])
52
- )
53
- ]
54
- }
@@ -1,97 +0,0 @@
1
- import { css } from 'styled-components'
2
- import { getTextAspect, ITextAspectProps } from './text-aspect-flags'
3
- import { FontWeight, FontSize, LineHeight } from './constants'
4
- import { is } from '@helpers'
5
-
6
- export type ITextProps = ITextAspectProps & { emphasis?: boolean }
7
-
8
- const LightText = css`
9
- color: ${getTextAspect({ light: true })};
10
- `
11
-
12
- const Base = css<ITextProps>`
13
- color: ${(props) => getTextAspect(props)};
14
- font-family: 'Inter';
15
- `
16
-
17
- const Display = css<ITextProps>`
18
- ${Base}
19
- font-weight: ${FontWeight.Regular};
20
- font-size: ${FontSize.g};
21
- line-height: ${LineHeight.f};
22
- `
23
-
24
- const Heading1 = css<ITextProps>`
25
- ${Base}
26
- font-weight: ${FontWeight.SemiBold};
27
- font-size: ${FontSize.f};
28
- line-height: ${LineHeight.e};
29
- `
30
-
31
- const Heading2 = css<ITextProps>`
32
- ${Heading1}
33
- font-size: ${FontSize.e};
34
- line-height: ${LineHeight.d};
35
- `
36
-
37
- const Heading3 = css<ITextProps>`
38
- ${Heading1}
39
- font-size: ${FontSize.c};
40
- line-height: ${LineHeight.c};
41
- `
42
-
43
- const Heading4 = css<ITextProps>`
44
- ${Heading1}
45
- font-size: ${FontSize.b};
46
- line-height: ${LineHeight.b};
47
- `
48
-
49
- const BodyLarge = css<ITextProps>`
50
- ${Base}
51
- font-weight: ${({ emphasis }) => is(emphasis) ? FontWeight.SemiBold : FontWeight.Regular};
52
- font-size: ${FontSize.d};
53
- line-height: ${LineHeight.d};
54
- `
55
-
56
- const Body = css<ITextProps>`
57
- ${BodyLarge}
58
- font-weight: ${({ emphasis }) => is(emphasis) ? FontWeight.Medium : FontWeight.Regular};
59
- font-size: ${FontSize.b};
60
- line-height: ${LineHeight.b};
61
- `
62
-
63
- const Caption = css<ITextProps>`
64
- ${BodyLarge}
65
- font-size: ${FontSize.a};
66
- line-height: ${LineHeight.a};
67
- `
68
-
69
- const Label1 = css<ITextProps>`
70
- ${BodyLarge}
71
- font-weight: ${({ emphasis }) => is(emphasis) ? FontWeight.Medium : FontWeight.Regular};
72
- font-size: ${FontSize.b};
73
- line-height: ${LineHeight.b};
74
- `
75
-
76
- const Label2 = css<ITextProps>`
77
- ${BodyLarge}
78
- font-size: ${FontSize.a};
79
- line-height: ${LineHeight.a};
80
- `
81
-
82
- export const Typography = {
83
- Display,
84
- Heading1,
85
- Heading2,
86
- Heading3,
87
- Heading4,
88
- BodyLarge,
89
- Body,
90
- Caption,
91
- Label1,
92
- Label2,
93
- }
94
-
95
- export const _Typography = {
96
- LightText,
97
- }
@@ -1,44 +0,0 @@
1
- // eslint-disable-next-line no-restricted-syntax
2
- import React, { FC as FunctionComponent, ForwardRefExoticComponent, ForwardRefRenderFunction, PropsWithChildren as PWC, PropsWithoutRef, RefAttributes } from 'react'
3
- import { Slot } from './slots'
4
-
5
- /** @see https://stackoverflow.com/a/49725198/29182 */
6
- export type RequireOnlyOne<T, Keys extends keyof T = keyof T> = Pick<
7
- T,
8
- Exclude<keyof T, Keys>
9
- > &
10
- {
11
- [K in Keys]-?: Required<Pick<T, K>> &
12
- Partial<Record<Exclude<Keys, K>, undefined>>;
13
- }[Keys];
14
-
15
- export type MappedEnum<E, T> = {
16
- [key in keyof E]: T;
17
- }
18
-
19
- export type Values<T> = T[keyof T];
20
-
21
- export type PropsWithChildren<T = unknown> = PWC<T>
22
-
23
- // Our FC type adds the ability to specify sub-components such as Slots
24
- // also, just good to wrap imports from 3rd parties in general
25
- export type FC<
26
- // eslint-disable-next-line @typescript-eslint/ban-types
27
- P = {},
28
- // eslint-disable-next-line @typescript-eslint/ban-types
29
- E extends { [x: symbol]: FunctionComponent<PropsWithChildren> | typeof Slot } = {}
30
- > = FunctionComponent<P>
31
- & {
32
- [key in keyof E]: E[key]
33
- }
34
-
35
- // eslint-disable-next-line @typescript-eslint/ban-types
36
- type ExtensibleForwardRef<T, P = {}, E = {}> = ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<T>>
37
- & {
38
- [key in keyof E]: E[key]
39
- }
40
-
41
- // eslint-disable-next-line @typescript-eslint/ban-types
42
- export function forwardRef<T, P = {}, E = {}>(render: ForwardRefRenderFunction<T, P>): ExtensibleForwardRef<T, P, E> {
43
- return React.forwardRef(render) as ExtensibleForwardRef<T, P, E>
44
- }
@@ -1,6 +0,0 @@
1
- export * from './safe-navigation'
2
- export * from './slots'
3
- export * from './generic-types'
4
- export * from './numbers'
5
- export * from './nothing'
6
- export * from './strings'
@@ -1,18 +0,0 @@
1
- import { FC, PropsWithChildren } from './generic-types'
2
- import { isDefined } from './safe-navigation'
3
-
4
- // eslint-disable-next-line no-null/no-null
5
- export const Nothing: FC = () => null
6
-
7
- export function maybeRender<T>(prop: T, JSX: JSX.Element) {
8
- return isDefined(prop) && Boolean(prop) ? JSX : <Nothing />
9
- }
10
-
11
- interface IIfProps {
12
- is: unknown
13
- }
14
-
15
- export const If: FC<PropsWithChildren<IIfProps>> = (props) => {
16
- // eslint-disable-next-line react/jsx-no-useless-fragment
17
- return maybeRender(props.is, <>{props.children}</>)
18
- }
@@ -1,34 +0,0 @@
1
-
2
- /** even though we have null disabled in the repo,
3
- * I still would not want isNil to skip checking null
4
- * it is for juuuuust in case a third party sends us a null
5
- * or something, and the types are not correct
6
- */
7
-
8
- /* eslint-disable no-null/no-null */
9
- /* eslint-disable @typescript-eslint/ban-types */
10
-
11
- export function isNil<T>(value: T | undefined | null): value is undefined | null {
12
- return value === null || value === undefined
13
- }
14
-
15
- export function isDefined<T>(value: T | undefined | null): value is T {
16
- return !isNil(value)
17
- }
18
-
19
- export function defaultTo<T>(value: T | undefined | null, fallback: T): T {
20
- return isDefined(value) ? value : fallback
21
- }
22
-
23
- export function isEmpty<T extends { length: number }>(obj: T) {
24
- return obj.length < 1
25
- }
26
-
27
- /** used for evaluating tri-state logic (true | false | undefined) */
28
- export function is (pred?: boolean): boolean {
29
- return isDefined(pred) && pred
30
- }
31
-
32
- export function safeArray<T>(arr: T[] | undefined | null): T[] {
33
- return isDefined(arr) ? arr : []
34
- }
@@ -1,76 +0,0 @@
1
- import { Children, PureComponent, ReactElement, ReactNode } from 'react'
2
- import { PropsWithChildren } from './generic-types'
3
- import { isDefined, isNil } from './safe-navigation'
4
-
5
- /**
6
- * @TODO these aren't quiiiiite right
7
- *
8
- * They all say they return ReactNode but I feel like JSX.Element or something
9
- * is more accurate? The child type needs to include _anything react can render_
10
- * but it should also allow the caller to cloneElement on the results so that
11
- * they can do stuff like
12
- *
13
- * const sections = getSlots(Section, children)
14
- * .map((el, i) => i === 0 ? cloneElement(el, { first: true }) : el)
15
- *
16
- * Right? I want this...
17
- * */
18
-
19
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
- function isReactElement (obj?: any): obj is ReactElement {
21
- // eslint-disable-next-line no-prototype-builtins
22
- return isDefined(obj) && obj.hasOwnProperty('type')
23
- }
24
-
25
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
- const isSlotOfType = <T extends typeof Slot>(type: T) => (obj?: any): obj is T => {
27
- return isDefined(obj) && isReactElement(obj) && (Object.getPrototypeOf(obj.type) === type || obj.type === type)
28
- }
29
-
30
- const findSlotByType = <T extends typeof Slot>(type: T, children?: ReactNode): ReactNode => {
31
- return Children.toArray(children).find(isSlotOfType(type))
32
- }
33
-
34
- const filterSlotByType = <T extends typeof Slot>(type: T, children?: ReactNode): ReactNode[] => {
35
- return Children.toArray(children).filter(isSlotOfType(type))
36
- }
37
-
38
- export class Slot<T = unknown> extends PureComponent<PropsWithChildren<T>> {
39
- override render () {
40
- return this.props.children
41
- }
42
- }
43
-
44
- export function getChildren(children?: ReactNode): ReactNode[] {
45
- return Children.toArray(children).filter((child) => !isSlotOfType(Slot)(child))
46
- }
47
-
48
- export function getSlots<T extends typeof Slot>(slot: T, children?: ReactNode): ReactNode[] {
49
- const result = filterSlotByType(slot, children)
50
-
51
- if (isNil(result)) {
52
- return []
53
- }
54
-
55
- return result
56
- }
57
-
58
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
59
- function hasProps (obj: any): obj is { props: { children: ReactNode }} {
60
- // eslint-disable-next-line no-prototype-builtins
61
- return isDefined(obj) && obj.hasOwnProperty('props')
62
- }
63
-
64
- export function getSlot<T extends typeof Slot>(slot: T, children?: ReactNode): ReactNode {
65
- const result = findSlotByType(slot, children)
66
-
67
- if (isNil(result)) {
68
- return undefined
69
- }
70
-
71
- if (hasProps(result)) {
72
- return result
73
- }
74
-
75
- return result
76
- }
@@ -1,47 +0,0 @@
1
- import { toKebabCase } from './strings'
2
-
3
- describe('strings', () => {
4
- describe('toKebabCase', () => {
5
- it('sends camel case to kebab case', () => {
6
- const result = toKebabCase('helloMyFriends')
7
-
8
- expect(result).toBe('hello-my-friends')
9
- })
10
-
11
- it('sends leading caps to kebab case', () => {
12
- const result = toKebabCase('HelloMyFriends')
13
-
14
- expect(result).toBe('hello-my-friends')
15
- })
16
-
17
- it('respects numbers', () => {
18
- const result = toKebabCase('Section1IsGood')
19
-
20
- expect(result).toBe('section-1-is-good')
21
- })
22
-
23
- it('respects leading and trailing numbers', () => {
24
- const result = toKebabCase('1Section1')
25
-
26
- expect(result).toBe('1-section-1')
27
- })
28
-
29
- it('removes non-alphanumeric characters, such as whitespace and punctuation', () => {
30
- const result = toKebabCase('Help Text. Lorem Ipsum')
31
-
32
- expect(result).toBe('help-text-lorem-ipsum')
33
- })
34
-
35
- it('removes leading and trailing nonsense', () => {
36
- const result = toKebabCase('__Foo_Bar__')
37
-
38
- expect(result).toBe('foo-bar')
39
- })
40
-
41
- it('removes leading and trailing whitespace', () => {
42
- const result = toKebabCase(' . Foo_Bar_ _ . ')
43
-
44
- expect(result).toBe('foo-bar')
45
- })
46
- })
47
- })