@loadsmart/loadsmart-ui 7.5.0 → 7.7.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 (492) hide show
  1. package/README.md +15 -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/index.js +9104 -253
  5. package/dist/index.js.map +1 -1
  6. package/dist/miranda-compatibility.theme-C_FEacSw.js +2528 -0
  7. package/dist/miranda-compatibility.theme-C_FEacSw.js.map +1 -0
  8. package/dist/prop-B8LY6G2g.js +81 -0
  9. package/dist/{prop-pWSEOvKc.js.map → prop-B8LY6G2g.js.map} +1 -1
  10. package/dist/testing/index.js +282 -1
  11. package/dist/testing/index.js.map +1 -1
  12. package/dist/theming/index.js +22 -1
  13. package/dist/theming/index.js.map +1 -1
  14. package/dist/toArray-Dxb1kUxx.js +14 -0
  15. package/dist/toArray-Dxb1kUxx.js.map +1 -0
  16. package/dist/tools/index.js +6 -1
  17. package/dist/tools/index.js.map +1 -1
  18. package/package.json +28 -57
  19. package/dist/DragDropFile.context-D-EBrXnw.js +0 -2
  20. package/dist/DragDropFile.context-jVTIKfj5.mjs +0 -29
  21. package/dist/DragDropFile.context-jVTIKfj5.mjs.map +0 -1
  22. package/dist/index.mjs +0 -9310
  23. package/dist/index.mjs.map +0 -1
  24. package/dist/miranda-compatibility.theme-C3Dt-45K.js +0 -2
  25. package/dist/miranda-compatibility.theme-C3Dt-45K.js.map +0 -1
  26. package/dist/miranda-compatibility.theme-ClCWbTIT.mjs +0 -2525
  27. package/dist/miranda-compatibility.theme-ClCWbTIT.mjs.map +0 -1
  28. package/dist/prop-C4yDbi0C.mjs +0 -53
  29. package/dist/prop-C4yDbi0C.mjs.map +0 -1
  30. package/dist/prop-pWSEOvKc.js +0 -2
  31. package/dist/testing/index.mjs +0 -227
  32. package/dist/testing/index.mjs.map +0 -1
  33. package/dist/theming/index.mjs +0 -19
  34. package/dist/theming/index.mjs.map +0 -1
  35. package/dist/toArray-BJfx0Xhj.mjs +0 -38
  36. package/dist/toArray-BJfx0Xhj.mjs.map +0 -1
  37. package/dist/toArray-Dw6F-w3t.js +0 -2
  38. package/dist/toArray-Dw6F-w3t.js.map +0 -1
  39. package/dist/tools/index.mjs +0 -7
  40. package/dist/tools/index.mjs.map +0 -1
  41. package/src/@types/@loadsmart/utilsFunction.d.ts +0 -5
  42. package/src/@types/@loadsmart/utilsObject.d.ts +0 -5
  43. package/src/@types/svg.d.ts +0 -4
  44. package/src/addons/Theme/register.js +0 -590
  45. package/src/common/BackButton/BackButton.tsx +0 -18
  46. package/src/common/BackButton/index.ts +0 -2
  47. package/src/common/CloseButton/CloseButton.tsx +0 -55
  48. package/src/common/CloseButton/index.ts +0 -2
  49. package/src/common/SelectionWrapper.tsx +0 -130
  50. package/src/components/Accordion/Accordion.context.tsx +0 -36
  51. package/src/components/Accordion/Accordion.stories.tsx +0 -186
  52. package/src/components/Accordion/Accordion.test.tsx +0 -209
  53. package/src/components/Accordion/Accordion.tsx +0 -233
  54. package/src/components/Accordion/index.ts +0 -2
  55. package/src/components/Banner/Banner.stories.tsx +0 -213
  56. package/src/components/Banner/Banner.test.tsx +0 -118
  57. package/src/components/Banner/Banner.tsx +0 -418
  58. package/src/components/Banner/index.tsx +0 -2
  59. package/src/components/Breadcrumbs/Breadbrumbs.test.tsx +0 -125
  60. package/src/components/Breadcrumbs/Breadcrumb.tsx +0 -92
  61. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +0 -21
  62. package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -54
  63. package/src/components/Breadcrumbs/index.ts +0 -4
  64. package/src/components/Button/Button.stories.tsx +0 -174
  65. package/src/components/Button/Button.test.tsx +0 -57
  66. package/src/components/Button/Button.tsx +0 -576
  67. package/src/components/Button/index.tsx +0 -2
  68. package/src/components/Calendar/Calendar.helpers.ts +0 -15
  69. package/src/components/Calendar/Calendar.stories.tsx +0 -168
  70. package/src/components/Calendar/Calendar.test.tsx +0 -316
  71. package/src/components/Calendar/Calendar.tsx +0 -130
  72. package/src/components/Calendar/Calendar.types.ts +0 -68
  73. package/src/components/Calendar/Date.helper.test.ts +0 -847
  74. package/src/components/Calendar/Date.helper.ts +0 -461
  75. package/src/components/Calendar/DateFormat.helper.test.ts +0 -171
  76. package/src/components/Calendar/DateFormat.helper.ts +0 -195
  77. package/src/components/Calendar/Month.helper.test.ts +0 -187
  78. package/src/components/Calendar/Month.helper.ts +0 -172
  79. package/src/components/Calendar/PickerModeToggle.tsx +0 -61
  80. package/src/components/Calendar/Pickers/DayPicker.test.tsx +0 -85
  81. package/src/components/Calendar/Pickers/DayPicker.tsx +0 -127
  82. package/src/components/Calendar/Pickers/MonthPicker.test.tsx +0 -77
  83. package/src/components/Calendar/Pickers/MonthPicker.tsx +0 -51
  84. package/src/components/Calendar/Pickers/PickerButton.tsx +0 -119
  85. package/src/components/Calendar/Pickers/YearPicker.test.tsx +0 -75
  86. package/src/components/Calendar/Pickers/YearPicker.tsx +0 -52
  87. package/src/components/Calendar/index.ts +0 -10
  88. package/src/components/Calendar/useCalendar.ts +0 -190
  89. package/src/components/Calendar/usePickerMode.ts +0 -48
  90. package/src/components/Card/Card.stories.tsx +0 -117
  91. package/src/components/Card/Card.test.tsx +0 -139
  92. package/src/components/Card/Card.tsx +0 -106
  93. package/src/components/Card/CardTitle.tsx +0 -43
  94. package/src/components/Card/index.ts +0 -2
  95. package/src/components/Checkbox/Checkbox.stories.tsx +0 -79
  96. package/src/components/Checkbox/Checkbox.test.tsx +0 -66
  97. package/src/components/Checkbox/Checkbox.tsx +0 -170
  98. package/src/components/Checkbox/index.ts +0 -2
  99. package/src/components/DatePicker/DatePicker.stories.tsx +0 -113
  100. package/src/components/DatePicker/DatePicker.test.tsx +0 -174
  101. package/src/components/DatePicker/DatePicker.tsx +0 -140
  102. package/src/components/DatePicker/DatePicker.types.ts +0 -30
  103. package/src/components/DatePicker/DateRangePicker.stories.tsx +0 -128
  104. package/src/components/DatePicker/DateRangePicker.test.tsx +0 -267
  105. package/src/components/DatePicker/DateRangePicker.tsx +0 -110
  106. package/src/components/DatePicker/index.ts +0 -3
  107. package/src/components/DatePicker/useDatePicker.ts +0 -201
  108. package/src/components/DatePicker/useDateRangePicker.ts +0 -224
  109. package/src/components/Dialog/Dialog.stories.tsx +0 -227
  110. package/src/components/Dialog/Dialog.test.tsx +0 -74
  111. package/src/components/Dialog/Dialog.tsx +0 -139
  112. package/src/components/Dialog/index.tsx +0 -4
  113. package/src/components/Dialog/useDialog.tsx +0 -59
  114. package/src/components/DragDropFile/DragDropFile.context.tsx +0 -39
  115. package/src/components/DragDropFile/DragDropFile.stories.tsx +0 -183
  116. package/src/components/DragDropFile/DragDropFile.tsx +0 -11
  117. package/src/components/DragDropFile/components/DropZone.test.tsx +0 -108
  118. package/src/components/DragDropFile/components/DropZone.tsx +0 -145
  119. package/src/components/DragDropFile/components/FileItem.tsx +0 -117
  120. package/src/components/DragDropFile/components/FileList.test.tsx +0 -119
  121. package/src/components/DragDropFile/components/FileList.tsx +0 -47
  122. package/src/components/DragDropFile/components/Wrapper.tsx +0 -22
  123. package/src/components/DragDropFile/index.ts +0 -9
  124. package/src/components/DragDropFile/mocks.ts +0 -23
  125. package/src/components/DragDropFile/styles.tsx +0 -81
  126. package/src/components/DragDropFile/types.ts +0 -85
  127. package/src/components/Drawer/Drawer.stories.tsx +0 -83
  128. package/src/components/Drawer/Drawer.test.tsx +0 -90
  129. package/src/components/Drawer/Drawer.tsx +0 -225
  130. package/src/components/Drawer/index.ts +0 -4
  131. package/src/components/Dropdown/Dropdown.context.ts +0 -13
  132. package/src/components/Dropdown/Dropdown.fixtures.ts +0 -15
  133. package/src/components/Dropdown/Dropdown.stories.tsx +0 -259
  134. package/src/components/Dropdown/Dropdown.test.tsx +0 -173
  135. package/src/components/Dropdown/Dropdown.tsx +0 -141
  136. package/src/components/Dropdown/Dropdown.types.ts +0 -59
  137. package/src/components/Dropdown/DropdownMenu.tsx +0 -263
  138. package/src/components/Dropdown/DropdownTrigger.tsx +0 -368
  139. package/src/components/Dropdown/index.ts +0 -15
  140. package/src/components/Dropdown/useDropdown.test.ts +0 -96
  141. package/src/components/Dropdown/useDropdown.ts +0 -65
  142. package/src/components/EmptyState/EmptyState.mocks.tsx +0 -60
  143. package/src/components/EmptyState/EmptyState.stories.tsx +0 -239
  144. package/src/components/EmptyState/EmptyState.test.tsx +0 -101
  145. package/src/components/EmptyState/EmptyState.tsx +0 -22
  146. package/src/components/EmptyState/EmptyState.types.ts +0 -59
  147. package/src/components/EmptyState/EmptyStateWithIcon.tsx +0 -42
  148. package/src/components/EmptyState/EmptyStateWithIllustration.tsx +0 -72
  149. package/src/components/EmptyState/Illustration.tsx +0 -29
  150. package/src/components/EmptyState/index.ts +0 -4
  151. package/src/components/ErrorMessage/ErrorMessage.stories.tsx +0 -26
  152. package/src/components/ErrorMessage/ErrorMessage.test.tsx +0 -24
  153. package/src/components/ErrorMessage/ErrorMessage.tsx +0 -19
  154. package/src/components/ErrorMessage/index.ts +0 -2
  155. package/src/components/HighlightMatch/HighlightMatch.stories.tsx +0 -24
  156. package/src/components/HighlightMatch/HighlightMatch.test.tsx +0 -37
  157. package/src/components/HighlightMatch/HighlightMatch.tsx +0 -29
  158. package/src/components/HighlightMatch/index.ts +0 -2
  159. package/src/components/Icon/Icon.tsx +0 -55
  160. package/src/components/Icon/assets/back.svg +0 -4
  161. package/src/components/Icon/assets/burger-menu.svg +0 -3
  162. package/src/components/Icon/assets/calendar.svg +0 -5
  163. package/src/components/Icon/assets/caret-down.svg +0 -4
  164. package/src/components/Icon/assets/caret-left.svg +0 -4
  165. package/src/components/Icon/assets/caret-right-last.svg +0 -4
  166. package/src/components/Icon/assets/caret-right.svg +0 -4
  167. package/src/components/Icon/assets/check.svg +0 -4
  168. package/src/components/Icon/assets/chevron-down.svg +0 -3
  169. package/src/components/Icon/assets/circle.svg +0 -3
  170. package/src/components/Icon/assets/close.svg +0 -4
  171. package/src/components/Icon/assets/dots-horizontal.svg +0 -1
  172. package/src/components/Icon/assets/information.svg +0 -4
  173. package/src/components/Icon/assets/minus.svg +0 -4
  174. package/src/components/Icon/assets/plus.svg +0 -4
  175. package/src/components/Icon/assets/refresh.svg +0 -3
  176. package/src/components/Icon/assets/sort-asc.svg +0 -7
  177. package/src/components/Icon/assets/sort-desc.svg +0 -7
  178. package/src/components/Icon/assets/sort.svg +0 -7
  179. package/src/components/Icon/assets/upload.svg +0 -3
  180. package/src/components/Icon/assets/warning.svg +0 -4
  181. package/src/components/Icon/index.ts +0 -2
  182. package/src/components/IconFactory/IconFactory.fixtures.tsx +0 -31
  183. package/src/components/IconFactory/IconFactory.stories.tsx +0 -120
  184. package/src/components/IconFactory/IconFactory.test.tsx +0 -36
  185. package/src/components/IconFactory/IconFactory.tsx +0 -75
  186. package/src/components/IconFactory/index.ts +0 -2
  187. package/src/components/Label/Label.stories.tsx +0 -47
  188. package/src/components/Label/Label.test.tsx +0 -80
  189. package/src/components/Label/Label.tsx +0 -120
  190. package/src/components/Label/index.ts +0 -2
  191. package/src/components/Layout/Box.tsx +0 -98
  192. package/src/components/Layout/Grid.tsx +0 -42
  193. package/src/components/Layout/Group.tsx +0 -55
  194. package/src/components/Layout/Layout.stories.tsx +0 -412
  195. package/src/components/Layout/Layout.tsx +0 -19
  196. package/src/components/Layout/Layout.types.ts +0 -9
  197. package/src/components/Layout/Layout.utils.ts +0 -20
  198. package/src/components/Layout/Sidebar.tsx +0 -75
  199. package/src/components/Layout/Stack.tsx +0 -63
  200. package/src/components/Layout/Switcher.tsx +0 -48
  201. package/src/components/Layout/index.tsx +0 -8
  202. package/src/components/Link/Link.stories.tsx +0 -22
  203. package/src/components/Link/Link.test.tsx +0 -79
  204. package/src/components/Link/Link.tsx +0 -114
  205. package/src/components/Link/index.ts +0 -3
  206. package/src/components/Link/useSafeLink.ts +0 -49
  207. package/src/components/Loaders/LoadingBar.stories.tsx +0 -36
  208. package/src/components/Loaders/LoadingBar.test.tsx +0 -35
  209. package/src/components/Loaders/LoadingBar.tsx +0 -65
  210. package/src/components/Loaders/LoadingDots.stories.tsx +0 -69
  211. package/src/components/Loaders/LoadingDots.test.tsx +0 -22
  212. package/src/components/Loaders/LoadingDots.tsx +0 -68
  213. package/src/components/Loaders/Spinner.stories.tsx +0 -24
  214. package/src/components/Loaders/Spinner.test.tsx +0 -35
  215. package/src/components/Loaders/Spinner.tsx +0 -68
  216. package/src/components/Loaders/index.tsx +0 -3
  217. package/src/components/Modal/Modal.stories.tsx +0 -121
  218. package/src/components/Modal/Modal.test.tsx +0 -46
  219. package/src/components/Modal/Modal.tsx +0 -163
  220. package/src/components/Modal/index.tsx +0 -2
  221. package/src/components/Pagination/Pagination.constants.ts +0 -7
  222. package/src/components/Pagination/Pagination.helper.ts +0 -88
  223. package/src/components/Pagination/Pagination.stories.tsx +0 -29
  224. package/src/components/Pagination/Pagination.test.tsx +0 -102
  225. package/src/components/Pagination/Pagination.tsx +0 -34
  226. package/src/components/Pagination/Pagination.types.ts +0 -55
  227. package/src/components/Pagination/PaginationItem.tsx +0 -74
  228. package/src/components/Pagination/index.ts +0 -2
  229. package/src/components/Pagination/usePagination.test.ts +0 -188
  230. package/src/components/Pagination/usePagination.ts +0 -87
  231. package/src/components/Popover/Popover.stories.tsx +0 -50
  232. package/src/components/Popover/Popover.test.tsx +0 -22
  233. package/src/components/Popover/Popover.tsx +0 -110
  234. package/src/components/Popover/Popover.types.ts +0 -39
  235. package/src/components/Popover/index.ts +0 -11
  236. package/src/components/ProgressBar/ProgressBar.stories.tsx +0 -47
  237. package/src/components/ProgressBar/ProgressBar.test.tsx +0 -40
  238. package/src/components/ProgressBar/ProgressBar.tsx +0 -89
  239. package/src/components/ProgressBar/index.tsx +0 -2
  240. package/src/components/Radio/Radio.stories.tsx +0 -75
  241. package/src/components/Radio/Radio.test.tsx +0 -66
  242. package/src/components/Radio/Radio.tsx +0 -153
  243. package/src/components/Radio/index.ts +0 -2
  244. package/src/components/Section/Section.test.tsx +0 -35
  245. package/src/components/Section/Section.tsx +0 -66
  246. package/src/components/Section/Sections.stories.tsx +0 -56
  247. package/src/components/Section/index.ts +0 -2
  248. package/src/components/Select/Select.constants.ts +0 -12
  249. package/src/components/Select/Select.context.ts +0 -11
  250. package/src/components/Select/Select.fixtures.ts +0 -167
  251. package/src/components/Select/Select.stories.tsx +0 -780
  252. package/src/components/Select/Select.test.tsx +0 -1109
  253. package/src/components/Select/Select.tsx +0 -271
  254. package/src/components/Select/Select.types.ts +0 -148
  255. package/src/components/Select/SelectCreatableOption.tsx +0 -20
  256. package/src/components/Select/SelectEmpty.test.tsx +0 -15
  257. package/src/components/Select/SelectEmpty.tsx +0 -29
  258. package/src/components/Select/SelectOption.test.tsx +0 -78
  259. package/src/components/Select/SelectOption.tsx +0 -79
  260. package/src/components/Select/SelectTrigger.tsx +0 -83
  261. package/src/components/Select/components.tsx +0 -14
  262. package/src/components/Select/index.ts +0 -12
  263. package/src/components/Select/useSelect.helpers.test.ts +0 -184
  264. package/src/components/Select/useSelect.helpers.ts +0 -63
  265. package/src/components/Select/useSelect.test.ts +0 -207
  266. package/src/components/Select/useSelect.ts +0 -540
  267. package/src/components/Select/useSelectExternal.ts +0 -26
  268. package/src/components/SideNavigation/Logo/Logo.test.tsx +0 -19
  269. package/src/components/SideNavigation/Logo/Logo.tsx +0 -26
  270. package/src/components/SideNavigation/Logo/index.ts +0 -1
  271. package/src/components/SideNavigation/Menu/Menu.test.tsx +0 -65
  272. package/src/components/SideNavigation/Menu/Menu.tsx +0 -53
  273. package/src/components/SideNavigation/Menu/MenuBaseItem.tsx +0 -64
  274. package/src/components/SideNavigation/Menu/MenuExpandable.tsx +0 -107
  275. package/src/components/SideNavigation/Menu/MenuLink.tsx +0 -37
  276. package/src/components/SideNavigation/Menu/index.ts +0 -1
  277. package/src/components/SideNavigation/Separator/Separator.test.tsx +0 -14
  278. package/src/components/SideNavigation/Separator/Separator.tsx +0 -20
  279. package/src/components/SideNavigation/Separator/index.ts +0 -1
  280. package/src/components/SideNavigation/SideNavigation.stories.tsx +0 -69
  281. package/src/components/SideNavigation/SideNavigation.test.tsx +0 -21
  282. package/src/components/SideNavigation/SideNavigation.tsx +0 -47
  283. package/src/components/SideNavigation/index.ts +0 -5
  284. package/src/components/SideNavigation/useSideNavigation.ts +0 -36
  285. package/src/components/Steps/ProgressSteps/ProgressStep.tsx +0 -163
  286. package/src/components/Steps/ProgressSteps/ProgressSteps.tsx +0 -37
  287. package/src/components/Steps/ProgressSteps/index.ts +0 -1
  288. package/src/components/Steps/Steps.fixtures.ts +0 -11
  289. package/src/components/Steps/Steps.helpers.ts +0 -11
  290. package/src/components/Steps/Steps.stories.tsx +0 -65
  291. package/src/components/Steps/Steps.test.tsx +0 -78
  292. package/src/components/Steps/Steps.tsx +0 -53
  293. package/src/components/Steps/Steps.types.ts +0 -5
  294. package/src/components/Steps/StepsContext.ts +0 -5
  295. package/src/components/Steps/StepsStep.tsx +0 -58
  296. package/src/components/Steps/index.ts +0 -6
  297. package/src/components/Steps/useStep.test.tsx +0 -217
  298. package/src/components/Steps/useSteps.ts +0 -131
  299. package/src/components/Switch/Switch.stories.tsx +0 -65
  300. package/src/components/Switch/Switch.test.tsx +0 -60
  301. package/src/components/Switch/Switch.tsx +0 -209
  302. package/src/components/Switch/index.ts +0 -2
  303. package/src/components/Table/Selection.tsx +0 -202
  304. package/src/components/Table/Table.fixtures.ts +0 -101
  305. package/src/components/Table/Table.stories.tsx +0 -568
  306. package/src/components/Table/Table.test.tsx +0 -310
  307. package/src/components/Table/Table.tsx +0 -523
  308. package/src/components/Table/Table.types.ts +0 -93
  309. package/src/components/Table/TableSortHandle.tsx +0 -31
  310. package/src/components/Table/index.tsx +0 -2
  311. package/src/components/Table/useSortBy.test.ts +0 -96
  312. package/src/components/Table/useSortBy.ts +0 -92
  313. package/src/components/Table/useSortBy.types.ts +0 -21
  314. package/src/components/TablePagination/RowsPerPage.tsx +0 -81
  315. package/src/components/TablePagination/TablePagination.stories.tsx +0 -42
  316. package/src/components/TablePagination/TablePagination.styles.ts +0 -13
  317. package/src/components/TablePagination/TablePagination.test.tsx +0 -111
  318. package/src/components/TablePagination/TablePagination.tsx +0 -49
  319. package/src/components/TablePagination/TablePagination.types.ts +0 -69
  320. package/src/components/TablePagination/TablePaginationActions.tsx +0 -144
  321. package/src/components/TablePagination/index.ts +0 -2
  322. package/src/components/Tabs/Tabs.stories.tsx +0 -78
  323. package/src/components/Tabs/Tabs.test.tsx +0 -103
  324. package/src/components/Tabs/Tabs.tsx +0 -287
  325. package/src/components/Tabs/Tabs.types.ts +0 -7
  326. package/src/components/Tabs/TabsContext.ts +0 -10
  327. package/src/components/Tabs/index.ts +0 -2
  328. package/src/components/Tag/Tag.stories.tsx +0 -112
  329. package/src/components/Tag/Tag.test.tsx +0 -19
  330. package/src/components/Tag/Tag.tsx +0 -393
  331. package/src/components/Tag/index.ts +0 -2
  332. package/src/components/Text/Text.stories.tsx +0 -59
  333. package/src/components/Text/Text.test.tsx +0 -48
  334. package/src/components/Text/Text.tsx +0 -14
  335. package/src/components/Text/index.ts +0 -2
  336. package/src/components/TextField/TextField.stories.tsx +0 -90
  337. package/src/components/TextField/TextField.test.tsx +0 -36
  338. package/src/components/TextField/TextField.tsx +0 -244
  339. package/src/components/TextField/index.ts +0 -6
  340. package/src/components/TextField/useTextField.tsx +0 -26
  341. package/src/components/Textarea/Textarea.stories.tsx +0 -101
  342. package/src/components/Textarea/Textarea.test.tsx +0 -14
  343. package/src/components/Textarea/Textarea.tsx +0 -230
  344. package/src/components/Textarea/index.ts +0 -2
  345. package/src/components/Toast/Toast.stories.tsx +0 -50
  346. package/src/components/Toast/Toast.test.tsx +0 -24
  347. package/src/components/Toast/Toast.tsx +0 -141
  348. package/src/components/Toast/icons/close.svg +0 -3
  349. package/src/components/Toast/icons/danger.svg +0 -4
  350. package/src/components/Toast/icons/neutral.svg +0 -4
  351. package/src/components/Toast/icons/success.svg +0 -3
  352. package/src/components/Toast/icons/warning.svg +0 -4
  353. package/src/components/Toast/index.tsx +0 -2
  354. package/src/components/ToggleGroup/Toggle.test.tsx +0 -76
  355. package/src/components/ToggleGroup/Toggle.tsx +0 -158
  356. package/src/components/ToggleGroup/ToggleGroup.constants.ts +0 -16
  357. package/src/components/ToggleGroup/ToggleGroup.stories.tsx +0 -145
  358. package/src/components/ToggleGroup/ToggleGroup.test.tsx +0 -237
  359. package/src/components/ToggleGroup/ToggleGroup.tsx +0 -165
  360. package/src/components/ToggleGroup/ToggleGroup.types.ts +0 -35
  361. package/src/components/ToggleGroup/ToggleGroupContext.ts +0 -13
  362. package/src/components/ToggleGroup/index.ts +0 -3
  363. package/src/components/Tooltip/Tooltip.stories.tsx +0 -82
  364. package/src/components/Tooltip/Tooltip.test.tsx +0 -49
  365. package/src/components/Tooltip/Tooltip.tsx +0 -185
  366. package/src/components/Tooltip/index.ts +0 -2
  367. package/src/components/TopNavigation/Logo/Logo.test.tsx +0 -21
  368. package/src/components/TopNavigation/Logo/Logo.tsx +0 -20
  369. package/src/components/TopNavigation/Logo/index.ts +0 -1
  370. package/src/components/TopNavigation/Menu/Menu.test.tsx +0 -125
  371. package/src/components/TopNavigation/Menu/Menu.tsx +0 -62
  372. package/src/components/TopNavigation/Menu/MenuItemDropdown.tsx +0 -118
  373. package/src/components/TopNavigation/Menu/MenuItemIcon.tsx +0 -50
  374. package/src/components/TopNavigation/Menu/index.ts +0 -1
  375. package/src/components/TopNavigation/OpenSideNavButton/OpenSideNavButton.tsx +0 -28
  376. package/src/components/TopNavigation/OpenSideNavButton/index.ts +0 -1
  377. package/src/components/TopNavigation/TopNavigation.stories.tsx +0 -42
  378. package/src/components/TopNavigation/TopNavigation.tsx +0 -47
  379. package/src/components/TopNavigation/index.ts +0 -2
  380. package/src/components/VisuallyHidden/VisuallyHidden.mdx +0 -26
  381. package/src/components/VisuallyHidden/VisuallyHidden.stories.tsx +0 -32
  382. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +0 -18
  383. package/src/components/VisuallyHidden/VisuallyHidden.tsx +0 -6
  384. package/src/components/VisuallyHidden/index.ts +0 -1
  385. package/src/docs/tools/DatePickerEvent.stories.mdx +0 -108
  386. package/src/docs/tools/DragDropFileEvent.stories.mdx +0 -75
  387. package/src/docs/tools/conditional.stories.mdx +0 -251
  388. package/src/docs/tools/selectEvent.stories.mdx +0 -121
  389. package/src/hooks/useClickOutside/index.ts +0 -1
  390. package/src/hooks/useClickOutside/useClickOutside.test.tsx +0 -116
  391. package/src/hooks/useClickOutside/useClickOutside.ts +0 -65
  392. package/src/hooks/useDidMount/index.ts +0 -1
  393. package/src/hooks/useDidMount/useDidMount.test.tsx +0 -38
  394. package/src/hooks/useDidMount/useDidMount.ts +0 -20
  395. package/src/hooks/useFingerprint/index.ts +0 -1
  396. package/src/hooks/useFingerprint/useFingerprint.test.ts +0 -76
  397. package/src/hooks/useFingerprint/useFingerprint.ts +0 -94
  398. package/src/hooks/useFocusTrap/index.ts +0 -2
  399. package/src/hooks/useFocusTrap/useFocusTrap.stories.tsx +0 -87
  400. package/src/hooks/useFocusTrap/useFocusTrap.test.tsx +0 -129
  401. package/src/hooks/useFocusTrap/useFocusTrap.ts +0 -187
  402. package/src/hooks/useFocusWithin/index.ts +0 -2
  403. package/src/hooks/useFocusWithin/useFocusWithin.test.tsx +0 -71
  404. package/src/hooks/useFocusWithin/useFocusWithin.ts +0 -62
  405. package/src/hooks/useHeightExpansionToggler/index.ts +0 -2
  406. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.test.tsx +0 -85
  407. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.ts +0 -54
  408. package/src/hooks/useID/index.ts +0 -1
  409. package/src/hooks/useID/useID.ts +0 -18
  410. package/src/hooks/useSelectable/SelectableStrategy.test.ts +0 -424
  411. package/src/hooks/useSelectable/SelectableStrategy.ts +0 -143
  412. package/src/hooks/useSelectable/index.ts +0 -8
  413. package/src/hooks/useSelectable/useSelectable.test.ts +0 -221
  414. package/src/hooks/useSelectable/useSelectable.ts +0 -156
  415. package/src/hooks/useSelectable/useSelectable.types.ts +0 -45
  416. package/src/hooks/useWindowResize/index.ts +0 -1
  417. package/src/hooks/useWindowResize/useWindowResize.ts +0 -27
  418. package/src/index.ts +0 -188
  419. package/src/stories/assets/code-brackets.svg +0 -1
  420. package/src/stories/assets/colors.svg +0 -1
  421. package/src/stories/assets/comments.svg +0 -1
  422. package/src/stories/assets/direction.svg +0 -1
  423. package/src/stories/assets/flow.svg +0 -1
  424. package/src/stories/assets/plugin.svg +0 -1
  425. package/src/stories/assets/repo.svg +0 -1
  426. package/src/stories/assets/stackalt.svg +0 -1
  427. package/src/stories/introduction.stories.mdx +0 -57
  428. package/src/stories/startPage.stories.mdx +0 -95
  429. package/src/styles/activatable.tsx +0 -30
  430. package/src/styles/disableable.tsx +0 -45
  431. package/src/styles/ellipsizable.tsx +0 -14
  432. package/src/styles/focusable.tsx +0 -32
  433. package/src/styles/font.test.ts +0 -31
  434. package/src/styles/font.tsx +0 -40
  435. package/src/styles/hidden.tsx +0 -29
  436. package/src/styles/hoverable.tsx +0 -30
  437. package/src/styles/transition.tsx +0 -25
  438. package/src/styles/typography.test.ts +0 -93
  439. package/src/styles/typography.ts +0 -190
  440. package/src/testing/DatePickerEvent/DatePickerEvent.ts +0 -117
  441. package/src/testing/DatePickerEvent/DateRangePickerEvent.ts +0 -83
  442. package/src/testing/DatePickerEvent/index.ts +0 -2
  443. package/src/testing/DragDropFileEvent/DragDropFileEvent.ts +0 -56
  444. package/src/testing/DragDropFileEvent/index.ts +0 -1
  445. package/src/testing/SelectEvent/SelectEvent.test.tsx +0 -192
  446. package/src/testing/SelectEvent/SelectEvent.ts +0 -264
  447. package/src/testing/SelectEvent/index.ts +0 -1
  448. package/src/testing/getInterpolatedStyles/getInterpolatedStyles.ts +0 -25
  449. package/src/testing/getInterpolatedStyles/index.ts +0 -1
  450. package/src/testing/index.ts +0 -6
  451. package/src/testing/renderWithDragDropFileProvider/index.ts +0 -1
  452. package/src/testing/renderWithDragDropFileProvider/renderWithDragDropFileProvider.tsx +0 -28
  453. package/src/tests/generator.ts +0 -127
  454. package/src/tests/renderer.tsx +0 -39
  455. package/src/theming/index.ts +0 -42
  456. package/src/theming/themes/alice.theme.ts +0 -1022
  457. package/src/theming/themes/index.ts +0 -3
  458. package/src/theming/themes/loadsmart.theme.ts +0 -1019
  459. package/src/theming/themes/miranda-compatibility.theme.ts +0 -972
  460. package/src/theming/theming.helpers.ts +0 -95
  461. package/src/tools/conditional.test.ts +0 -166
  462. package/src/tools/conditional.ts +0 -127
  463. package/src/tools/index.ts +0 -2
  464. package/src/tools/prop.test.ts +0 -52
  465. package/src/tools/prop.ts +0 -36
  466. package/src/utils/toolset/awaitTo.ts +0 -24
  467. package/src/utils/toolset/flatten.ts +0 -3
  468. package/src/utils/toolset/formatBytes.test.ts +0 -45
  469. package/src/utils/toolset/formatBytes.ts +0 -18
  470. package/src/utils/toolset/get.ts +0 -2
  471. package/src/utils/toolset/getID.test.ts +0 -57
  472. package/src/utils/toolset/getID.ts +0 -93
  473. package/src/utils/toolset/getOrdinalSuffix.test.ts +0 -27
  474. package/src/utils/toolset/getOrdinalSuffix.ts +0 -15
  475. package/src/utils/toolset/highlightMatch.test.tsx +0 -32
  476. package/src/utils/toolset/highlightMatch.tsx +0 -32
  477. package/src/utils/toolset/interleave.test.ts +0 -40
  478. package/src/utils/toolset/interleave.ts +0 -23
  479. package/src/utils/toolset/isEmpty.ts +0 -2
  480. package/src/utils/toolset/isThenable.test.ts +0 -40
  481. package/src/utils/toolset/isThenable.ts +0 -14
  482. package/src/utils/toolset/keyboard.ts +0 -50
  483. package/src/utils/toolset/omit.ts +0 -2
  484. package/src/utils/toolset/pluralize.ts +0 -16
  485. package/src/utils/toolset/range.ts +0 -2
  486. package/src/utils/toolset/rem.ts +0 -7
  487. package/src/utils/toolset/styledCompounds.ts +0 -22
  488. package/src/utils/toolset/toArray.ts +0 -16
  489. package/src/utils/types/ColorScheme.ts +0 -3
  490. package/src/utils/types/EventLike.ts +0 -11
  491. package/src/utils/types/InterpolatedStyle.ts +0 -3
  492. package/src/utils/types/Status.ts +0 -8
@@ -1,79 +0,0 @@
1
- import React from 'react'
2
- import { screen } from '@testing-library/react'
3
- import renderer from '../../tests/renderer'
4
- import Link from './Link'
5
- import generator from '../../tests/generator'
6
-
7
- describe('<Link />', () => {
8
- describe('default', () => {
9
- const setup = ({ ...overrides }) => renderer(<Link {...overrides} />).render()
10
-
11
- const props = {
12
- href: generator.url(),
13
- title: generator.sentence(),
14
- children: generator.word(),
15
- target: generator.pick(['_self', '_blank', '_parent', '_top']) as string,
16
- }
17
-
18
- setup(props)
19
-
20
- const component = screen.getByTestId('link')
21
-
22
- it('renders correctly', () => {
23
- expect(component).toBeTruthy()
24
- expect(component).toHaveAttribute('href', props.href)
25
- expect(component).toHaveAttribute('title', props.title)
26
- expect(component).toHaveAttribute('target', props.target)
27
- // eslint-disable-next-line testing-library/no-node-access
28
- expect(component).toHaveTextContent(props.children)
29
- })
30
-
31
- it('renders "/" as href if none is provided', () => {
32
- const props = {
33
- title: generator.sentence(),
34
- }
35
-
36
- setup(props)
37
-
38
- const component = screen.getByTitle(props.title)
39
- expect(component).toBeInTheDocument()
40
- expect(component).toHaveAttribute('href', '/')
41
- })
42
-
43
- it(`renders "_self" as target if none is provided`, () => {
44
- const props = {
45
- title: generator.sentence(),
46
- }
47
-
48
- setup(props)
49
-
50
- const component = screen.getByTitle(props.title)
51
-
52
- expect(component).toBeInTheDocument()
53
- expect(component).toHaveAttribute('target', '_self')
54
- })
55
- })
56
-
57
- describe('with sanitized props', () => {
58
- const setup = ({ ...overrides }) => renderer(<Link {...overrides} />).render()
59
-
60
- const props = {
61
- // eslint-disable-next-line no-script-url
62
- href: 'javascript:copySecureData()',
63
- title: generator.sentence(),
64
- children: generator.word(),
65
- target: '_blank',
66
- }
67
-
68
- setup(props)
69
- const component = screen.getByTitle(props.title)
70
-
71
- it('removes the insecure href prop, replacing with /', () => {
72
- expect(component).toHaveAttribute('href', '/')
73
- })
74
-
75
- it('adds "noopener" to anchor element rel attribute, due to the target "_blank"', () => {
76
- expect((component.getAttribute('rel') || '').includes('noopener')).toBe(true)
77
- })
78
- })
79
- })
@@ -1,114 +0,0 @@
1
- import React, { forwardRef } from 'react'
2
- import type { AnchorHTMLAttributes, ForwardedRef } from 'react'
3
- import clsx from 'clsx'
4
- import styled, { css } from 'styled-components'
5
-
6
- import useSafeLink from './useSafeLink'
7
- import font from 'styles/font'
8
- import transition from 'styles/transition'
9
- import ellipsizable from 'styles/ellipsizable'
10
- import hoverable from 'styles/hoverable'
11
- import focusable from 'styles/focusable'
12
- import disableable from 'styles/disableable'
13
- import { getToken as token } from 'theming'
14
-
15
- export interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
16
- className?: string
17
- disabled?: boolean
18
- }
19
-
20
- const StyledBaseAnchor = styled.a`
21
- ${font({
22
- height: 'link-font-height',
23
- weight: 'link-font-weight',
24
- })}
25
- ${transition()}
26
-
27
- ${ellipsizable()}
28
-
29
- display: inline-flex;
30
- flex-direction: column;
31
- align-items: center;
32
- justify-content: center;
33
-
34
- text-align: center;
35
- font-size: ${token('link-font-size')};
36
- color: ${token('color-neutral-darker')};
37
- text-decoration: none;
38
-
39
- min-height: 24px;
40
-
41
- border-radius: ${token('border-radius-s')};
42
-
43
- ${hoverable`
44
- text-decoration: underline;
45
- font-weight: ${token('link-font-weight--hover')};
46
- `}
47
-
48
- ${focusable`
49
- box-shadow: ${token('link-box-shadow')};
50
- outline: ${token('link-outline')};
51
- outline-offset: ${token('link-outline-offset')};
52
- `}
53
-
54
- ${disableable``}
55
-
56
- ${({ children }) =>
57
- 'string' == typeof children &&
58
- // to prevent layout shift on hover, https://css-tricks.com/bold-on-hover-without-the-layout-shift/
59
- css`
60
- &::after {
61
- height: 0;
62
- overflow: hidden;
63
-
64
- font-weight: ${token('link-font-weight--hover')};
65
-
66
- visibility: hidden;
67
-
68
- content: attr(data-text);
69
- content: attr(data-text) / '';
70
- user-select: none;
71
- pointer-events: none;
72
-
73
- @media speech {
74
- display: none;
75
- }
76
- }
77
- `}
78
- `
79
-
80
- export const BaseLink = forwardRef(function BaseLink(
81
- { disabled = false, ...props }: LinkProps,
82
- forwardedRef: ForwardedRef<HTMLAnchorElement>
83
- ): JSX.Element {
84
- const { href = '/', children, className, target = '_self', ...others } = useSafeLink(props)
85
-
86
- return (
87
- <StyledBaseAnchor
88
- className={clsx(
89
- {
90
- 'is-disabled': disabled,
91
- },
92
- className
93
- )}
94
- href={href}
95
- target={target}
96
- {...others}
97
- ref={forwardedRef}
98
- data-text={'string' == typeof children ? children : ''}
99
- data-testid="link"
100
- >
101
- {children}
102
- </StyledBaseAnchor>
103
- )
104
- })
105
-
106
- const StyledAnchor = styled(BaseLink)<LinkProps>`
107
- color: ${token('link-color')};
108
- `
109
-
110
- function Link(props: LinkProps): JSX.Element {
111
- return <StyledAnchor {...props} />
112
- }
113
-
114
- export default Link
@@ -1,3 +0,0 @@
1
- export { default as Link, BaseLink } from './Link'
2
- export { default as useSafeLink } from './useSafeLink'
3
- export type { LinkProps } from './Link'
@@ -1,49 +0,0 @@
1
- import type { AnchorHTMLAttributes } from 'react'
2
- import { isBlank } from '@loadsmart/utils-string'
3
-
4
- const INSECURE_HREF = /^javascript:/i
5
-
6
- function checkHref(props: AnchorHTMLAttributes<HTMLAnchorElement>) {
7
- const { href, ...others } = props
8
-
9
- if (isBlank(href || '')) {
10
- return props
11
- }
12
-
13
- if (INSECURE_HREF.test(`${href || ''}`)) {
14
- // security risk, thus, removing it
15
- return others
16
- }
17
-
18
- return props
19
- }
20
-
21
- function checkTarget({ target, rel }: AnchorHTMLAttributes<HTMLAnchorElement>) {
22
- if (isBlank(target || '')) {
23
- return { target, rel }
24
- }
25
-
26
- const sanitizedRel = new Set((rel || '').split(/\s+/).filter(Boolean))
27
-
28
- if (target === '_blank') {
29
- sanitizedRel.add('noopener')
30
- }
31
-
32
- /**
33
- * To avoid exploitation of the window.opener API, Adding noreferrer,
34
- * as recommended in https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a
35
- */
36
- sanitizedRel.add('noreferrer')
37
-
38
- return { rel: Array.from(sanitizedRel).join(' '), target }
39
- }
40
-
41
- function useSafeLink(
42
- props: AnchorHTMLAttributes<HTMLAnchorElement>
43
- ): AnchorHTMLAttributes<HTMLAnchorElement> {
44
- const { rel, target } = checkTarget(props) || {}
45
-
46
- return { ...checkHref(props), rel, target }
47
- }
48
-
49
- export default useSafeLink
@@ -1,36 +0,0 @@
1
- import React from 'react'
2
- import type { Story, Meta } from '@storybook/react'
3
- import { Text } from 'components/Text'
4
-
5
- import type { LoadingBarProps } from './LoadingBar'
6
-
7
- import LoadingBar from './LoadingBar'
8
-
9
- export default {
10
- title: 'Components/Loaders/LoadingBar',
11
- component: LoadingBar,
12
- argTypes: {},
13
- } as Meta
14
-
15
- export const Playground: Story<LoadingBarProps> = (args) => {
16
- return (
17
- <div className="flex flex-col space-y-2">
18
- <div className="flex items-center">
19
- <LoadingBar {...args} />
20
- </div>
21
- </div>
22
- )
23
- }
24
-
25
- Playground.args = {
26
- title: (
27
- <Text variant="heading-md-bold" color="color-neutral-dark">
28
- Loading
29
- </Text>
30
- ),
31
- secondaryTitle: (
32
- <Text variant="body" color="color-neutral-dark">
33
- Message here if necessary, othewise hide it
34
- </Text>
35
- ),
36
- }
@@ -1,35 +0,0 @@
1
- import React from 'react'
2
- import { composeStories } from '@storybook/react'
3
-
4
- import * as stories from './LoadingBar.stories'
5
- import renderer, { screen } from '../../tests/renderer'
6
-
7
- import type { LoadingBarProps } from './LoadingBar'
8
-
9
- const { Playground } = composeStories(stories)
10
-
11
- const setup = (overrides: Partial<LoadingBarProps>) =>
12
- renderer(<Playground {...overrides} />).render()
13
-
14
- describe('LoadingBar', () => {
15
- it('renders correctly', () => {
16
- const props = {}
17
-
18
- setup(props)
19
-
20
- screen.getByText('Loading')
21
- })
22
-
23
- it('renders customized title and subtitle correctly', () => {
24
- const props = {
25
- title: 'Loading',
26
- subTitle: 'Message here if necessary, othewise hide it',
27
- width: 400,
28
- }
29
-
30
- setup(props)
31
-
32
- screen.getByText(props.title)
33
- screen.getByText(props.subTitle)
34
- })
35
- })
@@ -1,65 +0,0 @@
1
- import { Layout } from 'components/Layout'
2
- import React from 'react'
3
- import styled, { keyframes } from 'styled-components'
4
- import { getToken as token } from 'theming'
5
-
6
- const loading = keyframes`
7
- from {
8
- width: 0
9
- }
10
- to {
11
- width: 100%
12
- }
13
- `
14
-
15
- export const Bar = styled.div<{ width?: number; velocity?: number }>`
16
- position: relative;
17
-
18
- width: ${({ width }) => (width ? `${width}px` : '100%')};
19
- height: ${token('space-s')};
20
- overflow: hidden;
21
-
22
- background-color: ${token('color-neutral-light')};
23
- border-radius: ${token('border-radius-m')};
24
-
25
- &:before {
26
- position: absolute;
27
-
28
- display: block;
29
- width: 100%;
30
- height: ${token('space-s')};
31
-
32
- background-color: ${token('color-primary')};
33
-
34
- animation: ${loading} ${({ velocity }) => (velocity && velocity > 0 ? velocity : 2.5)}s linear
35
- infinite;
36
-
37
- content: '';
38
- }
39
- `
40
-
41
- export interface LoadingBarProps {
42
- alignment?: 'left' | 'center' | 'right'
43
- title?: React.ReactNode
44
- secondaryTitle?: React.ReactNode
45
- width?: number | undefined
46
- velocity?: number | undefined
47
- }
48
-
49
- export default function LoadingBar({
50
- alignment,
51
- title,
52
- secondaryTitle,
53
- width = undefined,
54
- velocity = 2.5,
55
- }: LoadingBarProps): JSX.Element {
56
- return (
57
- <Layout.Box textAlign={alignment}>
58
- <Layout.Stack space="s">
59
- {title}
60
- <Bar width={width} velocity={velocity} />
61
- {secondaryTitle}
62
- </Layout.Stack>
63
- </Layout.Box>
64
- )
65
- }
@@ -1,69 +0,0 @@
1
- import React from 'react'
2
- import type { Story, Meta } from '@storybook/react'
3
- import { Button } from 'components/Button'
4
-
5
- import LoadingDots, { LoadingDotsProps } from './LoadingDots'
6
-
7
- export default {
8
- title: 'Components/Loaders/LoadingDots',
9
- component: LoadingDots,
10
- argTypes: {
11
- size: {
12
- control: {
13
- type: 'number',
14
- },
15
- },
16
- variant: {
17
- control: {
18
- type: 'select',
19
- options: ['dark', 'light'],
20
- },
21
- },
22
- },
23
- } as Meta
24
-
25
- export const Playground: Story<LoadingDotsProps> = (args: LoadingDotsProps) => {
26
- return (
27
- <div className="flex flex-col space-y-2">
28
- <div className="flex items-center">
29
- <LoadingDots {...args} />
30
- </div>
31
- </div>
32
- )
33
- }
34
-
35
- Playground.args = {
36
- size: 10,
37
- variant: 'dark',
38
- }
39
-
40
- export const InsideButton: Story<LoadingDotsProps> = () => {
41
- return (
42
- <div className="flex flex-col space-y-2">
43
- <div className="flex items-center">
44
- <Button variant="primary">
45
- <LoadingDots variant="light" />
46
- </Button>
47
- </div>
48
- <div className="flex items-center">
49
- <Button>
50
- <LoadingDots />
51
- </Button>
52
- </div>
53
- </div>
54
- )
55
- }
56
-
57
- InsideButton.parameters = {
58
- docs: {
59
- description: {
60
- story: `
61
- Follow these guidelines to ensure you have enough contrast with your background:
62
-
63
- - Dark background should use variant \`light\`;
64
- - Light background should use variant \`dark\`;
65
- - Green background should use variant \`dark\`.
66
- `,
67
- },
68
- },
69
- }
@@ -1,22 +0,0 @@
1
- import React from 'react'
2
- import { composeStories } from '@storybook/react'
3
-
4
- import * as stories from './LoadingDots.stories'
5
- import renderer, { screen } from '../../tests/renderer'
6
-
7
- import type { LoadingDotsProps } from './LoadingDots'
8
-
9
- const { Playground } = composeStories(stories)
10
-
11
- const setup = (overrides: Partial<LoadingDotsProps>) =>
12
- renderer(<Playground {...overrides} />).render()
13
-
14
- describe('LoadingDots', () => {
15
- it('renders correctly', () => {
16
- const props = {}
17
-
18
- setup(props)
19
-
20
- expect(screen.getByRole('progressbar', { name: 'Loading' })).toBeInTheDocument()
21
- })
22
- })
@@ -1,68 +0,0 @@
1
- import React from 'react'
2
- import styled, { keyframes } from 'styled-components'
3
- import conditional, { whenProps } from 'tools/conditional'
4
- import prop from 'tools/prop'
5
- import { getToken as token } from 'theming'
6
-
7
- const pulse = keyframes`
8
- 50% {
9
- opacity: 0.2;
10
- }
11
-
12
- 100% {
13
- opacity: 1;
14
- }
15
- `
16
-
17
- const Wrapper = styled.div`
18
- text-align: center;
19
-
20
- div:nth-child(1) {
21
- animation: ${pulse} 1s infinite ease-in-out -0.2s;
22
- }
23
-
24
- div:nth-child(2) {
25
- animation: ${pulse} 1s infinite ease-in-out -0.1s;
26
- }
27
-
28
- div:nth-child(3) {
29
- animation: ${pulse} 1s infinite ease-in-out 0s;
30
- }
31
- `
32
-
33
- interface DotProps {
34
- size?: number
35
- variant?: 'light' | 'dark'
36
- }
37
-
38
- const Dot = styled.div<DotProps>`
39
- display: inline-block;
40
- width: ${prop('size')}px;
41
- height: ${prop('size')}px;
42
- margin: ${token('space-2xs')};
43
-
44
- background-color: ${conditional({
45
- 'color-neutral-white': whenProps({ variant: 'light' }),
46
- 'color-neutral-dark': whenProps({ variant: 'dark' }),
47
- })};
48
- border-radius: ${token('border-radius-circle')};
49
- `
50
-
51
- export interface LoadingDotsProps {
52
- size?: number
53
- variant?: 'dark' | 'light'
54
- }
55
-
56
- export default function LoadingDots({
57
- size = 10,
58
- variant = 'dark',
59
- ...props
60
- }: LoadingDotsProps): JSX.Element {
61
- return (
62
- <Wrapper role="progressbar" aria-label="Loading" {...props}>
63
- <Dot size={size} variant={variant} />
64
- <Dot size={size} variant={variant} />
65
- <Dot size={size} variant={variant} />
66
- </Wrapper>
67
- )
68
- }
@@ -1,24 +0,0 @@
1
- import React from 'react'
2
- import type { Story, Meta } from '@storybook/react'
3
-
4
- import Spinner, { SpinnerProps } from './Spinner'
5
-
6
- export default {
7
- title: 'Components/Loaders/Spinner',
8
- component: Spinner,
9
- argTypes: {},
10
- } as Meta
11
-
12
- export const Playground: Story<SpinnerProps> = (args: SpinnerProps) => {
13
- return (
14
- <div className="flex flex-col space-y-2">
15
- <div className="flex items-center">
16
- <Spinner {...args} />
17
- </div>
18
- </div>
19
- )
20
- }
21
-
22
- Playground.args = {
23
- size: 48,
24
- }
@@ -1,35 +0,0 @@
1
- import React from 'react'
2
- import { composeStories } from '@storybook/react'
3
-
4
- import * as stories from './Spinner.stories'
5
- import generator from '../../tests/generator'
6
- import renderer, { screen } from '../../tests/renderer'
7
-
8
- import type { SpinnerProps } from './Spinner'
9
-
10
- const { Playground } = composeStories(stories)
11
-
12
- const setup = (overrides: Partial<SpinnerProps>) => renderer(<Playground {...overrides} />).render()
13
-
14
- describe('Spinner', () => {
15
- it('renders correctly', () => {
16
- const props = {
17
- size: 48,
18
- }
19
-
20
- setup(props)
21
-
22
- screen.getByText('Loading')
23
- })
24
-
25
- it('renders a custom title correctly', () => {
26
- const props = {
27
- size: 48,
28
- title: generator.word(),
29
- }
30
-
31
- setup(props)
32
-
33
- screen.getByText(props.title)
34
- })
35
- })
@@ -1,68 +0,0 @@
1
- import React from 'react'
2
- import styled, { keyframes } from 'styled-components'
3
-
4
- const ANIMATION_DURATION = 0.8
5
-
6
- const animation = keyframes`
7
- 0% { opacity: 0 }
8
- 25% { opacity: 1 }
9
- 50% { opacity: 0.66 }
10
- 75% { opacity: 0.33; }
11
- 100% { opacity: 0 }
12
- `
13
-
14
- interface LayerProps {
15
- index: number
16
- }
17
-
18
- const Layer = styled.path<LayerProps>`
19
- animation-name: ${animation};
20
- animation-duration: ${ANIMATION_DURATION}s;
21
- animation-delay: -${(props) => props.index * (ANIMATION_DURATION / 4)}s;
22
- animation-iteration-count: infinite;
23
- `
24
-
25
- export interface SpinnerProps {
26
- title?: string
27
- size: number
28
- }
29
-
30
- export default function Spinner({ title, size, ...props }: SpinnerProps): JSX.Element {
31
- return (
32
- <svg
33
- {...props}
34
- viewBox="0 0 48 48"
35
- fillRule="evenodd"
36
- strokeLinejoin="round"
37
- strokeMiterlimit="2"
38
- clipRule="evenodd"
39
- width={size}
40
- height={size}
41
- >
42
- <title>{title || 'Loading'}</title>
43
- <g
44
- id="surface1"
45
- transform="matrix(0.0806777,0,0,0.0806777,0,-9.96047)"
46
- fill="#33CC60"
47
- fillRule="nonzero"
48
- >
49
- <Layer
50
- index={0}
51
- d="M362.176,638.695C366.445,638.695 370.535,637 373.527,633.996L505.332,502.211L224.305,502.211C222.074,502.211 220.066,501.316 218.617,499.855L84.488,633.996C87.395,636.902 91.406,638.695 95.82,638.695L362.176,638.695Z"
52
- />
53
- <Layer
54
- index={1}
55
- d="M376.164,482.289L512.648,482.289L512.648,217.34C512.648,212.906 510.855,208.898 507.945,205.988L373.809,340.121C375.266,341.578 376.164,343.59 376.164,345.805L376.164,482.289Z"
56
- />
57
- <Layer
58
- index={2}
59
- d="M500.48,201.746L235.535,201.746L235.535,338.23L372.02,338.23C374.234,338.23 376.246,339.129 377.703,340.586L511.832,206.445C508.926,203.539 504.918,201.746 500.48,201.746Z"
60
- />
61
- <Layer
62
- index={3}
63
- d="M215.449,495.488L215.449,214.461L83.668,346.262C80.66,349.289 78.965,353.359 78.965,357.625L78.965,623.973C78.965,628.398 80.758,632.406 83.668,635.313L217.805,501.176C216.348,499.715 215.449,497.707 215.449,495.488Z"
64
- />
65
- </g>
66
- </svg>
67
- )
68
- }
@@ -1,3 +0,0 @@
1
- export { default as Spinner, SpinnerProps } from './Spinner'
2
- export { default as LoadingBar, LoadingBarProps } from './LoadingBar'
3
- export { default as LoadingDots, LoadingDotsProps } from './LoadingDots'