@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,157 +0,0 @@
1
- import { Children, CSSProperties, PureComponent, ReactElement, ReactNode } from 'react'
2
- import { StyledComponent } from 'styled-components'
3
- import { FC, PropsWithChildren } from './generic-types'
4
- import { Nothing } from './nothing'
5
- import { isDefined, isNil } from './safe-navigation'
6
-
7
- /**
8
- * @TODO these aren't quiiiiite right
9
- *
10
- * They all say they return ReactNode but I feel like JSX.Element or something
11
- * is more accurate? The child type needs to include _anything react can render_
12
- * but it should also allow the caller to cloneElement on the results so that
13
- * they can do stuff like
14
- *
15
- * const sections = getSlots(Section, children)
16
- * .map((el, i) => i === 0 ? cloneElement(el, { first: true }) : el)
17
- *
18
- * Right? I want this...
19
- * */
20
-
21
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
- function isReactElement (obj?: any): obj is ReactElement {
23
- // eslint-disable-next-line no-prototype-builtins
24
- return isDefined(obj) && obj.hasOwnProperty('type')
25
- }
26
-
27
- export const isReactElementOfType =
28
- <P extends PropsWithChildren>(
29
- // eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any
30
- component: (StyledComponent<FC<P>, any> | FC<P> | typeof Slot) & {
31
- // eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any
32
- target?: any
33
- }
34
- ) =>
35
- // eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any
36
- (element?: any): element is ReactElement<P> => {
37
- /**
38
- * I'm going to leave this as a big if/else instead of a compound expression to make
39
- * it clear exactly what we are checking.
40
- */
41
- if (element?.type === component) {
42
- // component is a function or a class, and element is an element of that type
43
- return true
44
- } else if (element?.type?.target === component) {
45
- // element is a styled element of the given component
46
- // so we have to look at what it is styling (its target)
47
- return true
48
- } else if (isDefined(component?.target) && element?.type === component?.target) {
49
- // component is the type of a styled component
50
- // and element is an element of the original unstyled component,
51
- // so we have to look at the target of the component itself (what it styled)
52
- return true
53
- } else if (
54
- isDefined(component?.target) &&
55
- element?.type?.target === component?.target
56
- ) {
57
- // element and component are both styled, possibly _differently_
58
- // but their underlying component type is the same
59
- return true
60
- }
61
-
62
- return false
63
- }
64
-
65
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
66
- export const isSlotOfType = <T extends typeof Slot>(type: T | FC) => (obj?: any): obj is T => {
67
- return (
68
- (isDefined(obj) &&
69
- isReactElement(obj) &&
70
- isDefined(obj.type) &&
71
- (Object.getPrototypeOf(obj.type) === type || obj.type === type)) ||
72
- (isDefined(obj.type) &&
73
- isDefined(obj.type.target) &&
74
- (Object.getPrototypeOf(obj.type.target) === type ||
75
- obj.type.target === type))
76
- )
77
- }
78
-
79
- const findSlotByType = <T extends typeof Slot>(type: T, children?: ReactNode): ReactElement => {
80
- return Children.toArray(children).find(isSlotOfType(type)) as ReactElement
81
- }
82
-
83
- const filterSlotByType = <T extends typeof Slot>(type: T, children?: ReactNode): ReactElement[] => {
84
- return Children.toArray(children).filter(isSlotOfType(type)) as ReactElement[]
85
- }
86
-
87
- export class Slot<T = unknown> extends PureComponent<PropsWithChildren<T>> {
88
- override render () {
89
- return this.props.children
90
- }
91
- }
92
-
93
- export class StylableSlot extends Slot {
94
- override render () {
95
- return <div {...this.props}>{this.props.children}</div>
96
- }
97
- }
98
-
99
- /** gets children that are _not_ slots */
100
- export function getOtherChildren(children?: ReactNode): ReactNode[] {
101
- return Children.toArray(children).filter((child) => !isSlotOfType(Slot)(child))
102
- }
103
-
104
- export function getSlots<T extends typeof Slot>(slot: T, children?: ReactNode): ReactElement[] {
105
- const result = filterSlotByType(slot, children)
106
-
107
- if (isNil(result)) {
108
- return []
109
- }
110
-
111
- return result
112
- }
113
-
114
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
115
- function hasProps (obj: any): obj is { props: { children: ReactNode }} {
116
- // eslint-disable-next-line no-prototype-builtins
117
- return isDefined(obj) && obj.hasOwnProperty('props')
118
- }
119
-
120
- export function getSlot<T extends typeof Slot>(slot: T, children?: ReactNode): ReactElement {
121
- const result = findSlotByType(slot, children)
122
-
123
- if (isNil(result)) {
124
- return <Nothing />
125
- }
126
-
127
- if (hasProps(result)) {
128
- return result
129
- }
130
-
131
- return result
132
- }
133
-
134
- /** given a ReactElement, like a child, apply the given props to it */
135
- export function applyProps<T>(element: ReactElement<T>, props: Partial<T>): ReactElement {
136
- return {
137
- ...element,
138
- props: {
139
- ...element.props,
140
- ...props,
141
- }
142
- }
143
- }
144
-
145
- /** given a ReactElement, like a child, apply the given styles to it, merging with the existing styles */
146
- export function applyStyle(element: ReactElement, style: CSSProperties): ReactElement {
147
- return {
148
- ...element,
149
- props: {
150
- ...element.props,
151
- style: {
152
- ...element.props.style,
153
- ...style,
154
- },
155
- },
156
- }
157
- }
@@ -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
- })
@@ -1,16 +0,0 @@
1
- import { isDefined } from './safe-navigation'
2
-
3
- export const toKebabCase = (str: string) => {
4
- return isDefined(str)
5
- ? str
6
- .replace(/[^a-zA-Z0-9\\-]/g, ' ')
7
- .replace(/([a-z])([A-Z])/g, '$1-$2')
8
- .replace(/([0-9]+)(.*)/g, '$1-$2')
9
- .replace(/(.*)([0-9]+)/g, '$1-$2')
10
- .replace(/^[\s_]+/g, '')
11
- .replace(/[\s_]+$/g, '')
12
- .replace(/[\s_]+/g, '-')
13
- .replace(/[^a-zA-Z0-9\\-]/g, '')
14
- .toLowerCase()
15
- : ''
16
- }
package/tsconfig.json DELETED
@@ -1,35 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "jsx": "react-jsx",
5
- "allowJs": true,
6
- "esModuleInterop": true,
7
- "allowSyntheticDefaultImports": true,
8
- "forceConsistentCasingInFileNames": true,
9
- "strict": true,
10
- "noImplicitOverride": true,
11
- "noPropertyAccessFromIndexSignature": true,
12
- "noImplicitReturns": true,
13
- "noFallthroughCasesInSwitch": true,
14
- "baseUrl": "./src/lib",
15
- "paths": {
16
- "@components": ["components/index.ts"],
17
- "@foundations": ["foundations/index.ts"],
18
- "@helpers": ["helpers/index.ts"],
19
- "@stories": ["../helpers/index.ts"],
20
- },
21
- },
22
- "files": [],
23
- "include": [],
24
- "references": [
25
- {
26
- "path": "./tsconfig.lib.json"
27
- },
28
- {
29
- "path": "./tsconfig.spec.json"
30
- },
31
- {
32
- "path": "./.storybook/tsconfig.json"
33
- }
34
- ]
35
- }
package/tsconfig.lib.json DELETED
@@ -1,28 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
5
- "types": ["node"]
6
- },
7
- "files": [
8
- "../../node_modules/@nrwl/react/typings/cssmodule.d.ts",
9
- "../../node_modules/@nrwl/react/typings/image.d.ts"
10
- ],
11
- "exclude": [
12
- "jest.config.ts",
13
- "jest.setup.ts",
14
- "src/helpers/**",
15
- "**/storybook/**",
16
- "**/stories/**",
17
- "**/*.stories.*",
18
- "**/*.spec.ts",
19
- "**/*.test.ts",
20
- "**/*.spec.tsx",
21
- "**/*.test.tsx",
22
- "**/*.spec.js",
23
- "**/*.test.js",
24
- "**/*.spec.jsx",
25
- "**/*.test.jsx",
26
- ],
27
- "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"]
28
- }
@@ -1,21 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
5
- "module": "commonjs",
6
- "types": ["jest", "node"]
7
- },
8
- "include": [
9
- "jest.config.ts",
10
- "jest.setup.ts",
11
- "**/*.test.ts",
12
- "**/*.spec.ts",
13
- "**/*.test.tsx",
14
- "**/*.spec.tsx",
15
- "**/*.test.js",
16
- "**/*.spec.js",
17
- "**/*.test.jsx",
18
- "**/*.spec.jsx",
19
- "**/*.d.ts"
20
- ]
21
- }