@edvisor/product-language 0.10.7 → 0.10.8

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 (412) hide show
  1. package/index.d.ts +2 -0
  2. package/index.js +10388 -0
  3. package/lib/components/alert-banner/alert-banner.d.ts +15 -0
  4. package/lib/components/alert-banner/alert-level-flags.d.ts +18 -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 -16
  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 +6 -0
  13. package/lib/components/card/components/card-controls-slot.d.ts +5 -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 +3 -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/helpers.d.ts +12 -0
  21. package/lib/components/checkbox/index.d.ts +1 -0
  22. package/lib/components/date-picker/components/custom-calendar.d.ts +6 -0
  23. package/lib/components/date-picker/components/index.d.ts +1 -0
  24. package/lib/components/date-picker/date-picker.d.ts +4 -0
  25. package/lib/components/date-picker/helpers/date-picker-factory.d.ts +34 -0
  26. package/lib/components/date-picker/index.d.ts +1 -0
  27. package/lib/components/divider/divider-type-flags.d.ts +9 -0
  28. package/lib/components/divider/divider.d.ts +7 -0
  29. package/lib/components/divider/index.d.ts +1 -0
  30. package/lib/components/flag/flag-size-flags.d.ts +12 -0
  31. package/lib/components/flag/flag.d.ts +9 -0
  32. package/lib/components/flag/flag.list.d.ts +782 -0
  33. package/lib/components/flag/index.d.ts +1 -0
  34. package/lib/components/icon/icon-list.d.ts +132 -0
  35. package/lib/components/icon/icon.d.ts +131 -0
  36. package/lib/components/icon/index.d.ts +1 -0
  37. package/lib/components/index.d.ts +25 -0
  38. package/lib/components/input-field/components/index.d.ts +2 -0
  39. package/lib/components/input-field/components/labeled-input.d.ts +10 -0
  40. package/lib/components/input-field/components/stepper.d.ts +7 -0
  41. package/lib/components/input-field/index.d.ts +3 -0
  42. package/lib/components/input-field/input-field.d.ts +26 -0
  43. package/lib/components/input-field/input-number.d.ts +18 -0
  44. package/lib/components/input-field/input-text.d.ts +14 -0
  45. package/lib/components/layout/flex.d.ts +16 -0
  46. package/lib/components/layout/grid-layout.d.ts +11 -0
  47. package/lib/components/layout/index.d.ts +3 -0
  48. package/lib/components/layout/left-right-layout.d.ts +34 -0
  49. package/lib/components/link/index.d.ts +1 -0
  50. package/lib/components/link/link.d.ts +14 -0
  51. package/lib/components/modal/index.d.ts +3 -0
  52. package/lib/components/modal/modal-base.d.ts +28 -0
  53. package/lib/components/modal/modal-destructive.d.ts +11 -0
  54. package/lib/components/modal/modal.d.ts +13 -0
  55. package/lib/components/molecules/avatar/avatar-size-flags.d.ts +12 -0
  56. package/lib/components/molecules/avatar/avatar.d.ts +12 -0
  57. package/lib/components/molecules/avatar/index.d.ts +1 -0
  58. package/lib/components/molecules/button/button-flags.d.ts +44 -0
  59. package/lib/components/molecules/button/button.d.ts +12 -0
  60. package/lib/components/molecules/button/index.d.ts +1 -0
  61. package/lib/components/molecules/index.d.ts +3 -0
  62. package/lib/components/molecules/input-checkbox/index.d.ts +1 -0
  63. package/lib/components/molecules/input-checkbox/input-checkbox.d.ts +8 -0
  64. package/lib/components/organisms/choice-list/choice-list.d.ts +9 -0
  65. package/lib/components/organisms/choice-list/index.d.ts +1 -0
  66. package/lib/components/organisms/index.d.ts +2 -0
  67. package/lib/components/organisms/multi-choice-list/index.d.ts +1 -0
  68. package/lib/components/organisms/multi-choice-list/multi-choice-list.d.ts +11 -0
  69. package/lib/components/progress-bar/index.d.ts +1 -0
  70. package/lib/components/progress-bar/progress-bar-size-flags.d.ts +10 -0
  71. package/lib/components/progress-bar/progress-bar.d.ts +8 -0
  72. package/lib/components/radio-button/index.d.ts +1 -0
  73. package/lib/components/radio-button/radio-button.d.ts +10 -0
  74. package/lib/components/range-slider/components/bar-chart.d.ts +8 -0
  75. package/lib/components/range-slider/components/handle.d.ts +12 -0
  76. package/lib/components/range-slider/components/rail.d.ts +9 -0
  77. package/lib/components/range-slider/components/slider-component.d.ts +12 -0
  78. package/lib/components/range-slider/components/slider-inputs.d.ts +14 -0
  79. package/lib/components/range-slider/components/tick.d.ts +10 -0
  80. package/lib/components/range-slider/components/track.d.ts +11 -0
  81. package/lib/components/range-slider/index.d.ts +2 -0
  82. package/lib/components/range-slider/range-slider.d.ts +15 -0
  83. package/lib/components/range-slider/slider.d.ts +11 -0
  84. package/lib/components/range-slider/types.d.ts +11 -0
  85. package/lib/components/select/components/helpers.d.ts +17 -0
  86. package/lib/components/select/components/menu-container.d.ts +3 -0
  87. package/lib/components/select/components/menu-list.d.ts +3 -0
  88. package/lib/components/select/components/menu-row.d.ts +9 -0
  89. package/lib/components/select/components/menu.d.ts +3 -0
  90. package/lib/components/select/components/option.d.ts +3 -0
  91. package/lib/components/select/components/select-label.d.ts +1 -0
  92. package/lib/components/select/components/value-component-multi.d.ts +4 -0
  93. package/lib/components/select/components/value-component-single.d.ts +4 -0
  94. package/lib/components/select/components/value.d.ts +4 -0
  95. package/lib/components/select/index.d.ts +3 -0
  96. package/lib/components/select/select.d.ts +10 -0
  97. package/lib/components/select/types.d.ts +133 -0
  98. package/lib/components/select/utils.d.ts +15 -0
  99. package/{src/lib/components/radio-button/index.tsx → lib/components/spinner/index.d.ts} +1 -1
  100. package/lib/components/spinner/spinner-size-flags.d.ts +10 -0
  101. package/lib/components/spinner/spinner.d.ts +9 -0
  102. package/lib/components/tabs/components/index.d.ts +1 -0
  103. package/lib/components/tabs/components/tab.d.ts +8 -0
  104. package/lib/components/tabs/index.d.ts +1 -0
  105. package/lib/components/tabs/tabs.d.ts +16 -0
  106. package/lib/components/tag/components/close-button.d.ts +8 -0
  107. package/lib/components/tag/components/index.d.ts +2 -0
  108. package/lib/components/tag/components/tag-label.d.ts +8 -0
  109. package/lib/components/tag/index.d.ts +1 -0
  110. package/lib/components/tag/tag.d.ts +10 -0
  111. package/lib/components/thumbnail/index.d.ts +1 -0
  112. package/lib/components/thumbnail/thumbnail-size-flags.d.ts +10 -0
  113. package/lib/components/thumbnail/thumbnail.d.ts +10 -0
  114. package/lib/components/tooltip/index.d.ts +1 -0
  115. package/lib/components/tooltip/tooltip.d.ts +26 -0
  116. package/lib/components/tree-view/components/tree-node.d.ts +3 -0
  117. package/lib/components/tree-view/helper.d.ts +12 -0
  118. package/lib/components/tree-view/index.d.ts +2 -0
  119. package/lib/components/tree-view/tree-view.d.ts +3 -0
  120. package/lib/components/tree-view/types.d.ts +63 -0
  121. package/lib/components/typography/index.d.ts +1 -0
  122. package/lib/components/typography/typography.d.ts +24 -0
  123. package/lib/foundations/color-system/base-palette/base-palette.d.ts +76 -0
  124. package/lib/foundations/color-system/base-palette/index.d.ts +1 -0
  125. package/lib/foundations/color-system/color-guidelines/color-guidelines.d.ts +133 -0
  126. package/lib/foundations/color-system/color-guidelines/index.d.ts +1 -0
  127. package/lib/foundations/color-system/components/color-sample.d.ts +17 -0
  128. package/lib/foundations/color-system/components/index.d.ts +1 -0
  129. package/lib/foundations/color-system/index.d.ts +1 -0
  130. package/lib/foundations/index.d.ts +4 -0
  131. package/lib/foundations/shadows/components.d.ts +8 -0
  132. package/lib/foundations/shadows/index.d.ts +1 -0
  133. package/lib/foundations/shadows/shadows.d.ts +8 -0
  134. package/lib/foundations/spacing/index.d.ts +1 -0
  135. package/lib/foundations/spacing/spacing-guidelines.d.ts +33 -0
  136. package/lib/foundations/spacing/spacing.d.ts +18 -0
  137. package/lib/foundations/typography/constants.d.ts +22 -0
  138. package/lib/foundations/typography/fonts.d.ts +1 -0
  139. package/lib/foundations/typography/index.d.ts +1 -0
  140. package/lib/foundations/typography/text-aspect-flags.d.ts +19 -0
  141. package/lib/foundations/typography/typography.d.ts +24 -0
  142. package/lib/helpers/generic-types.d.ts +21 -0
  143. package/lib/helpers/index.d.ts +8 -0
  144. package/lib/helpers/isReactElementOfType.d.ts +8 -0
  145. package/lib/helpers/nothing.d.ts +10 -0
  146. package/{src/lib/helpers/numbers.ts → lib/helpers/numbers.d.ts} +50 -67
  147. package/lib/helpers/safe-navigation.d.ts +17 -0
  148. package/lib/helpers/slots.d.ts +17 -0
  149. package/lib/helpers/strings.d.ts +1 -0
  150. package/lib/helpers/useInputElementState.d.ts +30 -0
  151. package/lib/helpers/useKeyDown.d.ts +1 -0
  152. package/package.json +28 -1
  153. package/.babelrc +0 -12
  154. package/.eslintrc.json +0 -147
  155. package/.release-it.json +0 -17
  156. package/.storybook/main.js +0 -57
  157. package/.storybook/manager.js +0 -7
  158. package/.storybook/preview.js +0 -15
  159. package/.storybook/tsconfig.json +0 -30
  160. package/jest.config.ts +0 -15
  161. package/jest.setup.ts +0 -2
  162. package/project.json +0 -98
  163. package/src/README.md +0 -61
  164. package/src/assets/svg/example_icon.svg +0 -3
  165. package/src/assets/svg/example_icon_white.svg +0 -3
  166. package/src/assets/svg/spinner.svg +0 -3
  167. package/src/assets/svg/spinner_white.svg +0 -3
  168. package/src/helpers/index.ts +0 -4
  169. package/src/helpers/playground.ts +0 -26
  170. package/src/helpers/talesOf.tsx +0 -42
  171. package/src/index.ts +0 -2
  172. package/src/lib/components/README.md +0 -49
  173. package/src/lib/components/alert-banner/alert-banner.test.tsx +0 -93
  174. package/src/lib/components/alert-banner/alert-banner.tsx +0 -117
  175. package/src/lib/components/alert-banner/alert-level-flags.ts +0 -101
  176. package/src/lib/components/alert-banner/index.ts +0 -1
  177. package/src/lib/components/alert-banner/storybook/alert-banner.stories.mdx +0 -67
  178. package/src/lib/components/alert-banner/storybook/components.tsx +0 -124
  179. package/src/lib/components/badge/badge-type-flags.ts +0 -72
  180. package/src/lib/components/badge/badge.test.tsx +0 -29
  181. package/src/lib/components/badge/badge.tsx +0 -22
  182. package/src/lib/components/badge/index.ts +0 -1
  183. package/src/lib/components/badge/stories/badge.stories.mdx +0 -44
  184. package/src/lib/components/badge/stories/components.tsx +0 -49
  185. package/src/lib/components/card/atoms/index.ts +0 -1
  186. package/src/lib/components/card/card.test.tsx +0 -162
  187. package/src/lib/components/card/card.tsx +0 -78
  188. package/src/lib/components/card/components/card-alert-banner-slot.tsx +0 -16
  189. package/src/lib/components/card/components/card-controls-slot.tsx +0 -19
  190. package/src/lib/components/card/components/card-section-slot.tsx +0 -51
  191. package/src/lib/components/card/components/index.ts +0 -3
  192. package/src/lib/components/card/index.ts +0 -3
  193. package/src/lib/components/card/molecules/index.ts +0 -1
  194. package/src/lib/components/card/molecules/left-right-card.test.tsx +0 -89
  195. package/src/lib/components/card/molecules/left-right-card.tsx +0 -63
  196. package/src/lib/components/card/storybook/card.stories.mdx +0 -100
  197. package/src/lib/components/card/storybook/components.tsx +0 -227
  198. package/src/lib/components/checkbox/checkbox.test.tsx +0 -39
  199. package/src/lib/components/checkbox/checkbox.tsx +0 -70
  200. package/src/lib/components/checkbox/helpers.tsx +0 -98
  201. package/src/lib/components/checkbox/index.tsx +0 -1
  202. package/src/lib/components/checkbox/stories/checkbox.stories.mdx +0 -57
  203. package/src/lib/components/checkbox/stories/components.tsx +0 -84
  204. package/src/lib/components/date-picker/components/custom-calendar.tsx +0 -193
  205. package/src/lib/components/date-picker/components/index.ts +0 -1
  206. package/src/lib/components/date-picker/data-picker.test.tsx +0 -220
  207. package/src/lib/components/date-picker/date-picker.tsx +0 -10
  208. package/src/lib/components/date-picker/helpers/date-picker-factory.tsx +0 -210
  209. package/src/lib/components/date-picker/index.ts +0 -1
  210. package/src/lib/components/date-picker/storybook/components.tsx +0 -259
  211. package/src/lib/components/date-picker/storybook/date-picker.stories.mdx +0 -133
  212. package/src/lib/components/divider/divider-type-flags.tsx +0 -37
  213. package/src/lib/components/divider/divider.test.tsx +0 -34
  214. package/src/lib/components/divider/divider.tsx +0 -37
  215. package/src/lib/components/divider/index.tsx +0 -1
  216. package/src/lib/components/divider/stories/components.tsx +0 -13
  217. package/src/lib/components/divider/stories/divider.stories.mdx +0 -44
  218. package/src/lib/components/flag/flag-size-flags.tsx +0 -55
  219. package/src/lib/components/flag/flag.list.tsx +0 -788
  220. package/src/lib/components/flag/flag.test.tsx +0 -65
  221. package/src/lib/components/flag/flag.tsx +0 -97
  222. package/src/lib/components/flag/index.tsx +0 -1
  223. package/src/lib/components/flag/stories/components.tsx +0 -403
  224. package/src/lib/components/flag/stories/flag.stories.mdx +0 -48
  225. package/src/lib/components/flag/stories/playGround-select.tsx +0 -145
  226. package/src/lib/components/icon/icon-list.tsx +0 -135
  227. package/src/lib/components/icon/icon.test.tsx +0 -47
  228. package/src/lib/components/icon/icon.tsx +0 -181
  229. package/src/lib/components/icon/index.tsx +0 -1
  230. package/src/lib/components/icon/stories/components.tsx +0 -282
  231. package/src/lib/components/icon/stories/icon.stories.mdx +0 -65
  232. package/src/lib/components/index.ts +0 -27
  233. package/src/lib/components/input-field/components/index.ts +0 -2
  234. package/src/lib/components/input-field/components/labeled-input.tsx +0 -57
  235. package/src/lib/components/input-field/components/stepper.tsx +0 -64
  236. package/src/lib/components/input-field/index.ts +0 -6
  237. package/src/lib/components/input-field/input-field.test.tsx +0 -107
  238. package/src/lib/components/input-field/input-field.tsx +0 -154
  239. package/src/lib/components/input-field/input-number.tsx +0 -41
  240. package/src/lib/components/input-field/input-text.tsx +0 -30
  241. package/src/lib/components/input-field/storybook/components.tsx +0 -367
  242. package/src/lib/components/input-field/storybook/input-field.stories.mdx +0 -120
  243. package/src/lib/components/layout/flex.tsx +0 -22
  244. package/src/lib/components/layout/grid-layout.tsx +0 -40
  245. package/src/lib/components/layout/index.ts +0 -3
  246. package/src/lib/components/layout/left-right-layout.tsx +0 -67
  247. package/src/lib/components/link/index.ts +0 -1
  248. package/src/lib/components/link/link.test.tsx +0 -29
  249. package/src/lib/components/link/link.tsx +0 -56
  250. package/src/lib/components/link/storybook/link.stories.mdx +0 -52
  251. package/src/lib/components/modal/index.ts +0 -3
  252. package/src/lib/components/modal/modal-base.tsx +0 -129
  253. package/src/lib/components/modal/modal-destructive.tsx +0 -70
  254. package/src/lib/components/modal/modal.test.tsx +0 -138
  255. package/src/lib/components/modal/modal.tsx +0 -114
  256. package/src/lib/components/modal/storybook/components.tsx +0 -105
  257. package/src/lib/components/modal/storybook/modal-destructive.stories.mdx +0 -31
  258. package/src/lib/components/modal/storybook/modal.stories.mdx +0 -50
  259. package/src/lib/components/molecules/avatar/avatar-size-flags.tsx +0 -55
  260. package/src/lib/components/molecules/avatar/avatar.test.tsx +0 -114
  261. package/src/lib/components/molecules/avatar/avatar.tsx +0 -80
  262. package/src/lib/components/molecules/avatar/index.tsx +0 -1
  263. package/src/lib/components/molecules/avatar/stories/avatar.stories.mdx +0 -52
  264. package/src/lib/components/molecules/avatar/stories/components.tsx +0 -36
  265. package/src/lib/components/molecules/button/button-flags.tsx +0 -340
  266. package/src/lib/components/molecules/button/button.test.tsx +0 -77
  267. package/src/lib/components/molecules/button/button.tsx +0 -213
  268. package/src/lib/components/molecules/button/index.tsx +0 -1
  269. package/src/lib/components/molecules/button/stories/button.stories.mdx +0 -105
  270. package/src/lib/components/molecules/button/stories/components.tsx +0 -90
  271. package/src/lib/components/molecules/index.ts +0 -3
  272. package/src/lib/components/molecules/input-checkbox/index.tsx +0 -1
  273. package/src/lib/components/molecules/input-checkbox/input-checkbox.test.tsx +0 -34
  274. package/src/lib/components/molecules/input-checkbox/input-checkbox.tsx +0 -50
  275. package/src/lib/components/molecules/input-checkbox/stories/components.tsx +0 -53
  276. package/src/lib/components/molecules/input-checkbox/stories/input-checkbox.stories.mdx +0 -49
  277. package/src/lib/components/organisms/choice-list/choice-list.test.tsx +0 -36
  278. package/src/lib/components/organisms/choice-list/choice-list.tsx +0 -72
  279. package/src/lib/components/organisms/choice-list/index.tsx +0 -1
  280. package/src/lib/components/organisms/choice-list/stories/choice-list.stories.mdx +0 -57
  281. package/src/lib/components/organisms/choice-list/stories/components.tsx +0 -45
  282. package/src/lib/components/organisms/index.ts +0 -2
  283. package/src/lib/components/organisms/multi-choice-list/index.tsx +0 -1
  284. package/src/lib/components/organisms/multi-choice-list/multi-choice-list.test.tsx +0 -33
  285. package/src/lib/components/organisms/multi-choice-list/multi-choice-list.tsx +0 -53
  286. package/src/lib/components/organisms/multi-choice-list/stories/components.tsx +0 -124
  287. package/src/lib/components/organisms/multi-choice-list/stories/multi-choice-list.stories.mdx +0 -99
  288. package/src/lib/components/progress-bar/index.ts +0 -1
  289. package/src/lib/components/progress-bar/progress-bar-size-flags.tsx +0 -37
  290. package/src/lib/components/progress-bar/progress-bar.test.tsx +0 -66
  291. package/src/lib/components/progress-bar/progress-bar.tsx +0 -42
  292. package/src/lib/components/progress-bar/storybook/components.tsx +0 -62
  293. package/src/lib/components/progress-bar/storybook/progress-bar.stories.mdx +0 -43
  294. package/src/lib/components/radio-button/radio-button.tsx +0 -135
  295. package/src/lib/components/radio-button/radio.test.tsx +0 -59
  296. package/src/lib/components/radio-button/stories/components.tsx +0 -36
  297. package/src/lib/components/radio-button/stories/radio-button.stories.mdx +0 -44
  298. package/src/lib/components/range-slider/components/bar-chart.tsx +0 -50
  299. package/src/lib/components/range-slider/components/handle.tsx +0 -58
  300. package/src/lib/components/range-slider/components/rail.tsx +0 -44
  301. package/src/lib/components/range-slider/components/slider-component.tsx +0 -98
  302. package/src/lib/components/range-slider/components/slider-inputs.tsx +0 -150
  303. package/src/lib/components/range-slider/components/tick.tsx +0 -51
  304. package/src/lib/components/range-slider/components/track.tsx +0 -67
  305. package/src/lib/components/range-slider/index.tsx +0 -2
  306. package/src/lib/components/range-slider/range-slider.test.tsx +0 -185
  307. package/src/lib/components/range-slider/range-slider.tsx +0 -132
  308. package/src/lib/components/range-slider/slider.test.tsx +0 -89
  309. package/src/lib/components/range-slider/slider.tsx +0 -80
  310. package/src/lib/components/range-slider/stories/components.tsx +0 -179
  311. package/src/lib/components/range-slider/stories/range-slider.stories.mdx +0 -84
  312. package/src/lib/components/range-slider/types.ts +0 -18
  313. package/src/lib/components/select/components/helpers.tsx +0 -62
  314. package/src/lib/components/select/components/menu-container.tsx +0 -73
  315. package/src/lib/components/select/components/menu-list.tsx +0 -232
  316. package/src/lib/components/select/components/menu-row.tsx +0 -43
  317. package/src/lib/components/select/components/menu.tsx +0 -134
  318. package/src/lib/components/select/components/option.tsx +0 -51
  319. package/src/lib/components/select/components/select-label.tsx +0 -10
  320. package/src/lib/components/select/components/value-component-multi.tsx +0 -40
  321. package/src/lib/components/select/components/value-component-single.tsx +0 -27
  322. package/src/lib/components/select/components/value.tsx +0 -370
  323. package/src/lib/components/select/index.tsx +0 -3
  324. package/src/lib/components/select/select.test.tsx +0 -148
  325. package/src/lib/components/select/select.tsx +0 -337
  326. package/src/lib/components/select/storybook/components.tsx +0 -999
  327. package/src/lib/components/select/storybook/radio-group.tsx +0 -157
  328. package/src/lib/components/select/storybook/select.stories.mdx +0 -172
  329. package/src/lib/components/select/types.ts +0 -149
  330. package/src/lib/components/select/utils.ts +0 -101
  331. package/src/lib/components/spinner/index.tsx +0 -1
  332. package/src/lib/components/spinner/spinner-size-flags.tsx +0 -39
  333. package/src/lib/components/spinner/spinner.test.tsx +0 -31
  334. package/src/lib/components/spinner/spinner.tsx +0 -54
  335. package/src/lib/components/spinner/stories/components.tsx +0 -39
  336. package/src/lib/components/spinner/stories/spinner.stories.mdx +0 -35
  337. package/src/lib/components/tabs/components/index.ts +0 -1
  338. package/src/lib/components/tabs/components/tab.tsx +0 -85
  339. package/src/lib/components/tabs/index.tsx +0 -1
  340. package/src/lib/components/tabs/storybook/components.tsx +0 -317
  341. package/src/lib/components/tabs/storybook/tabs.stories.mdx +0 -105
  342. package/src/lib/components/tabs/tabs.test.tsx +0 -86
  343. package/src/lib/components/tabs/tabs.tsx +0 -115
  344. package/src/lib/components/tag/components/close-button.tsx +0 -85
  345. package/src/lib/components/tag/components/index.ts +0 -2
  346. package/src/lib/components/tag/components/tag-label.tsx +0 -45
  347. package/src/lib/components/tag/index.tsx +0 -1
  348. package/src/lib/components/tag/stories/components.tsx +0 -86
  349. package/src/lib/components/tag/stories/tag.stories.mdx +0 -42
  350. package/src/lib/components/tag/tag.test.tsx +0 -36
  351. package/src/lib/components/tag/tag.tsx +0 -33
  352. package/src/lib/components/thumbnail/index.tsx +0 -1
  353. package/src/lib/components/thumbnail/stories/thumbnail.stories.mdx +0 -44
  354. package/src/lib/components/thumbnail/thumbnail-size-flags.tsx +0 -41
  355. package/src/lib/components/thumbnail/thumbnail.test.tsx +0 -51
  356. package/src/lib/components/thumbnail/thumbnail.tsx +0 -44
  357. package/src/lib/components/tooltip/index.tsx +0 -1
  358. package/src/lib/components/tooltip/stories/components.tsx +0 -224
  359. package/src/lib/components/tooltip/stories/tooltip.stories.mdx +0 -63
  360. package/src/lib/components/tooltip/tooltip.test.tsx +0 -22
  361. package/src/lib/components/tooltip/tooltip.tsx +0 -180
  362. package/src/lib/components/tree-view/components/tree-node.tsx +0 -203
  363. package/src/lib/components/tree-view/helper.tsx +0 -171
  364. package/src/lib/components/tree-view/index.ts +0 -2
  365. package/src/lib/components/tree-view/stories/components.tsx +0 -640
  366. package/src/lib/components/tree-view/stories/tree-view.stories.mdx +0 -127
  367. package/src/lib/components/tree-view/tree-view.test.tsx +0 -146
  368. package/src/lib/components/tree-view/tree-view.tsx +0 -168
  369. package/src/lib/components/tree-view/types.tsx +0 -70
  370. package/src/lib/components/typography/index.ts +0 -1
  371. package/src/lib/components/typography/storybook/components.tsx +0 -288
  372. package/src/lib/components/typography/storybook/typography.stories.mdx +0 -90
  373. package/src/lib/components/typography/typography.test.tsx +0 -97
  374. package/src/lib/components/typography/typography.tsx +0 -99
  375. package/src/lib/foundations/color-system/base-palette/base-palette.stories.tsx +0 -123
  376. package/src/lib/foundations/color-system/base-palette/base-palette.ts +0 -93
  377. package/src/lib/foundations/color-system/base-palette/index.ts +0 -1
  378. package/src/lib/foundations/color-system/color-guidelines/color-guidelines.stories.mdx +0 -85
  379. package/src/lib/foundations/color-system/color-guidelines/color-guidelines.stories.tsx +0 -231
  380. package/src/lib/foundations/color-system/color-guidelines/color-guidelines.ts +0 -160
  381. package/src/lib/foundations/color-system/color-guidelines/index.ts +0 -1
  382. package/src/lib/foundations/color-system/components/color-sample.tsx +0 -99
  383. package/src/lib/foundations/color-system/components/index.ts +0 -1
  384. package/src/lib/foundations/color-system/index.ts +0 -1
  385. package/src/lib/foundations/index.ts +0 -4
  386. package/src/lib/foundations/shadows/components.tsx +0 -59
  387. package/src/lib/foundations/shadows/index.ts +0 -1
  388. package/src/lib/foundations/shadows/shadows.stories.mdx +0 -71
  389. package/src/lib/foundations/shadows/shadows.tsx +0 -47
  390. package/src/lib/foundations/spacing/index.ts +0 -1
  391. package/src/lib/foundations/spacing/spacing-guidelines.ts +0 -37
  392. package/src/lib/foundations/spacing/spacing.stories.mdx +0 -51
  393. package/src/lib/foundations/spacing/spacing.ts +0 -18
  394. package/src/lib/foundations/typography/constants.ts +0 -25
  395. package/src/lib/foundations/typography/fonts.ts +0 -205
  396. package/src/lib/foundations/typography/index.tsx +0 -1
  397. package/src/lib/foundations/typography/text-aspect-flags.ts +0 -61
  398. package/src/lib/foundations/typography/typography.tsx +0 -102
  399. package/src/lib/helpers/generic-types.ts +0 -44
  400. package/src/lib/helpers/index.ts +0 -8
  401. package/src/lib/helpers/isReactElementOfType.test.tsx +0 -108
  402. package/src/lib/helpers/isReactElementOfType.ts +0 -42
  403. package/src/lib/helpers/nothing.tsx +0 -22
  404. package/src/lib/helpers/safe-navigation.ts +0 -57
  405. package/src/lib/helpers/slots.tsx +0 -126
  406. package/src/lib/helpers/strings.test.ts +0 -47
  407. package/src/lib/helpers/strings.ts +0 -16
  408. package/src/lib/helpers/useInputElementState.ts +0 -56
  409. package/src/lib/helpers/useKeyDown.ts +0 -17
  410. package/tsconfig.json +0 -35
  411. package/tsconfig.lib.json +0 -28
  412. package/tsconfig.spec.json +0 -21
@@ -1,84 +0,0 @@
1
- import { Canvas, Meta, Story, ArgsTable } from '@storybook/addon-docs';
2
- import { RangeSlider } from '../index'
3
- import { SliderPlayground, RangePlayground, RangeWithGraphPlayground } from './components.tsx'
4
- import { AlertBanner } from 'components/alert-banner'
5
-
6
-
7
- <Meta title="Components/RangeSlider" component={RangeSlider}/>
8
-
9
- # RangeSlider System
10
-
11
- For more details, check out the guidelines on [Figma](https://www.figma.com/file/ue1CurHfZ426o2T2l8Dk64/Edvisor-Product-Language?node-id=734%3A7378&t=FGYMPTF1ZFK1srUc-0)
12
-
13
- ## How to Use
14
-
15
- ```tsx
16
- import { Slider, RangeSlider } from '@edvisor/product-language'
17
-
18
- <Slider
19
- max={max}
20
- value={number}
21
- />
22
-
23
- <RangeSlider
24
- max={max}
25
- values={[min, max]}
26
- />
27
-
28
- ```
29
-
30
- ### Slider
31
-
32
- <SliderPlayground/>
33
-
34
- ### Range Slider
35
-
36
- <RangePlayground/>
37
-
38
-
39
- ### Range Slider With Graph
40
-
41
- <RangeWithGraphPlayground/>
42
-
43
-
44
-
45
- # API
46
-
47
- ### Slider
48
-
49
- | Prop | Type | Description |
50
- | -------------- | --------------------------------- | --------------------------------------------------- |
51
- | `min?` | `number` | `The minimum possible value (defaults to 0)` |
52
- | `max` | `number` | `The maximum possible value of the slider` |
53
- | `value` | `number` | `The max value selected` |
54
- | `prefix?` | `string` | `Prefix to show with the label / input` |
55
- | `editable?` | `boolean` | `Renders a input to allow changing the slide value` |
56
- | `onChange?` | `(value: number) => void` | `Returns the max value selected` |
57
-
58
- ### Range Slider
59
-
60
- <AlertBanner info style={{whiteSpace: 'pre-line'}}>
61
- <p>If you provide a 'data' property, the component will build Bar graph on top of the slider
62
- and use it's minimum and maximum values as a range</p>
63
- </AlertBanner>
64
-
65
- | Prop | Type | Description |
66
- | -------------- | ----------------------------------- | ---------------------------------------------------- |
67
- | `data?` | `number[]` | `List occurrences to build the Graph` |
68
- | `graphHeight?` | `number` | `The height value for the Graph, defaults to 100` |
69
- | `min?` | `number` | `The minimum possible value (defaults to 0)` |
70
- | `max?` | `number` | `The maximum possible value (defaults to 100)` |
71
- | `maxLabel?` | `string` | `The label for the max input (default to 'Max')` |
72
- | `minLabel?` | `string` | `The label for the min input (default to 'Min')` |
73
- | `values` | `number[]` | `The selected range defaults ([min, max])` |
74
- | `prefix?` | `string` | `Prefix to show with the label / input` |
75
- | `editable?` | `boolean` | `Renders a input to allow changing the slide value` |
76
- | `onChange?` | `(value: number[min, max]) => void` | `Returns the selected range` |
77
-
78
-
79
- ## Changelog
80
-
81
- ### [0.0.0]
82
- - The slider is built on top of [react-compound-slider](https://react-compound-slider.netlify.app/) lib
83
- - The Graph is built on top of [recharts](https://recharts.org/en-US/) lib
84
-
@@ -1,18 +0,0 @@
1
- import styled, { css } from 'styled-components'
2
-
3
- export enum SliderType {
4
- SLIDER,
5
- RANGE_SLIDER,
6
- }
7
-
8
- export enum ValueType {
9
- MIN,
10
- MAX,
11
- }
12
-
13
- export const FieldContainer = styled.div<{margin: string}>`
14
- ${({margin}) => margin === 'right'
15
- ? css`margin-right: auto`
16
- : css`margin-left: auto`
17
- }
18
- `
@@ -1,62 +0,0 @@
1
- import styled from 'styled-components'
2
- import { Borders, Surface, Margin, Padding } from '@foundations'
3
- import { SpaceBetween } from 'components/layout'
4
- import { DEFAULT_ROW_HEIGHT, IMenuComponentProps, IOptionComponentProps, menuPositionType } from '../types'
5
- import { defaultTo, is } from '@helpers'
6
-
7
- interface IOptionItemProps {
8
- active?: IOptionComponentProps['active'];
9
- selected?: IOptionComponentProps['selected'];
10
- height?: IOptionComponentProps['height'];
11
- }
12
-
13
- export const OptionItem = styled(SpaceBetween)`
14
- flex: 1;
15
- height: ${(props: IOptionItemProps) => defaultTo(props.height, DEFAULT_ROW_HEIGHT)}px;
16
- min-width: 0;
17
- cursor: pointer;
18
- box-sizing: border-box;
19
- margin: ${Margin.xxs};
20
- border-radius: 6px;
21
- background-clip: content-box;
22
- background-color: ${(props: IOptionItemProps) =>
23
- is(props.active)
24
- ? Surface.Selected.Default
25
- : is(props.selected)
26
- ? Surface.Default.Hover
27
- : Surface.Default.Default};
28
-
29
- & div {
30
- padding: ${Padding.none} ${Padding.xs};
31
- }
32
-
33
- & i:last-child {
34
- right: 8px;
35
- }
36
-
37
- &:hover {
38
- background-color: ${(props: IOptionItemProps) =>
39
- is(props.active) ? Surface.Selected.Hover : Surface.Default.Hover};
40
- }
41
-
42
- &:active {
43
- background-color: ${(props: IOptionItemProps) =>
44
- is(props.active) ? Surface.Selected.Pressed : Surface.Default.Pressed};
45
- }
46
- `
47
-
48
- export const EmptyOptionItem = styled(OptionItem)<{props: IMenuComponentProps}>`
49
- border: 1px solid ${Borders.Default.Subdued};
50
- background-color: ${Surface.Default.Default};
51
- position: absolute;
52
- margin: ${Margin.none};
53
- width: 100%;
54
- height: 54px;
55
- box-shadow: ${({ props }) =>
56
- props.menuPosition === menuPositionType.BOTTOM
57
- ? '0px 2px 10px 0px rgba(0, 0, 0, 0.10)'
58
- : '0px -2px 10px 0px rgba(0, 0, 0, 0.10)'};
59
- &:hover {
60
- background-color: ${Surface.Default.Default};
61
- }
62
- `
@@ -1,73 +0,0 @@
1
-
2
- import { FC } from '@helpers'
3
-
4
- import styled from 'styled-components'
5
- import { IMenuContainerProps, menuPositionType } from '../types'
6
- import { Borders, Surface, Padding } from '@foundations'
7
- import { topPosition } from '../utils'
8
-
9
- interface IMenuWrapperProps {
10
- label?: IMenuContainerProps['label'];
11
- menuHeight?: IMenuContainerProps['menuHeight'];
12
- menuPosition?: IMenuContainerProps['menuPosition'];
13
- labelPosition?: IMenuContainerProps['labelPosition'];
14
- invalid?: boolean;
15
- }
16
-
17
- const MenuWrapper = styled.div<IMenuWrapperProps>`
18
- z-index: 1;
19
- position: relative;
20
- background: ${Surface.Default.Default};
21
- top: ${(props) => topPosition(props)};
22
- box-sizing: border-box;
23
- .menu-list {
24
- box-sizing: border-box;
25
- box-shadow: ${(props) =>
26
- props.menuPosition === menuPositionType.BOTTOM
27
- ? '0px 2px 10px 0px rgba(0, 0, 0, 0.10)'
28
- : '0px -2px 10px 0px rgba(0, 0, 0, 0.10)'};
29
- border: 1px solid ${Borders.Default.Subdued};
30
- background-color: ${Surface.Default.Default};
31
- border-radius: 6px;
32
- opacity: 0;
33
- transition: opacity 0.1s ease;
34
- padding: ${Padding.xxs};
35
-
36
- &:focus {
37
- outline: none;
38
- }
39
-
40
- ::-webkit-scrollbar {
41
- width: 10px;
42
- height: 0;
43
- }
44
- ::-webkit-scrollbar-thumb {
45
- min-height: 50px;
46
- border: 2px solid rgba(0, 0, 0, 0);
47
- background-clip: padding-box;
48
- border-radius: 1em;
49
- background-color: ${Surface.Neutral.Default};
50
- }
51
- ::-webkit-scrollbar-corner {
52
- background-color: transparent;
53
- }
54
- }
55
- `
56
-
57
- export const MenuContainer: FC<IMenuContainerProps> = (props) => {
58
- const { onClick, children } = props
59
- const className = ['select-menu', props.className]
60
- .filter((c) => c)
61
- .join(' ')
62
-
63
- return (
64
- <MenuWrapper
65
- data-role="menu"
66
- className={className}
67
- onClick={onClick}
68
- {...props}
69
- >
70
- {children}
71
- </MenuWrapper>
72
- )
73
- }
@@ -1,232 +0,0 @@
1
- import styled from 'styled-components'
2
- import { Borders, Icons, Padding, Margin, shadowMd, Surface } from '@foundations'
3
- import { defaultTo, FC, is, isDefined, isEmpty, isNil, maybeRender, safeArray } from '@helpers'
4
- import { Heading4, Label } from 'components/typography'
5
- import { IconMinor } from 'components/icon'
6
- import { DEFAULT_EMPTY_TEXT, IMenuComponentProps, IOption } from '../types'
7
- import { equal } from '../utils'
8
- import { SpaceBetween } from 'components/layout'
9
- import { useRef } from 'react'
10
- import { SelectLabel } from './select-label'
11
- import { EmptyOptionItem } from './helpers'
12
-
13
- const MenuListFrame = styled.div<{ height?: number }>`
14
- border: 1px solid ${Borders.Default.Subdued};
15
- background-color: ${Surface.Default.Default};
16
- position: absolute;
17
- height: ${(props) => props.height}px;
18
- max-height: ${(props) => props.height}px;
19
- width: 100%;
20
- width: -moz-available;
21
- width: -webkit-fill-available;
22
- overflow-y: auto;
23
- overflow-x: hidden;
24
-
25
- ::-webkit-scrollbar {
26
- width: 10px;
27
- height: 0;
28
- }
29
- ::-webkit-scrollbar-thumb {
30
- min-height: 50px;
31
- border: 2px solid rgba(0, 0, 0, 0);
32
- background-clip: padding-box;
33
- border-radius: 1em;
34
- background-color: ${Surface.Neutral.Default};
35
- }
36
- ::-webkit-scrollbar-corner {
37
- background-color: transparent;
38
- }
39
-
40
- ${shadowMd};
41
- `
42
-
43
- const MenuRow = styled(SpaceBetween)<{active?: boolean}>`
44
- border: none;
45
- text-align: left;
46
- padding: ${Padding.s};
47
- margin: ${Margin.none} ${Margin.xxs};
48
- background-color: ${(props) =>
49
- (is(props.active)
50
- ? Surface.Selected.Default
51
- : Surface.Default.Default)
52
- };
53
- border-radius: 6px;
54
- i:first-child {
55
- align-self: start;
56
- margin-right: ${Margin.s};
57
- }
58
- i:last-child {
59
- align-self: center;
60
- }
61
- &:first-of-type {
62
- margin-top: ${Margin.xxs};
63
- }
64
- &:last-of-type {
65
- margin-bottom: ${Margin.xxs};
66
- }
67
-
68
- &:hover {
69
- background-color: ${Surface.Default.Hover};
70
- }
71
-
72
- &:hover {
73
- background-color: ${(props) =>
74
- (is(props.active)
75
- ? Surface.Selected.Hover
76
- : Surface.Default.Hover)
77
- };
78
- }
79
-
80
- &:active {
81
- background-color: ${(props) =>
82
- (is(props.active)
83
- ? Surface.Selected.Pressed
84
- : Surface.Default.Pressed)
85
- };
86
- }
87
- `
88
-
89
- const OptionLabel = styled(Label)<{hasIcon: boolean}>`
90
- cursor: pointer;
91
- `
92
-
93
- const CheckedIcon = styled(IconMinor.Check)`
94
- svg {
95
- path {
96
- fill : ${Icons.Highlight}
97
- }
98
- }
99
- `
100
-
101
- const ValueWrapper = styled.div`
102
- width: 100%;
103
- `
104
-
105
- const TitleRow = styled(Heading4)`
106
- height: 44px;
107
- margin: ${Margin.none} ${Margin.xxs};
108
- border-bottom: 1px solid ${Borders.Default.Subdued};
109
- display: flex;
110
- align-items: center;
111
- padding-left: ${Padding.s};
112
- `
113
-
114
- const Row: FC<IMenuComponentProps & {
115
- index: number,
116
- handleClick: (option: IOption) => void
117
- }> = (props) => {
118
-
119
- const {
120
- index,
121
- options = [],
122
- handleClick,
123
- } = props
124
-
125
- const hasIcon = safeArray(options)
126
- .some((option) => isDefined(option['icon']))
127
-
128
- const currentValue =
129
- Array.isArray(props.value) && is(props.multi) ? props.value : [props.value]
130
-
131
- const option = options[index]
132
-
133
- return (
134
- <MenuRow
135
- className="menu-row"
136
- center
137
- active={currentValue.some(val =>
138
- equal(val, option.value)
139
- )}
140
- onClick={() => handleClick(option)}
141
- >
142
- {
143
- maybeRender(hasIcon, option['icon'])
144
- }
145
- <ValueWrapper>
146
- <OptionLabel hasIcon={hasIcon}>
147
- {option.label}
148
- </OptionLabel>
149
- {
150
- maybeRender(option['helperText'],
151
- <OptionLabel subdued hasIcon={hasIcon}>
152
- {option['helperText']}
153
- </OptionLabel>
154
- )
155
- }
156
- </ValueWrapper>
157
- {
158
- maybeRender(currentValue.some(val =>
159
- equal(val, option.value)
160
- ), <CheckedIcon/>)
161
- }
162
- </MenuRow>
163
- )
164
- }
165
-
166
- export const MenuList: FC<IMenuComponentProps> = (props) => {
167
-
168
- const {
169
- menuHeight = 184,
170
- } = props
171
-
172
- const options = safeArray(props.options)
173
-
174
- const optionsHeight = options
175
- .reduce(function (acc, obj) {
176
- return acc + (isDefined(obj['helperText']) ? 72 : 52)
177
- }, 0)
178
-
179
- const height = Math.min(
180
- Math.max(optionsHeight, 40), menuHeight
181
- )
182
-
183
- // eslint-disable-next-line no-null/no-null
184
- const list = useRef<HTMLDivElement>(null)
185
-
186
- // const { open, selectedIndex, rowHeight } = props
187
-
188
- const handleClick = (option: IOption) => {
189
- const newValue = Array.isArray(props.value) && is(props.multi)
190
- ? [...props.value, option.value]
191
- : option.value
192
- props.onSelect(newValue)
193
- }
194
-
195
- /**
196
- * @TODO
197
- * This doesnt work with the styled components that RWC uses, so I'll leave comented for now
198
- *useEffect(() => {
199
- * if(is(open) && isDefined(list.current) && isDefined(selectedIndex)) {
200
- * list.current.scrollTo(0, selectedIndex * (defaultTo(rowHeight, DEFAULT_ROW_HEIGHT)+4))
201
- * }
202
- *}, [open, list, selectedIndex, rowHeight])
203
- */
204
-
205
- if (options.length === 0) {
206
- const { emptyText } = props
207
- return (
208
- <EmptyOptionItem props={props}>
209
- <SelectLabel>
210
- <span>{defaultTo(emptyText, DEFAULT_EMPTY_TEXT)}</span>
211
- </SelectLabel>
212
- </EmptyOptionItem>
213
- )
214
- }
215
-
216
- return (
217
- <MenuListFrame height={height} ref={list}>
218
- {
219
- maybeRender(isDefined(props.menuTitle) && (isNil(props.search) || isEmpty(props.search)),
220
- <TitleRow>{props.menuTitle}</TitleRow>
221
- )
222
- }
223
- {(safeArray(props.options)).map((_, index) => (
224
- <Row
225
- key={index}
226
- index={index}
227
- handleClick={handleClick}
228
- {...props} />
229
- ))}
230
- </MenuListFrame>
231
- )
232
- }
@@ -1,43 +0,0 @@
1
- import { CSSProperties, memo } from 'react'
2
- import { areEqual } from 'react-window'
3
- import { OptionComponent } from './option'
4
- import { IMenuComponentProps } from '../types'
5
- import { equal } from '../utils'
6
- import { is } from '@helpers'
7
-
8
- interface IMenuRowProps {
9
- index: number;
10
- style: CSSProperties;
11
- data: IMenuComponentProps;
12
- }
13
-
14
- export const MenuRow = memo(({ index, style, data }: IMenuRowProps) => {
15
- const {
16
- options = [],
17
- labelComponent,
18
- selectedIndex,
19
- rowHeight,
20
- search,
21
- multi,
22
- onSelect
23
- } = data
24
- const option = options[index]
25
- const currentValue =
26
- Array.isArray(data.value) && is(multi) ? data.value : [data.value]
27
-
28
- return (
29
- <div style={style}>
30
- <OptionComponent
31
- option={option}
32
- labelComponent={labelComponent}
33
- height={rowHeight}
34
- active={currentValue.some(val =>
35
- equal(val, option.value)
36
- )}
37
- selected={selectedIndex === index}
38
- search={search}
39
- onSelect={onSelect}
40
- />
41
- </div>
42
- )
43
- }, areEqual)
@@ -1,134 +0,0 @@
1
- import { useEffect, useRef } from 'react'
2
- import {
3
- IOption,
4
- DEFAULT_EMPTY_TEXT,
5
- DEFAULT_MENU_HEIGHT,
6
- DEFAULT_ROW_HEIGHT,
7
- labelPositionType,
8
- menuPositionType,
9
- IMenuComponentProps
10
- } from '../types'
11
- import { equal } from '../utils'
12
- import { FixedSizeList } from 'react-window'
13
- import { defaultTo, is, isDefined, maybeRender, safeArray } from '@helpers'
14
- import { MenuContainer } from './menu-container'
15
- import { MenuRow } from './menu-row'
16
- import { useMemo } from 'react'
17
- import { SelectLabel } from './select-label'
18
- import { EmptyOptionItem } from './helpers'
19
-
20
- export const Menu = (props: IMenuComponentProps) => {
21
- const {
22
- rowHeight = DEFAULT_ROW_HEIGHT,
23
- selectedIndex,
24
- open,
25
- invalid,
26
- menuHeight = DEFAULT_MENU_HEIGHT,
27
- menuPosition = menuPositionType.BOTTOM,
28
- labelPosition = labelPositionType.TOP,
29
- label,
30
- } = props
31
-
32
- const options = safeArray(props.options)
33
-
34
- type FixedSizeListType = FixedSizeList & HTMLElement
35
- // eslint-disable-next-line no-null/no-null
36
- const list = useRef<FixedSizeList>(null)
37
- // eslint-disable-next-line no-null/no-null
38
- const outerRef = useRef<FixedSizeListType>(null)
39
-
40
- const height = Math.min(
41
- Math.max(options.length * rowHeight, rowHeight) + 10, menuHeight
42
- )
43
-
44
- useEffect(() => {
45
- if (
46
- is(open) &&
47
- isDefined(list.current) &&
48
- selectedIndex !== undefined &&
49
- selectedIndex !== -1
50
- ) {
51
- list.current.scrollToItem(selectedIndex, 'center')
52
- }
53
- }, [open, selectedIndex])
54
-
55
- useEffect(() => {
56
- if (
57
- is(open) && isDefined(outerRef.current) && options.length > 0
58
- ) {
59
- outerRef.current.style.opacity = '1'
60
- }
61
- }, [open, options])
62
-
63
- const itemData = useMemo(() => {
64
- return {
65
- ...props,
66
- options,
67
- onSelect: (value: unknown, option: IOption) => {
68
- if (Array.isArray(props.value) && is(props.multi)) {
69
- const found = props.value.some((item) =>
70
- equal(item, value)
71
- )
72
- const values = found
73
- ? props.value.filter(
74
- (item) =>
75
- !equal(item, value)
76
- )
77
- : Array.from(new Set([...props.value, value]))
78
-
79
- props.onSelect(values, option)
80
- } else {
81
- props.onSelect(value, option)
82
- }
83
- }
84
- }
85
- }, [props, options])
86
-
87
- const renderList = () => {
88
- const MenuComponent = props.menuComponent
89
- const itemCount = options.length
90
-
91
- if (isDefined(MenuComponent)) {
92
- return <MenuComponent {...props} />
93
- }
94
-
95
- if (itemCount === 0) {
96
- const { emptyText } = props
97
- return (
98
- <EmptyOptionItem props={props}>
99
- <SelectLabel>
100
- <span>{defaultTo(emptyText, DEFAULT_EMPTY_TEXT)}</span>
101
- </SelectLabel>
102
- </EmptyOptionItem>
103
- )
104
- }
105
-
106
- return (
107
- <FixedSizeList
108
- className="menu-list"
109
- style={{position: 'absolute'}}
110
- ref={list}
111
- outerRef={outerRef}
112
- width="100%"
113
- height={height}
114
- itemSize={rowHeight}
115
- itemCount={itemCount}
116
- itemData={itemData}
117
- >
118
- {MenuRow}
119
- </FixedSizeList>
120
- )
121
- }
122
-
123
- return maybeRender(open,
124
- <MenuContainer
125
- invalid={invalid}
126
- label={label}
127
- menuHeight={height}
128
- menuPosition={menuPosition}
129
- labelPosition={labelPosition}
130
- >
131
- {renderList()}
132
- </MenuContainer>
133
- )
134
- }
@@ -1,51 +0,0 @@
1
- import { FC, is, isDefined } from '@helpers'
2
- import styled from 'styled-components'
3
- import { Label } from 'components/typography'
4
- import { Icons } from '@foundations'
5
- import { memo } from 'react'
6
- import { IOptionComponentProps, LabelComponentProps } from '../types'
7
- import { areEqual } from 'react-window'
8
- import { IconMinor } from 'components/icon'
9
- import { OptionItem } from './helpers'
10
-
11
- const CheckedIcon = styled(IconMinor.Check)`
12
- svg {
13
- path {
14
- fill : ${Icons.Highlight}
15
- }
16
- }
17
- `
18
-
19
- export const OptionComponent = memo((props: IOptionComponentProps) => {
20
-
21
- const onClick = () => {
22
- props.onSelect(props.option.value, props.option)
23
- }
24
-
25
- const { active, selected, labelComponent, option, height } = props
26
- const SelectLabel = (isDefined(labelComponent) ? labelComponent : Label) as FC<LabelComponentProps>
27
-
28
- const className = [
29
- 'option',
30
- props.className,
31
- is(selected) ? 'selected' : '',
32
- is(active) ? 'active' : ''
33
- ].filter((v) => Boolean(v))
34
-
35
- return (
36
- <OptionItem
37
- className={className.join(' ')}
38
- data-role="option"
39
- center
40
- selected={selected}
41
- active={active}
42
- height={height}
43
- onClick={onClick}
44
- >
45
- <SelectLabel type="option" active={active} {...option}>
46
- {option.label}
47
- </SelectLabel>
48
- {is(active) && <CheckedIcon/>}
49
- </OptionItem>
50
- )
51
- }, areEqual)