@loadsmart/loadsmart-ui 7.6.0 → 8.0.0-beta.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 (531) hide show
  1. package/README.md +13 -1
  2. package/dist/DragDropFile.context-oKnUu6d3.js +33 -0
  3. package/dist/{DragDropFile.context-D-EBrXnw.js.map → DragDropFile.context-oKnUu6d3.js.map} +1 -1
  4. package/dist/components/Banner/Banner.d.ts +2 -2
  5. package/dist/components/Button/Button.d.ts +1 -1
  6. package/dist/components/Calendar/Pickers/PickerButton.d.ts +4 -2
  7. package/dist/components/Card/Card.d.ts +4 -4
  8. package/dist/components/Card/CardTitle.d.ts +2 -2
  9. package/dist/components/DatePicker/DatePicker.d.ts +1 -1
  10. package/dist/components/DatePicker/useDatePicker.d.ts +8 -9
  11. package/dist/components/DatePicker/useDateRangePicker.d.ts +13 -14
  12. package/dist/components/Dialog/Dialog.d.ts +3 -5
  13. package/dist/components/DragDropFile/styles.d.ts +7 -7
  14. package/dist/components/Dropdown/Dropdown.d.ts +3 -3
  15. package/dist/components/Dropdown/DropdownMenu.d.ts +3 -3
  16. package/dist/components/Layout/Stack.d.ts +2 -2
  17. package/dist/components/Loaders/LoadingBar.d.ts +2 -2
  18. package/dist/components/Loaders/index.d.ts +3 -3
  19. package/dist/components/Modal/Modal.d.ts +1 -3
  20. package/dist/components/SideNavigation/Logo/Logo.d.ts +7 -2
  21. package/dist/components/SideNavigation/Menu/Menu.d.ts +7 -2
  22. package/dist/components/SideNavigation/Menu/MenuLink.d.ts +6 -1
  23. package/dist/components/SideNavigation/SideNavigation.d.ts +14 -4
  24. package/dist/components/Steps/StepsStep.d.ts +2 -2
  25. package/dist/components/Table/Table.d.ts +2 -1
  26. package/dist/components/TablePagination/TablePagination.styles.d.ts +5 -4
  27. package/dist/components/TablePagination/TablePaginationActions.d.ts +2 -5
  28. package/dist/components/Text/Text.d.ts +1 -1
  29. package/dist/components/TextField/TextField.d.ts +6 -2
  30. package/dist/components/ToggleGroup/Toggle.d.ts +2 -1
  31. package/dist/components/ToggleGroup/ToggleGroup.d.ts +2 -1
  32. package/dist/components/TopNavigation/Logo/Logo.d.ts +7 -2
  33. package/dist/components/TopNavigation/Menu/Menu.d.ts +2 -2
  34. package/dist/components/TopNavigation/Menu/MenuItemDropdown.d.ts +4 -4
  35. package/dist/components/TopNavigation/OpenSideNavButton/OpenSideNavButton.d.ts +2 -1
  36. package/dist/components/TopNavigation/TopNavigation.d.ts +8 -3
  37. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  38. package/dist/components/VisuallyHidden/VisuallyHidden.stories.d.ts +2 -1
  39. package/dist/index.js +9100 -253
  40. package/dist/index.js.map +1 -1
  41. package/dist/miranda-compatibility.theme-kYNEZ7mW.js +2528 -0
  42. package/dist/{miranda-compatibility.theme-ChPV-BBw.js.map → miranda-compatibility.theme-kYNEZ7mW.js.map} +1 -1
  43. package/dist/prop-K2Z3EsyG.js +81 -0
  44. package/dist/{prop-BwhJNJHO.js.map → prop-K2Z3EsyG.js.map} +1 -1
  45. package/dist/testing/index.js +282 -1
  46. package/dist/testing/index.js.map +1 -1
  47. package/dist/tests/renderer.d.ts +1 -1
  48. package/dist/theming/index.js +22 -1
  49. package/dist/theming/index.js.map +1 -1
  50. package/dist/toArray-Dxb1kUxx.js +14 -0
  51. package/dist/{toArray-BW3gx_gH.js.map → toArray-Dxb1kUxx.js.map} +1 -1
  52. package/dist/tools/index.js +6 -1
  53. package/dist/tools/index.js.map +1 -1
  54. package/dist/utils/toolset/flatten.d.ts +1 -1
  55. package/dist/utils/toolset/get.d.ts +1 -1
  56. package/dist/utils/toolset/isEmpty.d.ts +1 -1
  57. package/dist/utils/toolset/omit.d.ts +1 -1
  58. package/dist/utils/toolset/range.d.ts +1 -1
  59. package/package.json +46 -79
  60. package/dist/DragDropFile.context-D-EBrXnw.js +0 -2
  61. package/dist/DragDropFile.context-jVTIKfj5.mjs +0 -29
  62. package/dist/DragDropFile.context-jVTIKfj5.mjs.map +0 -1
  63. package/dist/index.mjs +0 -8046
  64. package/dist/index.mjs.map +0 -1
  65. package/dist/miranda-compatibility.theme-ChPV-BBw.js +0 -2
  66. package/dist/miranda-compatibility.theme-DQDHkWzC.mjs +0 -2469
  67. package/dist/miranda-compatibility.theme-DQDHkWzC.mjs.map +0 -1
  68. package/dist/prop-5m3D4883.mjs +0 -54
  69. package/dist/prop-5m3D4883.mjs.map +0 -1
  70. package/dist/prop-BwhJNJHO.js +0 -2
  71. package/dist/testing/index.mjs +0 -228
  72. package/dist/testing/index.mjs.map +0 -1
  73. package/dist/theming/index.mjs +0 -20
  74. package/dist/theming/index.mjs.map +0 -1
  75. package/dist/toArray-BW3gx_gH.js +0 -2
  76. package/dist/toArray-DqgeO2ua.mjs +0 -8
  77. package/dist/toArray-DqgeO2ua.mjs.map +0 -1
  78. package/dist/tools/index.mjs +0 -7
  79. package/dist/tools/index.mjs.map +0 -1
  80. package/src/@types/@loadsmart/utilsFunction.d.ts +0 -5
  81. package/src/@types/@loadsmart/utilsObject.d.ts +0 -5
  82. package/src/@types/svg.d.ts +0 -4
  83. package/src/addons/Theme/register.js +0 -590
  84. package/src/common/BackButton/BackButton.tsx +0 -18
  85. package/src/common/BackButton/index.ts +0 -2
  86. package/src/common/CloseButton/CloseButton.tsx +0 -55
  87. package/src/common/CloseButton/index.ts +0 -2
  88. package/src/common/SelectionWrapper.tsx +0 -130
  89. package/src/components/Accordion/Accordion.context.tsx +0 -36
  90. package/src/components/Accordion/Accordion.stories.tsx +0 -186
  91. package/src/components/Accordion/Accordion.test.tsx +0 -209
  92. package/src/components/Accordion/Accordion.tsx +0 -233
  93. package/src/components/Accordion/index.ts +0 -2
  94. package/src/components/Banner/Banner.stories.tsx +0 -213
  95. package/src/components/Banner/Banner.test.tsx +0 -118
  96. package/src/components/Banner/Banner.tsx +0 -418
  97. package/src/components/Banner/index.tsx +0 -2
  98. package/src/components/Breadcrumbs/Breadbrumbs.test.tsx +0 -125
  99. package/src/components/Breadcrumbs/Breadcrumb.tsx +0 -92
  100. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +0 -21
  101. package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -54
  102. package/src/components/Breadcrumbs/index.ts +0 -4
  103. package/src/components/Button/Button.stories.tsx +0 -174
  104. package/src/components/Button/Button.test.tsx +0 -57
  105. package/src/components/Button/Button.tsx +0 -576
  106. package/src/components/Button/index.tsx +0 -2
  107. package/src/components/Calendar/Calendar.helpers.ts +0 -15
  108. package/src/components/Calendar/Calendar.stories.tsx +0 -168
  109. package/src/components/Calendar/Calendar.test.tsx +0 -316
  110. package/src/components/Calendar/Calendar.tsx +0 -130
  111. package/src/components/Calendar/Calendar.types.ts +0 -68
  112. package/src/components/Calendar/Date.helper.test.ts +0 -847
  113. package/src/components/Calendar/Date.helper.ts +0 -461
  114. package/src/components/Calendar/DateFormat.helper.test.ts +0 -171
  115. package/src/components/Calendar/DateFormat.helper.ts +0 -195
  116. package/src/components/Calendar/Month.helper.test.ts +0 -187
  117. package/src/components/Calendar/Month.helper.ts +0 -172
  118. package/src/components/Calendar/PickerModeToggle.tsx +0 -61
  119. package/src/components/Calendar/Pickers/DayPicker.test.tsx +0 -85
  120. package/src/components/Calendar/Pickers/DayPicker.tsx +0 -127
  121. package/src/components/Calendar/Pickers/MonthPicker.test.tsx +0 -77
  122. package/src/components/Calendar/Pickers/MonthPicker.tsx +0 -51
  123. package/src/components/Calendar/Pickers/PickerButton.tsx +0 -119
  124. package/src/components/Calendar/Pickers/YearPicker.test.tsx +0 -75
  125. package/src/components/Calendar/Pickers/YearPicker.tsx +0 -52
  126. package/src/components/Calendar/index.ts +0 -10
  127. package/src/components/Calendar/useCalendar.ts +0 -190
  128. package/src/components/Calendar/usePickerMode.ts +0 -48
  129. package/src/components/Card/Card.stories.tsx +0 -117
  130. package/src/components/Card/Card.test.tsx +0 -139
  131. package/src/components/Card/Card.tsx +0 -106
  132. package/src/components/Card/CardTitle.tsx +0 -43
  133. package/src/components/Card/index.ts +0 -2
  134. package/src/components/Checkbox/Checkbox.stories.tsx +0 -79
  135. package/src/components/Checkbox/Checkbox.test.tsx +0 -66
  136. package/src/components/Checkbox/Checkbox.tsx +0 -170
  137. package/src/components/Checkbox/index.ts +0 -2
  138. package/src/components/DatePicker/DatePicker.stories.tsx +0 -113
  139. package/src/components/DatePicker/DatePicker.test.tsx +0 -174
  140. package/src/components/DatePicker/DatePicker.tsx +0 -140
  141. package/src/components/DatePicker/DatePicker.types.ts +0 -30
  142. package/src/components/DatePicker/DateRangePicker.stories.tsx +0 -128
  143. package/src/components/DatePicker/DateRangePicker.test.tsx +0 -267
  144. package/src/components/DatePicker/DateRangePicker.tsx +0 -110
  145. package/src/components/DatePicker/index.ts +0 -3
  146. package/src/components/DatePicker/useDatePicker.ts +0 -201
  147. package/src/components/DatePicker/useDateRangePicker.ts +0 -224
  148. package/src/components/Dialog/Dialog.stories.tsx +0 -227
  149. package/src/components/Dialog/Dialog.test.tsx +0 -74
  150. package/src/components/Dialog/Dialog.tsx +0 -139
  151. package/src/components/Dialog/index.tsx +0 -4
  152. package/src/components/Dialog/useDialog.tsx +0 -59
  153. package/src/components/DragDropFile/DragDropFile.context.tsx +0 -39
  154. package/src/components/DragDropFile/DragDropFile.stories.tsx +0 -183
  155. package/src/components/DragDropFile/DragDropFile.tsx +0 -11
  156. package/src/components/DragDropFile/components/DropZone.test.tsx +0 -108
  157. package/src/components/DragDropFile/components/DropZone.tsx +0 -145
  158. package/src/components/DragDropFile/components/FileItem.tsx +0 -117
  159. package/src/components/DragDropFile/components/FileList.test.tsx +0 -119
  160. package/src/components/DragDropFile/components/FileList.tsx +0 -47
  161. package/src/components/DragDropFile/components/Wrapper.tsx +0 -22
  162. package/src/components/DragDropFile/index.ts +0 -9
  163. package/src/components/DragDropFile/mocks.ts +0 -23
  164. package/src/components/DragDropFile/styles.tsx +0 -81
  165. package/src/components/DragDropFile/types.ts +0 -85
  166. package/src/components/Drawer/Drawer.stories.tsx +0 -83
  167. package/src/components/Drawer/Drawer.test.tsx +0 -90
  168. package/src/components/Drawer/Drawer.tsx +0 -225
  169. package/src/components/Drawer/index.ts +0 -4
  170. package/src/components/Dropdown/Dropdown.context.ts +0 -13
  171. package/src/components/Dropdown/Dropdown.fixtures.ts +0 -15
  172. package/src/components/Dropdown/Dropdown.stories.tsx +0 -259
  173. package/src/components/Dropdown/Dropdown.test.tsx +0 -173
  174. package/src/components/Dropdown/Dropdown.tsx +0 -141
  175. package/src/components/Dropdown/Dropdown.types.ts +0 -59
  176. package/src/components/Dropdown/DropdownMenu.tsx +0 -263
  177. package/src/components/Dropdown/DropdownTrigger.tsx +0 -368
  178. package/src/components/Dropdown/index.ts +0 -15
  179. package/src/components/Dropdown/useDropdown.test.ts +0 -96
  180. package/src/components/Dropdown/useDropdown.ts +0 -65
  181. package/src/components/EmptyState/EmptyState.mocks.tsx +0 -60
  182. package/src/components/EmptyState/EmptyState.stories.tsx +0 -239
  183. package/src/components/EmptyState/EmptyState.test.tsx +0 -101
  184. package/src/components/EmptyState/EmptyState.tsx +0 -22
  185. package/src/components/EmptyState/EmptyState.types.ts +0 -59
  186. package/src/components/EmptyState/EmptyStateWithIcon.tsx +0 -42
  187. package/src/components/EmptyState/EmptyStateWithIllustration.tsx +0 -72
  188. package/src/components/EmptyState/Illustration.tsx +0 -29
  189. package/src/components/EmptyState/index.ts +0 -4
  190. package/src/components/ErrorMessage/ErrorMessage.stories.tsx +0 -26
  191. package/src/components/ErrorMessage/ErrorMessage.test.tsx +0 -24
  192. package/src/components/ErrorMessage/ErrorMessage.tsx +0 -19
  193. package/src/components/ErrorMessage/index.ts +0 -2
  194. package/src/components/HighlightMatch/HighlightMatch.stories.tsx +0 -24
  195. package/src/components/HighlightMatch/HighlightMatch.test.tsx +0 -37
  196. package/src/components/HighlightMatch/HighlightMatch.tsx +0 -29
  197. package/src/components/HighlightMatch/index.ts +0 -2
  198. package/src/components/Icon/Icon.tsx +0 -55
  199. package/src/components/Icon/assets/back.svg +0 -4
  200. package/src/components/Icon/assets/burger-menu.svg +0 -3
  201. package/src/components/Icon/assets/calendar.svg +0 -5
  202. package/src/components/Icon/assets/caret-down.svg +0 -4
  203. package/src/components/Icon/assets/caret-left.svg +0 -4
  204. package/src/components/Icon/assets/caret-right-last.svg +0 -4
  205. package/src/components/Icon/assets/caret-right.svg +0 -4
  206. package/src/components/Icon/assets/check.svg +0 -4
  207. package/src/components/Icon/assets/chevron-down.svg +0 -3
  208. package/src/components/Icon/assets/circle.svg +0 -3
  209. package/src/components/Icon/assets/close.svg +0 -4
  210. package/src/components/Icon/assets/dots-horizontal.svg +0 -1
  211. package/src/components/Icon/assets/information.svg +0 -4
  212. package/src/components/Icon/assets/minus.svg +0 -4
  213. package/src/components/Icon/assets/plus.svg +0 -4
  214. package/src/components/Icon/assets/refresh.svg +0 -3
  215. package/src/components/Icon/assets/sort-asc.svg +0 -7
  216. package/src/components/Icon/assets/sort-desc.svg +0 -7
  217. package/src/components/Icon/assets/sort.svg +0 -7
  218. package/src/components/Icon/assets/upload.svg +0 -3
  219. package/src/components/Icon/assets/warning.svg +0 -4
  220. package/src/components/Icon/index.ts +0 -2
  221. package/src/components/IconFactory/IconFactory.fixtures.tsx +0 -31
  222. package/src/components/IconFactory/IconFactory.stories.tsx +0 -120
  223. package/src/components/IconFactory/IconFactory.test.tsx +0 -36
  224. package/src/components/IconFactory/IconFactory.tsx +0 -75
  225. package/src/components/IconFactory/index.ts +0 -2
  226. package/src/components/Label/Label.stories.tsx +0 -47
  227. package/src/components/Label/Label.test.tsx +0 -80
  228. package/src/components/Label/Label.tsx +0 -120
  229. package/src/components/Label/index.ts +0 -2
  230. package/src/components/Layout/Box.tsx +0 -98
  231. package/src/components/Layout/Grid.tsx +0 -42
  232. package/src/components/Layout/Group.tsx +0 -55
  233. package/src/components/Layout/Layout.stories.tsx +0 -412
  234. package/src/components/Layout/Layout.tsx +0 -19
  235. package/src/components/Layout/Layout.types.ts +0 -9
  236. package/src/components/Layout/Layout.utils.ts +0 -20
  237. package/src/components/Layout/Sidebar.tsx +0 -75
  238. package/src/components/Layout/Stack.tsx +0 -63
  239. package/src/components/Layout/Switcher.tsx +0 -48
  240. package/src/components/Layout/index.tsx +0 -8
  241. package/src/components/Link/Link.stories.tsx +0 -22
  242. package/src/components/Link/Link.test.tsx +0 -79
  243. package/src/components/Link/Link.tsx +0 -114
  244. package/src/components/Link/index.ts +0 -3
  245. package/src/components/Link/useSafeLink.ts +0 -49
  246. package/src/components/Loaders/LoadingBar.stories.tsx +0 -36
  247. package/src/components/Loaders/LoadingBar.test.tsx +0 -35
  248. package/src/components/Loaders/LoadingBar.tsx +0 -65
  249. package/src/components/Loaders/LoadingDots.stories.tsx +0 -69
  250. package/src/components/Loaders/LoadingDots.test.tsx +0 -22
  251. package/src/components/Loaders/LoadingDots.tsx +0 -68
  252. package/src/components/Loaders/Spinner.stories.tsx +0 -24
  253. package/src/components/Loaders/Spinner.test.tsx +0 -35
  254. package/src/components/Loaders/Spinner.tsx +0 -68
  255. package/src/components/Loaders/index.tsx +0 -3
  256. package/src/components/Modal/Modal.stories.tsx +0 -121
  257. package/src/components/Modal/Modal.test.tsx +0 -46
  258. package/src/components/Modal/Modal.tsx +0 -163
  259. package/src/components/Modal/index.tsx +0 -2
  260. package/src/components/Pagination/Pagination.constants.ts +0 -7
  261. package/src/components/Pagination/Pagination.helper.ts +0 -88
  262. package/src/components/Pagination/Pagination.stories.tsx +0 -29
  263. package/src/components/Pagination/Pagination.test.tsx +0 -102
  264. package/src/components/Pagination/Pagination.tsx +0 -34
  265. package/src/components/Pagination/Pagination.types.ts +0 -55
  266. package/src/components/Pagination/PaginationItem.tsx +0 -74
  267. package/src/components/Pagination/index.ts +0 -2
  268. package/src/components/Pagination/usePagination.test.ts +0 -188
  269. package/src/components/Pagination/usePagination.ts +0 -87
  270. package/src/components/Popover/Popover.stories.tsx +0 -50
  271. package/src/components/Popover/Popover.test.tsx +0 -22
  272. package/src/components/Popover/Popover.tsx +0 -110
  273. package/src/components/Popover/Popover.types.ts +0 -39
  274. package/src/components/Popover/index.ts +0 -11
  275. package/src/components/ProgressBar/ProgressBar.stories.tsx +0 -47
  276. package/src/components/ProgressBar/ProgressBar.test.tsx +0 -40
  277. package/src/components/ProgressBar/ProgressBar.tsx +0 -89
  278. package/src/components/ProgressBar/index.tsx +0 -2
  279. package/src/components/Radio/Radio.stories.tsx +0 -75
  280. package/src/components/Radio/Radio.test.tsx +0 -66
  281. package/src/components/Radio/Radio.tsx +0 -153
  282. package/src/components/Radio/index.ts +0 -2
  283. package/src/components/Section/Section.test.tsx +0 -35
  284. package/src/components/Section/Section.tsx +0 -66
  285. package/src/components/Section/Sections.stories.tsx +0 -56
  286. package/src/components/Section/index.ts +0 -2
  287. package/src/components/Select/Select.constants.ts +0 -12
  288. package/src/components/Select/Select.context.ts +0 -11
  289. package/src/components/Select/Select.fixtures.ts +0 -167
  290. package/src/components/Select/Select.stories.tsx +0 -780
  291. package/src/components/Select/Select.test.tsx +0 -1109
  292. package/src/components/Select/Select.tsx +0 -271
  293. package/src/components/Select/Select.types.ts +0 -148
  294. package/src/components/Select/SelectCreatableOption.tsx +0 -20
  295. package/src/components/Select/SelectEmpty.test.tsx +0 -15
  296. package/src/components/Select/SelectEmpty.tsx +0 -29
  297. package/src/components/Select/SelectOption.test.tsx +0 -78
  298. package/src/components/Select/SelectOption.tsx +0 -79
  299. package/src/components/Select/SelectTrigger.tsx +0 -83
  300. package/src/components/Select/components.tsx +0 -14
  301. package/src/components/Select/index.ts +0 -12
  302. package/src/components/Select/useSelect.helpers.test.ts +0 -184
  303. package/src/components/Select/useSelect.helpers.ts +0 -63
  304. package/src/components/Select/useSelect.test.ts +0 -207
  305. package/src/components/Select/useSelect.ts +0 -540
  306. package/src/components/Select/useSelectExternal.ts +0 -26
  307. package/src/components/SideNavigation/Logo/Logo.test.tsx +0 -19
  308. package/src/components/SideNavigation/Logo/Logo.tsx +0 -26
  309. package/src/components/SideNavigation/Logo/index.ts +0 -1
  310. package/src/components/SideNavigation/Menu/Menu.test.tsx +0 -65
  311. package/src/components/SideNavigation/Menu/Menu.tsx +0 -53
  312. package/src/components/SideNavigation/Menu/MenuBaseItem.tsx +0 -64
  313. package/src/components/SideNavigation/Menu/MenuExpandable.tsx +0 -107
  314. package/src/components/SideNavigation/Menu/MenuLink.tsx +0 -37
  315. package/src/components/SideNavigation/Menu/index.ts +0 -1
  316. package/src/components/SideNavigation/Separator/Separator.test.tsx +0 -14
  317. package/src/components/SideNavigation/Separator/Separator.tsx +0 -20
  318. package/src/components/SideNavigation/Separator/index.ts +0 -1
  319. package/src/components/SideNavigation/SideNavigation.stories.tsx +0 -69
  320. package/src/components/SideNavigation/SideNavigation.test.tsx +0 -21
  321. package/src/components/SideNavigation/SideNavigation.tsx +0 -47
  322. package/src/components/SideNavigation/index.ts +0 -5
  323. package/src/components/SideNavigation/useSideNavigation.ts +0 -36
  324. package/src/components/Steps/ProgressSteps/ProgressStep.tsx +0 -163
  325. package/src/components/Steps/ProgressSteps/ProgressSteps.tsx +0 -37
  326. package/src/components/Steps/ProgressSteps/index.ts +0 -1
  327. package/src/components/Steps/Steps.fixtures.ts +0 -11
  328. package/src/components/Steps/Steps.helpers.ts +0 -11
  329. package/src/components/Steps/Steps.stories.tsx +0 -65
  330. package/src/components/Steps/Steps.test.tsx +0 -78
  331. package/src/components/Steps/Steps.tsx +0 -53
  332. package/src/components/Steps/Steps.types.ts +0 -5
  333. package/src/components/Steps/StepsContext.ts +0 -5
  334. package/src/components/Steps/StepsStep.tsx +0 -58
  335. package/src/components/Steps/index.ts +0 -6
  336. package/src/components/Steps/useStep.test.tsx +0 -217
  337. package/src/components/Steps/useSteps.ts +0 -131
  338. package/src/components/Switch/Switch.stories.tsx +0 -65
  339. package/src/components/Switch/Switch.test.tsx +0 -60
  340. package/src/components/Switch/Switch.tsx +0 -209
  341. package/src/components/Switch/index.ts +0 -2
  342. package/src/components/Table/Selection.tsx +0 -202
  343. package/src/components/Table/Table.fixtures.ts +0 -101
  344. package/src/components/Table/Table.stories.tsx +0 -568
  345. package/src/components/Table/Table.test.tsx +0 -310
  346. package/src/components/Table/Table.tsx +0 -523
  347. package/src/components/Table/Table.types.ts +0 -93
  348. package/src/components/Table/TableSortHandle.tsx +0 -31
  349. package/src/components/Table/index.tsx +0 -2
  350. package/src/components/Table/useSortBy.test.ts +0 -96
  351. package/src/components/Table/useSortBy.ts +0 -92
  352. package/src/components/Table/useSortBy.types.ts +0 -21
  353. package/src/components/TablePagination/RowsPerPage.tsx +0 -81
  354. package/src/components/TablePagination/TablePagination.stories.tsx +0 -42
  355. package/src/components/TablePagination/TablePagination.styles.ts +0 -13
  356. package/src/components/TablePagination/TablePagination.test.tsx +0 -111
  357. package/src/components/TablePagination/TablePagination.tsx +0 -49
  358. package/src/components/TablePagination/TablePagination.types.ts +0 -69
  359. package/src/components/TablePagination/TablePaginationActions.tsx +0 -144
  360. package/src/components/TablePagination/index.ts +0 -2
  361. package/src/components/Tabs/Tabs.stories.tsx +0 -78
  362. package/src/components/Tabs/Tabs.test.tsx +0 -103
  363. package/src/components/Tabs/Tabs.tsx +0 -287
  364. package/src/components/Tabs/Tabs.types.ts +0 -7
  365. package/src/components/Tabs/TabsContext.ts +0 -10
  366. package/src/components/Tabs/index.ts +0 -2
  367. package/src/components/Tag/Tag.stories.tsx +0 -112
  368. package/src/components/Tag/Tag.test.tsx +0 -19
  369. package/src/components/Tag/Tag.tsx +0 -393
  370. package/src/components/Tag/index.ts +0 -2
  371. package/src/components/Text/Text.stories.tsx +0 -59
  372. package/src/components/Text/Text.test.tsx +0 -48
  373. package/src/components/Text/Text.tsx +0 -14
  374. package/src/components/Text/index.ts +0 -2
  375. package/src/components/TextField/TextField.stories.tsx +0 -90
  376. package/src/components/TextField/TextField.test.tsx +0 -36
  377. package/src/components/TextField/TextField.tsx +0 -244
  378. package/src/components/TextField/index.ts +0 -6
  379. package/src/components/TextField/useTextField.tsx +0 -26
  380. package/src/components/Textarea/Textarea.stories.tsx +0 -101
  381. package/src/components/Textarea/Textarea.test.tsx +0 -14
  382. package/src/components/Textarea/Textarea.tsx +0 -230
  383. package/src/components/Textarea/index.ts +0 -2
  384. package/src/components/Toast/Toast.stories.tsx +0 -50
  385. package/src/components/Toast/Toast.test.tsx +0 -24
  386. package/src/components/Toast/Toast.tsx +0 -141
  387. package/src/components/Toast/icons/close.svg +0 -3
  388. package/src/components/Toast/icons/danger.svg +0 -4
  389. package/src/components/Toast/icons/neutral.svg +0 -4
  390. package/src/components/Toast/icons/success.svg +0 -3
  391. package/src/components/Toast/icons/warning.svg +0 -4
  392. package/src/components/Toast/index.tsx +0 -2
  393. package/src/components/ToggleGroup/Toggle.test.tsx +0 -76
  394. package/src/components/ToggleGroup/Toggle.tsx +0 -158
  395. package/src/components/ToggleGroup/ToggleGroup.constants.ts +0 -16
  396. package/src/components/ToggleGroup/ToggleGroup.stories.tsx +0 -145
  397. package/src/components/ToggleGroup/ToggleGroup.test.tsx +0 -237
  398. package/src/components/ToggleGroup/ToggleGroup.tsx +0 -165
  399. package/src/components/ToggleGroup/ToggleGroup.types.ts +0 -35
  400. package/src/components/ToggleGroup/ToggleGroupContext.ts +0 -13
  401. package/src/components/ToggleGroup/index.ts +0 -3
  402. package/src/components/Tooltip/Tooltip.stories.tsx +0 -82
  403. package/src/components/Tooltip/Tooltip.test.tsx +0 -49
  404. package/src/components/Tooltip/Tooltip.tsx +0 -185
  405. package/src/components/Tooltip/index.ts +0 -2
  406. package/src/components/TopNavigation/Logo/Logo.test.tsx +0 -21
  407. package/src/components/TopNavigation/Logo/Logo.tsx +0 -20
  408. package/src/components/TopNavigation/Logo/index.ts +0 -1
  409. package/src/components/TopNavigation/Menu/Menu.test.tsx +0 -125
  410. package/src/components/TopNavigation/Menu/Menu.tsx +0 -62
  411. package/src/components/TopNavigation/Menu/MenuItemDropdown.tsx +0 -118
  412. package/src/components/TopNavigation/Menu/MenuItemIcon.tsx +0 -50
  413. package/src/components/TopNavigation/Menu/index.ts +0 -1
  414. package/src/components/TopNavigation/OpenSideNavButton/OpenSideNavButton.tsx +0 -28
  415. package/src/components/TopNavigation/OpenSideNavButton/index.ts +0 -1
  416. package/src/components/TopNavigation/TopNavigation.stories.tsx +0 -42
  417. package/src/components/TopNavigation/TopNavigation.tsx +0 -47
  418. package/src/components/TopNavigation/index.ts +0 -2
  419. package/src/components/VisuallyHidden/VisuallyHidden.mdx +0 -26
  420. package/src/components/VisuallyHidden/VisuallyHidden.stories.tsx +0 -32
  421. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +0 -18
  422. package/src/components/VisuallyHidden/VisuallyHidden.tsx +0 -6
  423. package/src/components/VisuallyHidden/index.ts +0 -1
  424. package/src/docs/tools/DatePickerEvent.stories.mdx +0 -108
  425. package/src/docs/tools/DragDropFileEvent.stories.mdx +0 -75
  426. package/src/docs/tools/conditional.stories.mdx +0 -251
  427. package/src/docs/tools/selectEvent.stories.mdx +0 -121
  428. package/src/hooks/useClickOutside/index.ts +0 -1
  429. package/src/hooks/useClickOutside/useClickOutside.test.tsx +0 -116
  430. package/src/hooks/useClickOutside/useClickOutside.ts +0 -65
  431. package/src/hooks/useDidMount/index.ts +0 -1
  432. package/src/hooks/useDidMount/useDidMount.test.tsx +0 -38
  433. package/src/hooks/useDidMount/useDidMount.ts +0 -20
  434. package/src/hooks/useFingerprint/index.ts +0 -1
  435. package/src/hooks/useFingerprint/useFingerprint.test.ts +0 -76
  436. package/src/hooks/useFingerprint/useFingerprint.ts +0 -94
  437. package/src/hooks/useFocusTrap/index.ts +0 -2
  438. package/src/hooks/useFocusTrap/useFocusTrap.stories.tsx +0 -87
  439. package/src/hooks/useFocusTrap/useFocusTrap.test.tsx +0 -129
  440. package/src/hooks/useFocusTrap/useFocusTrap.ts +0 -187
  441. package/src/hooks/useFocusWithin/index.ts +0 -2
  442. package/src/hooks/useFocusWithin/useFocusWithin.test.tsx +0 -71
  443. package/src/hooks/useFocusWithin/useFocusWithin.ts +0 -62
  444. package/src/hooks/useHeightExpansionToggler/index.ts +0 -2
  445. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.test.tsx +0 -85
  446. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.ts +0 -54
  447. package/src/hooks/useID/index.ts +0 -1
  448. package/src/hooks/useID/useID.ts +0 -18
  449. package/src/hooks/useSelectable/SelectableStrategy.test.ts +0 -424
  450. package/src/hooks/useSelectable/SelectableStrategy.ts +0 -143
  451. package/src/hooks/useSelectable/index.ts +0 -8
  452. package/src/hooks/useSelectable/useSelectable.test.ts +0 -221
  453. package/src/hooks/useSelectable/useSelectable.ts +0 -156
  454. package/src/hooks/useSelectable/useSelectable.types.ts +0 -45
  455. package/src/hooks/useWindowResize/index.ts +0 -1
  456. package/src/hooks/useWindowResize/useWindowResize.ts +0 -27
  457. package/src/index.ts +0 -188
  458. package/src/stories/assets/code-brackets.svg +0 -1
  459. package/src/stories/assets/colors.svg +0 -1
  460. package/src/stories/assets/comments.svg +0 -1
  461. package/src/stories/assets/direction.svg +0 -1
  462. package/src/stories/assets/flow.svg +0 -1
  463. package/src/stories/assets/plugin.svg +0 -1
  464. package/src/stories/assets/repo.svg +0 -1
  465. package/src/stories/assets/stackalt.svg +0 -1
  466. package/src/stories/introduction.stories.mdx +0 -57
  467. package/src/stories/startPage.stories.mdx +0 -95
  468. package/src/styles/activatable.tsx +0 -30
  469. package/src/styles/disableable.tsx +0 -45
  470. package/src/styles/ellipsizable.tsx +0 -14
  471. package/src/styles/focusable.tsx +0 -32
  472. package/src/styles/font.test.ts +0 -31
  473. package/src/styles/font.tsx +0 -40
  474. package/src/styles/hidden.tsx +0 -29
  475. package/src/styles/hoverable.tsx +0 -30
  476. package/src/styles/transition.tsx +0 -25
  477. package/src/styles/typography.test.ts +0 -93
  478. package/src/styles/typography.ts +0 -190
  479. package/src/testing/DatePickerEvent/DatePickerEvent.ts +0 -117
  480. package/src/testing/DatePickerEvent/DateRangePickerEvent.ts +0 -83
  481. package/src/testing/DatePickerEvent/index.ts +0 -2
  482. package/src/testing/DragDropFileEvent/DragDropFileEvent.ts +0 -56
  483. package/src/testing/DragDropFileEvent/index.ts +0 -1
  484. package/src/testing/SelectEvent/SelectEvent.test.tsx +0 -192
  485. package/src/testing/SelectEvent/SelectEvent.ts +0 -264
  486. package/src/testing/SelectEvent/index.ts +0 -1
  487. package/src/testing/getInterpolatedStyles/getInterpolatedStyles.ts +0 -25
  488. package/src/testing/getInterpolatedStyles/index.ts +0 -1
  489. package/src/testing/index.ts +0 -6
  490. package/src/testing/renderWithDragDropFileProvider/index.ts +0 -1
  491. package/src/testing/renderWithDragDropFileProvider/renderWithDragDropFileProvider.tsx +0 -28
  492. package/src/tests/generator.ts +0 -127
  493. package/src/tests/renderer.tsx +0 -39
  494. package/src/theming/index.ts +0 -42
  495. package/src/theming/themes/alice.theme.ts +0 -1022
  496. package/src/theming/themes/index.ts +0 -3
  497. package/src/theming/themes/loadsmart.theme.ts +0 -1019
  498. package/src/theming/themes/miranda-compatibility.theme.ts +0 -972
  499. package/src/theming/theming.helpers.ts +0 -95
  500. package/src/tools/conditional.test.ts +0 -166
  501. package/src/tools/conditional.ts +0 -127
  502. package/src/tools/index.ts +0 -2
  503. package/src/tools/prop.test.ts +0 -52
  504. package/src/tools/prop.ts +0 -36
  505. package/src/utils/toolset/awaitTo.ts +0 -24
  506. package/src/utils/toolset/flatten.ts +0 -3
  507. package/src/utils/toolset/formatBytes.test.ts +0 -45
  508. package/src/utils/toolset/formatBytes.ts +0 -18
  509. package/src/utils/toolset/get.ts +0 -2
  510. package/src/utils/toolset/getID.test.ts +0 -57
  511. package/src/utils/toolset/getID.ts +0 -93
  512. package/src/utils/toolset/getOrdinalSuffix.test.ts +0 -27
  513. package/src/utils/toolset/getOrdinalSuffix.ts +0 -15
  514. package/src/utils/toolset/highlightMatch.test.tsx +0 -32
  515. package/src/utils/toolset/highlightMatch.tsx +0 -32
  516. package/src/utils/toolset/interleave.test.ts +0 -40
  517. package/src/utils/toolset/interleave.ts +0 -23
  518. package/src/utils/toolset/isEmpty.ts +0 -2
  519. package/src/utils/toolset/isThenable.test.ts +0 -40
  520. package/src/utils/toolset/isThenable.ts +0 -14
  521. package/src/utils/toolset/keyboard.ts +0 -50
  522. package/src/utils/toolset/omit.ts +0 -2
  523. package/src/utils/toolset/pluralize.ts +0 -16
  524. package/src/utils/toolset/range.ts +0 -2
  525. package/src/utils/toolset/rem.ts +0 -7
  526. package/src/utils/toolset/styledCompounds.ts +0 -22
  527. package/src/utils/toolset/toArray.ts +0 -16
  528. package/src/utils/types/ColorScheme.ts +0 -3
  529. package/src/utils/types/EventLike.ts +0 -11
  530. package/src/utils/types/InterpolatedStyle.ts +0 -3
  531. package/src/utils/types/Status.ts +0 -8
@@ -1,145 +0,0 @@
1
- import React, { useRef, useState, useCallback } from 'react'
2
- import clsx from 'clsx'
3
-
4
- import toArray from 'utils/toolset/toArray'
5
- import KeyboardKey from 'utils/toolset/keyboard'
6
- import pluralize from 'utils/toolset/pluralize'
7
-
8
- import { Text } from 'components/Text'
9
-
10
- import { useDragDropFileContext } from '../DragDropFile.context'
11
-
12
- import { DropZoneWrapper, HiddenInput, UploadIcon } from '../styles'
13
- import type { DropZoneProps } from '../types'
14
-
15
- const DropZone = ({
16
- className,
17
- hint,
18
- multiple = false,
19
- accept,
20
- disabled = false,
21
- error = false,
22
- renderCustomContent,
23
- ...props
24
- }: DropZoneProps): JSX.Element => {
25
- const { onFilesAdded } = useDragDropFileContext()
26
-
27
- const inputRef = useRef<HTMLInputElement>(null)
28
- const [isDragging, setIsDragging] = useState(false)
29
-
30
- const onChangeInput = useCallback(
31
- (event: React.ChangeEvent<HTMLInputElement>) => {
32
- event.preventDefault()
33
- event.stopPropagation()
34
-
35
- onFilesAdded(Array.from(event.currentTarget.files || []))
36
- },
37
- [onFilesAdded]
38
- )
39
-
40
- const onKeyPress = useCallback(
41
- (event: React.KeyboardEvent) => {
42
- if (!disabled && inputRef.current && KeyboardKey(event).is('ENTER')) {
43
- inputRef.current.click()
44
- }
45
- },
46
- [disabled, inputRef]
47
- )
48
-
49
- const onDrop = useCallback(
50
- (event: React.DragEvent<HTMLDivElement>) => {
51
- event.preventDefault()
52
- event.stopPropagation()
53
-
54
- if (!disabled) {
55
- if (isDragging) {
56
- setIsDragging(false)
57
- }
58
-
59
- onFilesAdded(Array.from(event.dataTransfer.files || []))
60
- }
61
- },
62
- [disabled, isDragging, onFilesAdded]
63
- )
64
-
65
- const onDragStart = useCallback((event: React.DragEvent<HTMLDivElement>) => {
66
- event.preventDefault()
67
- }, [])
68
-
69
- const onDragOver = useCallback(
70
- (event: React.DragEvent<HTMLDivElement>) => {
71
- event.preventDefault()
72
-
73
- if (!disabled && !isDragging) {
74
- setIsDragging(true)
75
- }
76
- },
77
- [disabled, isDragging]
78
- )
79
-
80
- const onDragLeave = useCallback(
81
- (event: React.DragEvent<HTMLDivElement>) => {
82
- event.preventDefault()
83
-
84
- if (isDragging) {
85
- setIsDragging(false)
86
- }
87
- },
88
- [isDragging]
89
- )
90
-
91
- const renderDefaultContent = useCallback(
92
- () => (
93
- <>
94
- <UploadIcon name="upload" size={48} />
95
- <Text variant="body" color="color-neutral-darker">
96
- {`Drag and drop your ${pluralize(Number(!multiple), 'files', 'file')} here or `}
97
- <Text as="a" color={disabled ? 'color-neutral' : 'color-accent'} variant="body-bold">
98
- {`Browse ${pluralize(Number(!multiple), 'Files', 'File')}`}
99
- </Text>
100
- </Text>
101
- {hint && (
102
- <Text variant="caption" color="color-neutral-dark">
103
- {hint}
104
- </Text>
105
- )}
106
- </>
107
- ),
108
- [multiple, disabled, hint]
109
- )
110
-
111
- return (
112
- <DropZoneWrapper
113
- space="m"
114
- align="center"
115
- justify="center"
116
- className={clsx(className, {
117
- 'is-disabled': disabled,
118
- 'is-focused': isDragging,
119
- })}
120
- disabled={disabled}
121
- error={error}
122
- tabIndex={0}
123
- role="button"
124
- aria-pressed="false"
125
- onKeyPress={onKeyPress}
126
- onDrop={onDrop}
127
- onDragStart={onDragStart}
128
- onDragOver={onDragOver}
129
- onDragLeave={onDragLeave}
130
- >
131
- {(renderCustomContent || renderDefaultContent)({ isDragging })}
132
- <HiddenInput
133
- onInput={onChangeInput}
134
- type="file"
135
- ref={inputRef}
136
- accept={accept ? toArray(accept).join(',') : undefined}
137
- disabled={disabled}
138
- multiple={multiple}
139
- {...props}
140
- />
141
- </DropZoneWrapper>
142
- )
143
- }
144
-
145
- export default DropZone
@@ -1,117 +0,0 @@
1
- import React from 'react'
2
-
3
- import formatBytes from 'utils/toolset/formatBytes'
4
-
5
- import { Stack, Group } from 'components/Layout'
6
- import { Bar } from 'components/Loaders/LoadingBar'
7
- import { Button } from 'components/Button'
8
- import { Icon } from 'components/Icon'
9
- import { Text } from 'components/Text'
10
-
11
- import type { FileItemProps, FileStatus } from '../types'
12
- import { Divider } from '../styles'
13
-
14
- const FileName = ({ file }: Pick<FileItemProps, 'file'>): JSX.Element =>
15
- file.size ? (
16
- <Group space="m" align="center">
17
- <Text variant="caption">{file.name}</Text>
18
- <Text variant="number-sm">{formatBytes(file.size)}</Text>
19
- </Group>
20
- ) : (
21
- <Text variant="caption">{file.name}</Text>
22
- )
23
-
24
- type FileActionButtonProps = Pick<FileItemProps, 'onRemove' | 'onRetry' | 'disabled'> & {
25
- type: 'remove' | 'retry'
26
- }
27
-
28
- const FileActionButton = ({
29
- type,
30
- onRemove,
31
- onRetry,
32
- disabled,
33
- }: FileActionButtonProps): JSX.Element => {
34
- const { iconName, label, onClick } =
35
- type === 'remove'
36
- ? {
37
- iconName: 'close',
38
- label: 'REMOVE',
39
- onClick: onRemove,
40
- }
41
- : {
42
- iconName: 'refresh',
43
- label: 'RETRY',
44
- onClick: onRetry,
45
- }
46
-
47
- return (
48
- <Button
49
- scale="small"
50
- variant="tertiary"
51
- leading={<Icon name={iconName} size={12} />}
52
- onClick={onClick}
53
- disabled={disabled}
54
- >
55
- {label}
56
- </Button>
57
- )
58
- }
59
-
60
- const LoadingFile = ({ file, ...actionProps }: FileItemProps): JSX.Element => (
61
- <Stack as="li" space="s">
62
- <Group align="center" justify="space-between">
63
- <FileName file={file} />
64
- <FileActionButton type="remove" {...actionProps} />
65
- </Group>
66
- <Bar />
67
- </Stack>
68
- )
69
-
70
- const ErrorFile = ({ file, errorMessage, ...actionProps }: FileItemProps): JSX.Element => (
71
- <Stack as="li" space="s">
72
- <Group align="center" justify="space-between">
73
- <Group space="s" align="center">
74
- <Icon name="warning" size={12} />
75
- <FileName file={file} />
76
- </Group>
77
- {actionProps.onRetry ? (
78
- <Group space="none" align="center">
79
- <FileActionButton type="retry" {...actionProps} />
80
- <Divider />
81
- <FileActionButton type="remove" {...actionProps} />
82
- </Group>
83
- ) : (
84
- <FileActionButton type="remove" {...actionProps} />
85
- )}
86
- </Group>
87
- {errorMessage && (
88
- <Text variant="caption" color="color-danger">
89
- {errorMessage}
90
- </Text>
91
- )}
92
- </Stack>
93
- )
94
-
95
- const SuccessFile = ({ file, ...actionProps }: FileItemProps): JSX.Element => (
96
- <Group as="li" align="center" justify="space-between">
97
- <Group space="s" align="center">
98
- <Icon name="check" size={12} />
99
- <FileName file={file} />
100
- </Group>
101
- <FileActionButton type="remove" {...actionProps} />
102
- </Group>
103
- )
104
-
105
- const FILE_ITEM_BY_STATUS: Record<FileStatus, (props: FileItemProps) => JSX.Element> = {
106
- loading: LoadingFile,
107
- error: ErrorFile,
108
- success: SuccessFile,
109
- }
110
-
111
- const FileItem = (props: FileItemProps): JSX.Element => {
112
- const FileItemComponent = FILE_ITEM_BY_STATUS[props.status]
113
-
114
- return <FileItemComponent {...props} />
115
- }
116
-
117
- export default FileItem
@@ -1,119 +0,0 @@
1
- import React from 'react'
2
- import { screen, within } from '@testing-library/react'
3
- import userEvent from '@testing-library/user-event'
4
-
5
- import formatBytes from 'utils/toolset/formatBytes'
6
-
7
- import { renderWithDragDropFileProvider } from '../../../testing'
8
-
9
- import type { FileListProps, DragDropFileContextValue } from '../types'
10
- import { fileListMock, loadingFileItem, errorFileItem, successFileItem } from '../mocks'
11
- import FileList from './FileList'
12
-
13
- const onRemoveFile = jest.fn()
14
- const onRetryUpload = jest.fn()
15
-
16
- const setup = (
17
- propsOverrides?: FileListProps,
18
- contextValueOverrides?: Partial<DragDropFileContextValue>
19
- ) =>
20
- renderWithDragDropFileProvider(<FileList {...propsOverrides} />, {
21
- fileList: fileListMock,
22
- onRemoveFile,
23
- onRetryUpload,
24
- ...contextValueOverrides,
25
- })
26
-
27
- describe('<DragDropFile.FileList />', () => {
28
- it('does not render if the files list is empty', () => {
29
- const contextValue = { fileList: [] }
30
-
31
- const { container } = setup({}, contextValue)
32
-
33
- expect(container).toBeEmptyDOMElement()
34
- })
35
-
36
- it('renders the number of files with success status as a title', () => {
37
- const contextValue = { fileList: [loadingFileItem, errorFileItem, successFileItem] }
38
-
39
- setup({}, contextValue)
40
-
41
- expect(screen.queryByText('1 File uploaded')).toBeVisible()
42
- })
43
-
44
- it('renders the name of every file provided in a list item', () => {
45
- setup()
46
-
47
- const lis = screen.getAllByRole('listitem')
48
-
49
- for (let i = 0; i < fileListMock.length; i++) {
50
- const file = fileListMock[i].file
51
-
52
- expect(within(lis[i]).getByText(file.name)).toBeVisible()
53
- }
54
- })
55
-
56
- it('renders the formatted size if available of every file provided in a list item', () => {
57
- const filesWithSize = fileListMock.filter((item) => !!item.file.size)
58
-
59
- setup({}, { fileList: filesWithSize })
60
-
61
- const lis = screen.getAllByRole('listitem')
62
-
63
- for (let i = 0; i < filesWithSize.length; i++) {
64
- const file = filesWithSize[i].file
65
-
66
- expect(within(lis[i]).getByText(formatBytes(file.size))).toBeVisible()
67
- }
68
- })
69
-
70
- it('calls onRemoveFile on remove button click on each file item', () => {
71
- setup()
72
-
73
- const lis = screen.getAllByRole('listitem')
74
-
75
- for (let i = 0; i < fileListMock.length; i++) {
76
- const fileItem = fileListMock[i]
77
-
78
- userEvent.click(within(lis[i]).getByRole('button', { name: 'REMOVE' }))
79
-
80
- expect(onRemoveFile).toHaveBeenCalledWith(fileItem, i)
81
- }
82
- })
83
-
84
- it('disables the remove button on each file item if disabled is true', () => {
85
- setup({ disabled: true })
86
-
87
- const lis = screen.getAllByRole('listitem')
88
-
89
- for (let i = 0; i < fileListMock.length; i++) {
90
- expect(within(lis[i]).getByRole('button', { name: 'REMOVE' })).toBeDisabled()
91
- }
92
- })
93
-
94
- it('does not render a retry button on error items if onRetryUpload is not provided', () => {
95
- const contextValue = { onRetryUpload: undefined, fileList: [errorFileItem] }
96
-
97
- setup({}, contextValue)
98
-
99
- expect(screen.queryByRole('button', { name: 'RETRY' })).not.toBeInTheDocument()
100
- })
101
-
102
- it('calls onRetryUpload on retry button click on each file item with error status', () => {
103
- setup()
104
-
105
- const lis = screen.getAllByRole('listitem')
106
-
107
- for (let i = 0; i < fileListMock.length; i++) {
108
- const fileItem = fileListMock[i]
109
-
110
- if (fileItem.status === 'error') {
111
- userEvent.click(within(lis[i]).getByRole('button', { name: 'RETRY' }))
112
-
113
- expect(onRetryUpload).toHaveBeenCalledWith(fileItem, i)
114
- } else {
115
- expect(within(lis[i]).queryByRole('button', { name: 'RETRY' })).not.toBeInTheDocument()
116
- }
117
- }
118
- })
119
- })
@@ -1,47 +0,0 @@
1
- import React from 'react'
2
-
3
- import isEmpty from 'utils/toolset/isEmpty'
4
- import pluralize from 'utils/toolset/pluralize'
5
-
6
- import { Stack } from 'components/Layout'
7
- import { Text } from 'components/Text'
8
-
9
- import { useDragDropFileContext } from '../DragDropFile.context'
10
-
11
- import type { FileListProps } from '../types'
12
- import { FileListUL } from '../styles'
13
-
14
- import FileItem from './FileItem'
15
-
16
- const FileList = ({ disabled, ...props }: FileListProps): JSX.Element | null => {
17
- const { fileList, onRemoveFile, onRetryUpload } = useDragDropFileContext()
18
-
19
- if (isEmpty(fileList)) {
20
- return null
21
- }
22
-
23
- const uploadedFiles = fileList.filter((file) => file.status === 'success').length
24
-
25
- return (
26
- <Stack space="m" {...props}>
27
- <Text variant="heading-sm-bold">{`${uploadedFiles} ${pluralize(
28
- uploadedFiles,
29
- 'Files',
30
- 'File'
31
- )} uploaded`}</Text>
32
- <FileListUL space="m">
33
- {fileList.map((item, index) => (
34
- <FileItem
35
- key={`file-${item.file.name}-${index}`}
36
- disabled={disabled}
37
- onRemove={() => onRemoveFile(item, index)}
38
- onRetry={onRetryUpload ? () => onRetryUpload(item, index) : undefined}
39
- {...item}
40
- />
41
- ))}
42
- </FileListUL>
43
- </Stack>
44
- )
45
- }
46
-
47
- export default FileList
@@ -1,22 +0,0 @@
1
- import React from 'react'
2
-
3
- import isEmpty from 'utils/toolset/isEmpty'
4
-
5
- import { useDragDropFileContext } from '../DragDropFile.context'
6
- import { DragDropFileWrapper } from '../styles'
7
- import type { WrapperProps } from '../types'
8
-
9
- /**
10
- * This is a `Stack` component customized with the needed spacing between the DragDropFile inner components
11
- */
12
- const Wrapper = ({ children, ...props }: WrapperProps) => {
13
- const { fileList } = useDragDropFileContext()
14
-
15
- return (
16
- <DragDropFileWrapper space="l" withFileList={!isEmpty(fileList)} {...props}>
17
- {children}
18
- </DragDropFileWrapper>
19
- )
20
- }
21
-
22
- export default Wrapper
@@ -1,9 +0,0 @@
1
- export { DragDropFileProvider, useDragDropFileContext } from './DragDropFile.context'
2
- export { default as DragDropFile } from './DragDropFile'
3
- export type {
4
- FileStatus,
5
- FileWithStatus,
6
- DropZoneProps,
7
- DragDropFileProviderProps,
8
- DragDropFileContextValue,
9
- } from './types'
@@ -1,23 +0,0 @@
1
- import type { FileWithStatus } from './types'
2
-
3
- export const loadingFile = new File([''], 'loading-file.png')
4
-
5
- export const errorFile = new File([''], 'error-file.png')
6
- Object.defineProperty(errorFile, 'size', { value: 1024 * 1024 * 2 })
7
-
8
- export const successFile = new File([''], 'success-file.png')
9
- Object.defineProperty(successFile, 'size', { value: 420 })
10
-
11
- export const filesMock: File[] = [loadingFile, errorFile, successFile]
12
-
13
- export const loadingFileItem: FileWithStatus = { file: loadingFile, status: 'loading' }
14
-
15
- export const errorFileItem: FileWithStatus = {
16
- file: errorFile,
17
- status: 'error',
18
- errorMessage: 'Failed: File size exceeded.',
19
- }
20
-
21
- export const successFileItem: FileWithStatus = { file: successFile, status: 'success' }
22
-
23
- export const fileListMock: FileWithStatus[] = [loadingFileItem, errorFileItem, successFileItem]
@@ -1,81 +0,0 @@
1
- import React from 'react'
2
- import styled from 'styled-components'
3
-
4
- import { getToken } from 'theming'
5
- import conditional, { whenProps } from 'tools/conditional'
6
- import prop from 'tools/prop'
7
- import transition from 'styles/transition'
8
- import hoverable from 'styles/hoverable'
9
- import focusable from 'styles/focusable'
10
- import disableable from 'styles/disableable'
11
- import hidden from 'styles/hidden'
12
-
13
- import { StackProps, Stack } from 'components/Layout/Stack'
14
- import { Icon } from 'components/Icon'
15
-
16
- import type { DropZoneProps } from './types'
17
-
18
- export const DragDropFileWrapper = styled(Stack)<{ withFileList: boolean }>`
19
- width: 100%;
20
-
21
- & > label + p {
22
- margin-top: ${conditional({
23
- 'space-m': whenProps({ withFileList: true }),
24
- 'space-l': whenProps({ withFileList: false }),
25
- })};
26
- }
27
- `
28
-
29
- export const DropZoneWrapper = styled((props: StackProps) => <Stack as="label" {...props} />)<
30
- Pick<DropZoneProps, 'disabled' | 'error'>
31
- >`
32
- ${transition({ property: 'border-color, box-shadow, opacity' })}
33
-
34
- cursor: pointer;
35
-
36
- background-color: ${getToken('color-neutral-white')};
37
- border-radius: ${getToken('border-radius-s')};
38
- border: 2px dashed;
39
- border-color: ${conditional({
40
- 'color-neutral-light': whenProps({ error: false }),
41
- 'color-danger': whenProps({ disabled: false, error: true }),
42
- })};
43
-
44
- padding: ${getToken('space-l')} ${getToken('space-3xl')};
45
-
46
- text-align: center;
47
-
48
- ${hoverable`
49
- border-color: ${conditional({
50
- 'color-accent': whenProps({ disabled: false, error: false }),
51
- })};
52
- `}
53
-
54
- ${focusable`
55
- border-color: ${conditional({
56
- 'color-accent': whenProps({ disabled: false, error: false }),
57
- })};
58
- box-shadow: ${getToken('shadow-glow-primary')};
59
- `}
60
-
61
- ${disableable()}
62
- `
63
-
64
- export const HiddenInput = styled.input`
65
- ${hidden()}
66
- `
67
-
68
- export const UploadIcon = styled(Icon)`
69
- color: ${getToken('color-neutral')};
70
- `
71
-
72
- export const FileListUL = styled((props: StackProps) => <Stack as="ul" {...props} />)`
73
- padding: 0;
74
- `
75
-
76
- export const Divider = styled.div`
77
- width: 1px;
78
- height: 16px;
79
-
80
- background-color: ${getToken('color-neutral-darker')};
81
- `
@@ -1,85 +0,0 @@
1
- import type { HTMLAttributes, ReactNode } from 'react'
2
-
3
- import type { StackProps } from 'components/Layout/Stack'
4
-
5
- export type WrapperProps = Partial<StackProps>
6
-
7
- export type DropZoneProps = Omit<HTMLAttributes<HTMLInputElement>, 'onChange'> & {
8
- /**
9
- * Optional hint to be rendered below the main call to action text.
10
- */
11
- hint?: string
12
- /**
13
- * Whether the input should allow multiple files.
14
- */
15
- multiple?: boolean
16
- /**
17
- * List (or single string) of allowed file formats.
18
- */
19
- accept?: string | string[]
20
- /**
21
- * Disables the drop zone.
22
- */
23
- disabled?: boolean
24
- /**
25
- * Applies error styles to the drop zone wrapper.
26
- */
27
- error?: boolean
28
- /**
29
- * Useful to render custom content inside the dropzone.
30
- * If provided, the icon, call to action, and hint won't be rendered.
31
- */
32
- renderCustomContent?: (params: { isDragging: boolean }) => JSX.Element
33
- }
34
-
35
- export type FileStatus = 'loading' | 'error' | 'success'
36
-
37
- export type FileWithStatus = {
38
- file: File
39
- status: FileStatus
40
- errorMessage?: string
41
- }
42
-
43
- export type FileItemProps = FileWithStatus & {
44
- onRemove: () => void
45
- onRetry?: () => void
46
- disabled?: boolean
47
- }
48
-
49
- export type FileListProps = Partial<StackProps> & {
50
- /**
51
- * Disables the buttons within the file items.
52
- */
53
- disabled?: boolean
54
- }
55
-
56
- export type DragDropFileProviderProps = {
57
- /**
58
- * List of items including the file and its status.
59
- */
60
- fileList: FileWithStatus[]
61
- /**
62
- * Function that will be triggered when new files are added to the input.
63
- */
64
- onFilesAdded: (newFiles: File[]) => void
65
- /**
66
- * Function that will be triggered when a file is removed from the list.
67
- */
68
- onFileRemoved: (
69
- newFileList: FileWithStatus[],
70
- removedItem: FileWithStatus,
71
- removedItemIndex: number
72
- ) => void
73
- /**
74
- * Optional function to retry upload on a file item with error status.
75
- */
76
- onRetryUpload?: (item: FileWithStatus, removedItemIndex: number) => void
77
- children: ReactNode
78
- }
79
-
80
- export type DragDropFileContextValue = Pick<
81
- DragDropFileProviderProps,
82
- 'fileList' | 'onFilesAdded' | 'onRetryUpload'
83
- > & {
84
- onRemoveFile: (removedItem: FileWithStatus, removedItemIndex: number) => void
85
- }