@loadsmart/loadsmart-ui 7.6.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 (490) 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-ChPV-BBw.js.map → miranda-compatibility.theme-C_FEacSw.js.map} +1 -1
  8. package/dist/prop-B8LY6G2g.js +81 -0
  9. package/dist/{prop-BwhJNJHO.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-BW3gx_gH.js.map → toArray-Dxb1kUxx.js.map} +1 -1
  16. package/dist/tools/index.js +6 -1
  17. package/dist/tools/index.js.map +1 -1
  18. package/package.json +24 -54
  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 -8046
  23. package/dist/index.mjs.map +0 -1
  24. package/dist/miranda-compatibility.theme-ChPV-BBw.js +0 -2
  25. package/dist/miranda-compatibility.theme-DQDHkWzC.mjs +0 -2469
  26. package/dist/miranda-compatibility.theme-DQDHkWzC.mjs.map +0 -1
  27. package/dist/prop-5m3D4883.mjs +0 -54
  28. package/dist/prop-5m3D4883.mjs.map +0 -1
  29. package/dist/prop-BwhJNJHO.js +0 -2
  30. package/dist/testing/index.mjs +0 -228
  31. package/dist/testing/index.mjs.map +0 -1
  32. package/dist/theming/index.mjs +0 -20
  33. package/dist/theming/index.mjs.map +0 -1
  34. package/dist/toArray-BW3gx_gH.js +0 -2
  35. package/dist/toArray-DqgeO2ua.mjs +0 -8
  36. package/dist/toArray-DqgeO2ua.mjs.map +0 -1
  37. package/dist/tools/index.mjs +0 -7
  38. package/dist/tools/index.mjs.map +0 -1
  39. package/src/@types/@loadsmart/utilsFunction.d.ts +0 -5
  40. package/src/@types/@loadsmart/utilsObject.d.ts +0 -5
  41. package/src/@types/svg.d.ts +0 -4
  42. package/src/addons/Theme/register.js +0 -590
  43. package/src/common/BackButton/BackButton.tsx +0 -18
  44. package/src/common/BackButton/index.ts +0 -2
  45. package/src/common/CloseButton/CloseButton.tsx +0 -55
  46. package/src/common/CloseButton/index.ts +0 -2
  47. package/src/common/SelectionWrapper.tsx +0 -130
  48. package/src/components/Accordion/Accordion.context.tsx +0 -36
  49. package/src/components/Accordion/Accordion.stories.tsx +0 -186
  50. package/src/components/Accordion/Accordion.test.tsx +0 -209
  51. package/src/components/Accordion/Accordion.tsx +0 -233
  52. package/src/components/Accordion/index.ts +0 -2
  53. package/src/components/Banner/Banner.stories.tsx +0 -213
  54. package/src/components/Banner/Banner.test.tsx +0 -118
  55. package/src/components/Banner/Banner.tsx +0 -418
  56. package/src/components/Banner/index.tsx +0 -2
  57. package/src/components/Breadcrumbs/Breadbrumbs.test.tsx +0 -125
  58. package/src/components/Breadcrumbs/Breadcrumb.tsx +0 -92
  59. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +0 -21
  60. package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -54
  61. package/src/components/Breadcrumbs/index.ts +0 -4
  62. package/src/components/Button/Button.stories.tsx +0 -174
  63. package/src/components/Button/Button.test.tsx +0 -57
  64. package/src/components/Button/Button.tsx +0 -576
  65. package/src/components/Button/index.tsx +0 -2
  66. package/src/components/Calendar/Calendar.helpers.ts +0 -15
  67. package/src/components/Calendar/Calendar.stories.tsx +0 -168
  68. package/src/components/Calendar/Calendar.test.tsx +0 -316
  69. package/src/components/Calendar/Calendar.tsx +0 -130
  70. package/src/components/Calendar/Calendar.types.ts +0 -68
  71. package/src/components/Calendar/Date.helper.test.ts +0 -847
  72. package/src/components/Calendar/Date.helper.ts +0 -461
  73. package/src/components/Calendar/DateFormat.helper.test.ts +0 -171
  74. package/src/components/Calendar/DateFormat.helper.ts +0 -195
  75. package/src/components/Calendar/Month.helper.test.ts +0 -187
  76. package/src/components/Calendar/Month.helper.ts +0 -172
  77. package/src/components/Calendar/PickerModeToggle.tsx +0 -61
  78. package/src/components/Calendar/Pickers/DayPicker.test.tsx +0 -85
  79. package/src/components/Calendar/Pickers/DayPicker.tsx +0 -127
  80. package/src/components/Calendar/Pickers/MonthPicker.test.tsx +0 -77
  81. package/src/components/Calendar/Pickers/MonthPicker.tsx +0 -51
  82. package/src/components/Calendar/Pickers/PickerButton.tsx +0 -119
  83. package/src/components/Calendar/Pickers/YearPicker.test.tsx +0 -75
  84. package/src/components/Calendar/Pickers/YearPicker.tsx +0 -52
  85. package/src/components/Calendar/index.ts +0 -10
  86. package/src/components/Calendar/useCalendar.ts +0 -190
  87. package/src/components/Calendar/usePickerMode.ts +0 -48
  88. package/src/components/Card/Card.stories.tsx +0 -117
  89. package/src/components/Card/Card.test.tsx +0 -139
  90. package/src/components/Card/Card.tsx +0 -106
  91. package/src/components/Card/CardTitle.tsx +0 -43
  92. package/src/components/Card/index.ts +0 -2
  93. package/src/components/Checkbox/Checkbox.stories.tsx +0 -79
  94. package/src/components/Checkbox/Checkbox.test.tsx +0 -66
  95. package/src/components/Checkbox/Checkbox.tsx +0 -170
  96. package/src/components/Checkbox/index.ts +0 -2
  97. package/src/components/DatePicker/DatePicker.stories.tsx +0 -113
  98. package/src/components/DatePicker/DatePicker.test.tsx +0 -174
  99. package/src/components/DatePicker/DatePicker.tsx +0 -140
  100. package/src/components/DatePicker/DatePicker.types.ts +0 -30
  101. package/src/components/DatePicker/DateRangePicker.stories.tsx +0 -128
  102. package/src/components/DatePicker/DateRangePicker.test.tsx +0 -267
  103. package/src/components/DatePicker/DateRangePicker.tsx +0 -110
  104. package/src/components/DatePicker/index.ts +0 -3
  105. package/src/components/DatePicker/useDatePicker.ts +0 -201
  106. package/src/components/DatePicker/useDateRangePicker.ts +0 -224
  107. package/src/components/Dialog/Dialog.stories.tsx +0 -227
  108. package/src/components/Dialog/Dialog.test.tsx +0 -74
  109. package/src/components/Dialog/Dialog.tsx +0 -139
  110. package/src/components/Dialog/index.tsx +0 -4
  111. package/src/components/Dialog/useDialog.tsx +0 -59
  112. package/src/components/DragDropFile/DragDropFile.context.tsx +0 -39
  113. package/src/components/DragDropFile/DragDropFile.stories.tsx +0 -183
  114. package/src/components/DragDropFile/DragDropFile.tsx +0 -11
  115. package/src/components/DragDropFile/components/DropZone.test.tsx +0 -108
  116. package/src/components/DragDropFile/components/DropZone.tsx +0 -145
  117. package/src/components/DragDropFile/components/FileItem.tsx +0 -117
  118. package/src/components/DragDropFile/components/FileList.test.tsx +0 -119
  119. package/src/components/DragDropFile/components/FileList.tsx +0 -47
  120. package/src/components/DragDropFile/components/Wrapper.tsx +0 -22
  121. package/src/components/DragDropFile/index.ts +0 -9
  122. package/src/components/DragDropFile/mocks.ts +0 -23
  123. package/src/components/DragDropFile/styles.tsx +0 -81
  124. package/src/components/DragDropFile/types.ts +0 -85
  125. package/src/components/Drawer/Drawer.stories.tsx +0 -83
  126. package/src/components/Drawer/Drawer.test.tsx +0 -90
  127. package/src/components/Drawer/Drawer.tsx +0 -225
  128. package/src/components/Drawer/index.ts +0 -4
  129. package/src/components/Dropdown/Dropdown.context.ts +0 -13
  130. package/src/components/Dropdown/Dropdown.fixtures.ts +0 -15
  131. package/src/components/Dropdown/Dropdown.stories.tsx +0 -259
  132. package/src/components/Dropdown/Dropdown.test.tsx +0 -173
  133. package/src/components/Dropdown/Dropdown.tsx +0 -141
  134. package/src/components/Dropdown/Dropdown.types.ts +0 -59
  135. package/src/components/Dropdown/DropdownMenu.tsx +0 -263
  136. package/src/components/Dropdown/DropdownTrigger.tsx +0 -368
  137. package/src/components/Dropdown/index.ts +0 -15
  138. package/src/components/Dropdown/useDropdown.test.ts +0 -96
  139. package/src/components/Dropdown/useDropdown.ts +0 -65
  140. package/src/components/EmptyState/EmptyState.mocks.tsx +0 -60
  141. package/src/components/EmptyState/EmptyState.stories.tsx +0 -239
  142. package/src/components/EmptyState/EmptyState.test.tsx +0 -101
  143. package/src/components/EmptyState/EmptyState.tsx +0 -22
  144. package/src/components/EmptyState/EmptyState.types.ts +0 -59
  145. package/src/components/EmptyState/EmptyStateWithIcon.tsx +0 -42
  146. package/src/components/EmptyState/EmptyStateWithIllustration.tsx +0 -72
  147. package/src/components/EmptyState/Illustration.tsx +0 -29
  148. package/src/components/EmptyState/index.ts +0 -4
  149. package/src/components/ErrorMessage/ErrorMessage.stories.tsx +0 -26
  150. package/src/components/ErrorMessage/ErrorMessage.test.tsx +0 -24
  151. package/src/components/ErrorMessage/ErrorMessage.tsx +0 -19
  152. package/src/components/ErrorMessage/index.ts +0 -2
  153. package/src/components/HighlightMatch/HighlightMatch.stories.tsx +0 -24
  154. package/src/components/HighlightMatch/HighlightMatch.test.tsx +0 -37
  155. package/src/components/HighlightMatch/HighlightMatch.tsx +0 -29
  156. package/src/components/HighlightMatch/index.ts +0 -2
  157. package/src/components/Icon/Icon.tsx +0 -55
  158. package/src/components/Icon/assets/back.svg +0 -4
  159. package/src/components/Icon/assets/burger-menu.svg +0 -3
  160. package/src/components/Icon/assets/calendar.svg +0 -5
  161. package/src/components/Icon/assets/caret-down.svg +0 -4
  162. package/src/components/Icon/assets/caret-left.svg +0 -4
  163. package/src/components/Icon/assets/caret-right-last.svg +0 -4
  164. package/src/components/Icon/assets/caret-right.svg +0 -4
  165. package/src/components/Icon/assets/check.svg +0 -4
  166. package/src/components/Icon/assets/chevron-down.svg +0 -3
  167. package/src/components/Icon/assets/circle.svg +0 -3
  168. package/src/components/Icon/assets/close.svg +0 -4
  169. package/src/components/Icon/assets/dots-horizontal.svg +0 -1
  170. package/src/components/Icon/assets/information.svg +0 -4
  171. package/src/components/Icon/assets/minus.svg +0 -4
  172. package/src/components/Icon/assets/plus.svg +0 -4
  173. package/src/components/Icon/assets/refresh.svg +0 -3
  174. package/src/components/Icon/assets/sort-asc.svg +0 -7
  175. package/src/components/Icon/assets/sort-desc.svg +0 -7
  176. package/src/components/Icon/assets/sort.svg +0 -7
  177. package/src/components/Icon/assets/upload.svg +0 -3
  178. package/src/components/Icon/assets/warning.svg +0 -4
  179. package/src/components/Icon/index.ts +0 -2
  180. package/src/components/IconFactory/IconFactory.fixtures.tsx +0 -31
  181. package/src/components/IconFactory/IconFactory.stories.tsx +0 -120
  182. package/src/components/IconFactory/IconFactory.test.tsx +0 -36
  183. package/src/components/IconFactory/IconFactory.tsx +0 -75
  184. package/src/components/IconFactory/index.ts +0 -2
  185. package/src/components/Label/Label.stories.tsx +0 -47
  186. package/src/components/Label/Label.test.tsx +0 -80
  187. package/src/components/Label/Label.tsx +0 -120
  188. package/src/components/Label/index.ts +0 -2
  189. package/src/components/Layout/Box.tsx +0 -98
  190. package/src/components/Layout/Grid.tsx +0 -42
  191. package/src/components/Layout/Group.tsx +0 -55
  192. package/src/components/Layout/Layout.stories.tsx +0 -412
  193. package/src/components/Layout/Layout.tsx +0 -19
  194. package/src/components/Layout/Layout.types.ts +0 -9
  195. package/src/components/Layout/Layout.utils.ts +0 -20
  196. package/src/components/Layout/Sidebar.tsx +0 -75
  197. package/src/components/Layout/Stack.tsx +0 -63
  198. package/src/components/Layout/Switcher.tsx +0 -48
  199. package/src/components/Layout/index.tsx +0 -8
  200. package/src/components/Link/Link.stories.tsx +0 -22
  201. package/src/components/Link/Link.test.tsx +0 -79
  202. package/src/components/Link/Link.tsx +0 -114
  203. package/src/components/Link/index.ts +0 -3
  204. package/src/components/Link/useSafeLink.ts +0 -49
  205. package/src/components/Loaders/LoadingBar.stories.tsx +0 -36
  206. package/src/components/Loaders/LoadingBar.test.tsx +0 -35
  207. package/src/components/Loaders/LoadingBar.tsx +0 -65
  208. package/src/components/Loaders/LoadingDots.stories.tsx +0 -69
  209. package/src/components/Loaders/LoadingDots.test.tsx +0 -22
  210. package/src/components/Loaders/LoadingDots.tsx +0 -68
  211. package/src/components/Loaders/Spinner.stories.tsx +0 -24
  212. package/src/components/Loaders/Spinner.test.tsx +0 -35
  213. package/src/components/Loaders/Spinner.tsx +0 -68
  214. package/src/components/Loaders/index.tsx +0 -3
  215. package/src/components/Modal/Modal.stories.tsx +0 -121
  216. package/src/components/Modal/Modal.test.tsx +0 -46
  217. package/src/components/Modal/Modal.tsx +0 -163
  218. package/src/components/Modal/index.tsx +0 -2
  219. package/src/components/Pagination/Pagination.constants.ts +0 -7
  220. package/src/components/Pagination/Pagination.helper.ts +0 -88
  221. package/src/components/Pagination/Pagination.stories.tsx +0 -29
  222. package/src/components/Pagination/Pagination.test.tsx +0 -102
  223. package/src/components/Pagination/Pagination.tsx +0 -34
  224. package/src/components/Pagination/Pagination.types.ts +0 -55
  225. package/src/components/Pagination/PaginationItem.tsx +0 -74
  226. package/src/components/Pagination/index.ts +0 -2
  227. package/src/components/Pagination/usePagination.test.ts +0 -188
  228. package/src/components/Pagination/usePagination.ts +0 -87
  229. package/src/components/Popover/Popover.stories.tsx +0 -50
  230. package/src/components/Popover/Popover.test.tsx +0 -22
  231. package/src/components/Popover/Popover.tsx +0 -110
  232. package/src/components/Popover/Popover.types.ts +0 -39
  233. package/src/components/Popover/index.ts +0 -11
  234. package/src/components/ProgressBar/ProgressBar.stories.tsx +0 -47
  235. package/src/components/ProgressBar/ProgressBar.test.tsx +0 -40
  236. package/src/components/ProgressBar/ProgressBar.tsx +0 -89
  237. package/src/components/ProgressBar/index.tsx +0 -2
  238. package/src/components/Radio/Radio.stories.tsx +0 -75
  239. package/src/components/Radio/Radio.test.tsx +0 -66
  240. package/src/components/Radio/Radio.tsx +0 -153
  241. package/src/components/Radio/index.ts +0 -2
  242. package/src/components/Section/Section.test.tsx +0 -35
  243. package/src/components/Section/Section.tsx +0 -66
  244. package/src/components/Section/Sections.stories.tsx +0 -56
  245. package/src/components/Section/index.ts +0 -2
  246. package/src/components/Select/Select.constants.ts +0 -12
  247. package/src/components/Select/Select.context.ts +0 -11
  248. package/src/components/Select/Select.fixtures.ts +0 -167
  249. package/src/components/Select/Select.stories.tsx +0 -780
  250. package/src/components/Select/Select.test.tsx +0 -1109
  251. package/src/components/Select/Select.tsx +0 -271
  252. package/src/components/Select/Select.types.ts +0 -148
  253. package/src/components/Select/SelectCreatableOption.tsx +0 -20
  254. package/src/components/Select/SelectEmpty.test.tsx +0 -15
  255. package/src/components/Select/SelectEmpty.tsx +0 -29
  256. package/src/components/Select/SelectOption.test.tsx +0 -78
  257. package/src/components/Select/SelectOption.tsx +0 -79
  258. package/src/components/Select/SelectTrigger.tsx +0 -83
  259. package/src/components/Select/components.tsx +0 -14
  260. package/src/components/Select/index.ts +0 -12
  261. package/src/components/Select/useSelect.helpers.test.ts +0 -184
  262. package/src/components/Select/useSelect.helpers.ts +0 -63
  263. package/src/components/Select/useSelect.test.ts +0 -207
  264. package/src/components/Select/useSelect.ts +0 -540
  265. package/src/components/Select/useSelectExternal.ts +0 -26
  266. package/src/components/SideNavigation/Logo/Logo.test.tsx +0 -19
  267. package/src/components/SideNavigation/Logo/Logo.tsx +0 -26
  268. package/src/components/SideNavigation/Logo/index.ts +0 -1
  269. package/src/components/SideNavigation/Menu/Menu.test.tsx +0 -65
  270. package/src/components/SideNavigation/Menu/Menu.tsx +0 -53
  271. package/src/components/SideNavigation/Menu/MenuBaseItem.tsx +0 -64
  272. package/src/components/SideNavigation/Menu/MenuExpandable.tsx +0 -107
  273. package/src/components/SideNavigation/Menu/MenuLink.tsx +0 -37
  274. package/src/components/SideNavigation/Menu/index.ts +0 -1
  275. package/src/components/SideNavigation/Separator/Separator.test.tsx +0 -14
  276. package/src/components/SideNavigation/Separator/Separator.tsx +0 -20
  277. package/src/components/SideNavigation/Separator/index.ts +0 -1
  278. package/src/components/SideNavigation/SideNavigation.stories.tsx +0 -69
  279. package/src/components/SideNavigation/SideNavigation.test.tsx +0 -21
  280. package/src/components/SideNavigation/SideNavigation.tsx +0 -47
  281. package/src/components/SideNavigation/index.ts +0 -5
  282. package/src/components/SideNavigation/useSideNavigation.ts +0 -36
  283. package/src/components/Steps/ProgressSteps/ProgressStep.tsx +0 -163
  284. package/src/components/Steps/ProgressSteps/ProgressSteps.tsx +0 -37
  285. package/src/components/Steps/ProgressSteps/index.ts +0 -1
  286. package/src/components/Steps/Steps.fixtures.ts +0 -11
  287. package/src/components/Steps/Steps.helpers.ts +0 -11
  288. package/src/components/Steps/Steps.stories.tsx +0 -65
  289. package/src/components/Steps/Steps.test.tsx +0 -78
  290. package/src/components/Steps/Steps.tsx +0 -53
  291. package/src/components/Steps/Steps.types.ts +0 -5
  292. package/src/components/Steps/StepsContext.ts +0 -5
  293. package/src/components/Steps/StepsStep.tsx +0 -58
  294. package/src/components/Steps/index.ts +0 -6
  295. package/src/components/Steps/useStep.test.tsx +0 -217
  296. package/src/components/Steps/useSteps.ts +0 -131
  297. package/src/components/Switch/Switch.stories.tsx +0 -65
  298. package/src/components/Switch/Switch.test.tsx +0 -60
  299. package/src/components/Switch/Switch.tsx +0 -209
  300. package/src/components/Switch/index.ts +0 -2
  301. package/src/components/Table/Selection.tsx +0 -202
  302. package/src/components/Table/Table.fixtures.ts +0 -101
  303. package/src/components/Table/Table.stories.tsx +0 -568
  304. package/src/components/Table/Table.test.tsx +0 -310
  305. package/src/components/Table/Table.tsx +0 -523
  306. package/src/components/Table/Table.types.ts +0 -93
  307. package/src/components/Table/TableSortHandle.tsx +0 -31
  308. package/src/components/Table/index.tsx +0 -2
  309. package/src/components/Table/useSortBy.test.ts +0 -96
  310. package/src/components/Table/useSortBy.ts +0 -92
  311. package/src/components/Table/useSortBy.types.ts +0 -21
  312. package/src/components/TablePagination/RowsPerPage.tsx +0 -81
  313. package/src/components/TablePagination/TablePagination.stories.tsx +0 -42
  314. package/src/components/TablePagination/TablePagination.styles.ts +0 -13
  315. package/src/components/TablePagination/TablePagination.test.tsx +0 -111
  316. package/src/components/TablePagination/TablePagination.tsx +0 -49
  317. package/src/components/TablePagination/TablePagination.types.ts +0 -69
  318. package/src/components/TablePagination/TablePaginationActions.tsx +0 -144
  319. package/src/components/TablePagination/index.ts +0 -2
  320. package/src/components/Tabs/Tabs.stories.tsx +0 -78
  321. package/src/components/Tabs/Tabs.test.tsx +0 -103
  322. package/src/components/Tabs/Tabs.tsx +0 -287
  323. package/src/components/Tabs/Tabs.types.ts +0 -7
  324. package/src/components/Tabs/TabsContext.ts +0 -10
  325. package/src/components/Tabs/index.ts +0 -2
  326. package/src/components/Tag/Tag.stories.tsx +0 -112
  327. package/src/components/Tag/Tag.test.tsx +0 -19
  328. package/src/components/Tag/Tag.tsx +0 -393
  329. package/src/components/Tag/index.ts +0 -2
  330. package/src/components/Text/Text.stories.tsx +0 -59
  331. package/src/components/Text/Text.test.tsx +0 -48
  332. package/src/components/Text/Text.tsx +0 -14
  333. package/src/components/Text/index.ts +0 -2
  334. package/src/components/TextField/TextField.stories.tsx +0 -90
  335. package/src/components/TextField/TextField.test.tsx +0 -36
  336. package/src/components/TextField/TextField.tsx +0 -244
  337. package/src/components/TextField/index.ts +0 -6
  338. package/src/components/TextField/useTextField.tsx +0 -26
  339. package/src/components/Textarea/Textarea.stories.tsx +0 -101
  340. package/src/components/Textarea/Textarea.test.tsx +0 -14
  341. package/src/components/Textarea/Textarea.tsx +0 -230
  342. package/src/components/Textarea/index.ts +0 -2
  343. package/src/components/Toast/Toast.stories.tsx +0 -50
  344. package/src/components/Toast/Toast.test.tsx +0 -24
  345. package/src/components/Toast/Toast.tsx +0 -141
  346. package/src/components/Toast/icons/close.svg +0 -3
  347. package/src/components/Toast/icons/danger.svg +0 -4
  348. package/src/components/Toast/icons/neutral.svg +0 -4
  349. package/src/components/Toast/icons/success.svg +0 -3
  350. package/src/components/Toast/icons/warning.svg +0 -4
  351. package/src/components/Toast/index.tsx +0 -2
  352. package/src/components/ToggleGroup/Toggle.test.tsx +0 -76
  353. package/src/components/ToggleGroup/Toggle.tsx +0 -158
  354. package/src/components/ToggleGroup/ToggleGroup.constants.ts +0 -16
  355. package/src/components/ToggleGroup/ToggleGroup.stories.tsx +0 -145
  356. package/src/components/ToggleGroup/ToggleGroup.test.tsx +0 -237
  357. package/src/components/ToggleGroup/ToggleGroup.tsx +0 -165
  358. package/src/components/ToggleGroup/ToggleGroup.types.ts +0 -35
  359. package/src/components/ToggleGroup/ToggleGroupContext.ts +0 -13
  360. package/src/components/ToggleGroup/index.ts +0 -3
  361. package/src/components/Tooltip/Tooltip.stories.tsx +0 -82
  362. package/src/components/Tooltip/Tooltip.test.tsx +0 -49
  363. package/src/components/Tooltip/Tooltip.tsx +0 -185
  364. package/src/components/Tooltip/index.ts +0 -2
  365. package/src/components/TopNavigation/Logo/Logo.test.tsx +0 -21
  366. package/src/components/TopNavigation/Logo/Logo.tsx +0 -20
  367. package/src/components/TopNavigation/Logo/index.ts +0 -1
  368. package/src/components/TopNavigation/Menu/Menu.test.tsx +0 -125
  369. package/src/components/TopNavigation/Menu/Menu.tsx +0 -62
  370. package/src/components/TopNavigation/Menu/MenuItemDropdown.tsx +0 -118
  371. package/src/components/TopNavigation/Menu/MenuItemIcon.tsx +0 -50
  372. package/src/components/TopNavigation/Menu/index.ts +0 -1
  373. package/src/components/TopNavigation/OpenSideNavButton/OpenSideNavButton.tsx +0 -28
  374. package/src/components/TopNavigation/OpenSideNavButton/index.ts +0 -1
  375. package/src/components/TopNavigation/TopNavigation.stories.tsx +0 -42
  376. package/src/components/TopNavigation/TopNavigation.tsx +0 -47
  377. package/src/components/TopNavigation/index.ts +0 -2
  378. package/src/components/VisuallyHidden/VisuallyHidden.mdx +0 -26
  379. package/src/components/VisuallyHidden/VisuallyHidden.stories.tsx +0 -32
  380. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +0 -18
  381. package/src/components/VisuallyHidden/VisuallyHidden.tsx +0 -6
  382. package/src/components/VisuallyHidden/index.ts +0 -1
  383. package/src/docs/tools/DatePickerEvent.stories.mdx +0 -108
  384. package/src/docs/tools/DragDropFileEvent.stories.mdx +0 -75
  385. package/src/docs/tools/conditional.stories.mdx +0 -251
  386. package/src/docs/tools/selectEvent.stories.mdx +0 -121
  387. package/src/hooks/useClickOutside/index.ts +0 -1
  388. package/src/hooks/useClickOutside/useClickOutside.test.tsx +0 -116
  389. package/src/hooks/useClickOutside/useClickOutside.ts +0 -65
  390. package/src/hooks/useDidMount/index.ts +0 -1
  391. package/src/hooks/useDidMount/useDidMount.test.tsx +0 -38
  392. package/src/hooks/useDidMount/useDidMount.ts +0 -20
  393. package/src/hooks/useFingerprint/index.ts +0 -1
  394. package/src/hooks/useFingerprint/useFingerprint.test.ts +0 -76
  395. package/src/hooks/useFingerprint/useFingerprint.ts +0 -94
  396. package/src/hooks/useFocusTrap/index.ts +0 -2
  397. package/src/hooks/useFocusTrap/useFocusTrap.stories.tsx +0 -87
  398. package/src/hooks/useFocusTrap/useFocusTrap.test.tsx +0 -129
  399. package/src/hooks/useFocusTrap/useFocusTrap.ts +0 -187
  400. package/src/hooks/useFocusWithin/index.ts +0 -2
  401. package/src/hooks/useFocusWithin/useFocusWithin.test.tsx +0 -71
  402. package/src/hooks/useFocusWithin/useFocusWithin.ts +0 -62
  403. package/src/hooks/useHeightExpansionToggler/index.ts +0 -2
  404. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.test.tsx +0 -85
  405. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.ts +0 -54
  406. package/src/hooks/useID/index.ts +0 -1
  407. package/src/hooks/useID/useID.ts +0 -18
  408. package/src/hooks/useSelectable/SelectableStrategy.test.ts +0 -424
  409. package/src/hooks/useSelectable/SelectableStrategy.ts +0 -143
  410. package/src/hooks/useSelectable/index.ts +0 -8
  411. package/src/hooks/useSelectable/useSelectable.test.ts +0 -221
  412. package/src/hooks/useSelectable/useSelectable.ts +0 -156
  413. package/src/hooks/useSelectable/useSelectable.types.ts +0 -45
  414. package/src/hooks/useWindowResize/index.ts +0 -1
  415. package/src/hooks/useWindowResize/useWindowResize.ts +0 -27
  416. package/src/index.ts +0 -188
  417. package/src/stories/assets/code-brackets.svg +0 -1
  418. package/src/stories/assets/colors.svg +0 -1
  419. package/src/stories/assets/comments.svg +0 -1
  420. package/src/stories/assets/direction.svg +0 -1
  421. package/src/stories/assets/flow.svg +0 -1
  422. package/src/stories/assets/plugin.svg +0 -1
  423. package/src/stories/assets/repo.svg +0 -1
  424. package/src/stories/assets/stackalt.svg +0 -1
  425. package/src/stories/introduction.stories.mdx +0 -57
  426. package/src/stories/startPage.stories.mdx +0 -95
  427. package/src/styles/activatable.tsx +0 -30
  428. package/src/styles/disableable.tsx +0 -45
  429. package/src/styles/ellipsizable.tsx +0 -14
  430. package/src/styles/focusable.tsx +0 -32
  431. package/src/styles/font.test.ts +0 -31
  432. package/src/styles/font.tsx +0 -40
  433. package/src/styles/hidden.tsx +0 -29
  434. package/src/styles/hoverable.tsx +0 -30
  435. package/src/styles/transition.tsx +0 -25
  436. package/src/styles/typography.test.ts +0 -93
  437. package/src/styles/typography.ts +0 -190
  438. package/src/testing/DatePickerEvent/DatePickerEvent.ts +0 -117
  439. package/src/testing/DatePickerEvent/DateRangePickerEvent.ts +0 -83
  440. package/src/testing/DatePickerEvent/index.ts +0 -2
  441. package/src/testing/DragDropFileEvent/DragDropFileEvent.ts +0 -56
  442. package/src/testing/DragDropFileEvent/index.ts +0 -1
  443. package/src/testing/SelectEvent/SelectEvent.test.tsx +0 -192
  444. package/src/testing/SelectEvent/SelectEvent.ts +0 -264
  445. package/src/testing/SelectEvent/index.ts +0 -1
  446. package/src/testing/getInterpolatedStyles/getInterpolatedStyles.ts +0 -25
  447. package/src/testing/getInterpolatedStyles/index.ts +0 -1
  448. package/src/testing/index.ts +0 -6
  449. package/src/testing/renderWithDragDropFileProvider/index.ts +0 -1
  450. package/src/testing/renderWithDragDropFileProvider/renderWithDragDropFileProvider.tsx +0 -28
  451. package/src/tests/generator.ts +0 -127
  452. package/src/tests/renderer.tsx +0 -39
  453. package/src/theming/index.ts +0 -42
  454. package/src/theming/themes/alice.theme.ts +0 -1022
  455. package/src/theming/themes/index.ts +0 -3
  456. package/src/theming/themes/loadsmart.theme.ts +0 -1019
  457. package/src/theming/themes/miranda-compatibility.theme.ts +0 -972
  458. package/src/theming/theming.helpers.ts +0 -95
  459. package/src/tools/conditional.test.ts +0 -166
  460. package/src/tools/conditional.ts +0 -127
  461. package/src/tools/index.ts +0 -2
  462. package/src/tools/prop.test.ts +0 -52
  463. package/src/tools/prop.ts +0 -36
  464. package/src/utils/toolset/awaitTo.ts +0 -24
  465. package/src/utils/toolset/flatten.ts +0 -3
  466. package/src/utils/toolset/formatBytes.test.ts +0 -45
  467. package/src/utils/toolset/formatBytes.ts +0 -18
  468. package/src/utils/toolset/get.ts +0 -2
  469. package/src/utils/toolset/getID.test.ts +0 -57
  470. package/src/utils/toolset/getID.ts +0 -93
  471. package/src/utils/toolset/getOrdinalSuffix.test.ts +0 -27
  472. package/src/utils/toolset/getOrdinalSuffix.ts +0 -15
  473. package/src/utils/toolset/highlightMatch.test.tsx +0 -32
  474. package/src/utils/toolset/highlightMatch.tsx +0 -32
  475. package/src/utils/toolset/interleave.test.ts +0 -40
  476. package/src/utils/toolset/interleave.ts +0 -23
  477. package/src/utils/toolset/isEmpty.ts +0 -2
  478. package/src/utils/toolset/isThenable.test.ts +0 -40
  479. package/src/utils/toolset/isThenable.ts +0 -14
  480. package/src/utils/toolset/keyboard.ts +0 -50
  481. package/src/utils/toolset/omit.ts +0 -2
  482. package/src/utils/toolset/pluralize.ts +0 -16
  483. package/src/utils/toolset/range.ts +0 -2
  484. package/src/utils/toolset/rem.ts +0 -7
  485. package/src/utils/toolset/styledCompounds.ts +0 -22
  486. package/src/utils/toolset/toArray.ts +0 -16
  487. package/src/utils/types/ColorScheme.ts +0 -3
  488. package/src/utils/types/EventLike.ts +0 -11
  489. package/src/utils/types/InterpolatedStyle.ts +0 -3
  490. 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'