@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,74 +0,0 @@
1
- import React from 'react'
2
- import styled from 'styled-components'
3
-
4
- import { getToken as token } from 'theming'
5
- import conditional, { whenProps } from 'tools/conditional'
6
- import hoverable from 'styles/hoverable'
7
- import focusable from 'styles/focusable'
8
-
9
- import { BaseButton, IconButton as IconButtonDefault } from 'components/Button'
10
- import { Icon } from 'components/Icon'
11
- import { Text } from 'components/Text'
12
-
13
- import type { PaginationItemProps } from './Pagination.types'
14
- import { PAGINATION_ITEM_TYPE } from './Pagination.constants'
15
-
16
- const IconButton = styled(IconButtonDefault)`
17
- margin: ${token('space-xs')};
18
- `
19
-
20
- const PageButton = styled(BaseButton)`
21
- background-color: transparent;
22
- border: none;
23
-
24
- ${focusable`
25
- box-shadow: ${token('button-primary-outline')};
26
- `}
27
-
28
- ${hoverable`
29
- * {
30
- text-decoration: underline;
31
- color: ${token('color-neutral-dark')};
32
- }
33
- `}
34
-
35
- ${Text} {
36
- color: ${conditional({
37
- 'color-accent': whenProps({ 'aria-current': true }),
38
- })};
39
- text-decoration: ${conditional({
40
- underline: whenProps({ 'aria-current': true }),
41
- })};
42
- }
43
- `
44
-
45
- const ICONS_NAME: Record<string, string> = {
46
- previous: 'caret-left',
47
- next: 'caret-right',
48
- }
49
-
50
- function PaginationItem(props: PaginationItemProps): JSX.Element {
51
- const { itemType: type, page, ...others } = props
52
-
53
- const iconName = ICONS_NAME[type]
54
-
55
- if (iconName) {
56
- return (
57
- <IconButton {...others} id={iconName} aria-label={`Go to ${type} page`}>
58
- <Icon name={iconName} size={16} />
59
- </IconButton>
60
- )
61
- }
62
-
63
- return (
64
- <PageButton {...others} aria-label={`Go to page ${page?.toString() ?? ''}`}>
65
- <Text variant="body">
66
- {[PAGINATION_ITEM_TYPE.endEllipsis, PAGINATION_ITEM_TYPE.startEllipsis].includes(type)
67
- ? '...'
68
- : page}
69
- </Text>
70
- </PageButton>
71
- )
72
- }
73
-
74
- export default PaginationItem
@@ -1,2 +0,0 @@
1
- export { default as Pagination } from './Pagination'
2
- export type { PaginationProps } from './Pagination.types'
@@ -1,188 +0,0 @@
1
- import { renderHook } from '@testing-library/react-hooks'
2
-
3
- import usePagination from './usePagination'
4
-
5
- describe('usePagination', () => {
6
- it('returns a disabled previous and next button when has only one page', () => {
7
- const props = {
8
- page: 1,
9
- count: 1,
10
- onChange: jest.fn(),
11
- }
12
- const items = renderHook(() => usePagination(props)).result.current
13
-
14
- expect(items[0]).toHaveProperty('itemType', 'previous')
15
- expect(items[0]).toHaveProperty('disabled', true)
16
- expect(items[2]).toHaveProperty('itemType', 'next')
17
- expect(items[2]).toHaveProperty('disabled', true)
18
- })
19
-
20
- it('returns a disabled previous button and an enabled next button when count > 1 and first page selected', () => {
21
- const props = {
22
- page: 1,
23
- count: 2,
24
- onChange: jest.fn(),
25
- }
26
- const items = renderHook(() => usePagination(props)).result.current
27
-
28
- expect(items[0]).toHaveProperty('itemType', 'previous')
29
- expect(items[0]).toHaveProperty('disabled', true)
30
- expect(items[3]).toHaveProperty('itemType', 'next')
31
- expect(items[3]).toHaveProperty('disabled', false)
32
- })
33
-
34
- it('returns an enabled previous button and a disabled next button when page === count', () => {
35
- const props = {
36
- page: 2,
37
- count: 2,
38
- onChange: jest.fn(),
39
- }
40
- const items = renderHook(() => usePagination(props)).result.current
41
-
42
- expect(items[0]).toHaveProperty('itemType', 'previous')
43
- expect(items[0]).toHaveProperty('disabled', false)
44
- expect(items[3]).toHaveProperty('itemType', 'next')
45
- expect(items[3]).toHaveProperty('disabled', true)
46
- })
47
-
48
- it('returns no ellipses when count <= 7', () => {
49
- const props = {
50
- page: 1,
51
- count: 7,
52
- onChange: jest.fn(),
53
- }
54
- const items = renderHook(() => usePagination(props)).result.current
55
-
56
- expect(items[1]).toHaveProperty('page', 1)
57
- expect(items[2]).toHaveProperty('page', 2)
58
- expect(items[3]).toHaveProperty('page', 3)
59
- expect(items[4]).toHaveProperty('page', 4)
60
- expect(items[5]).toHaveProperty('page', 5)
61
- expect(items[6]).toHaveProperty('page', 6)
62
- expect(items[7]).toHaveProperty('page', 7)
63
- })
64
-
65
- it('returns an end ellipsis by default when count >= 8', () => {
66
- const props = {
67
- page: 1,
68
- count: 8,
69
- onChange: jest.fn(),
70
- }
71
- const items = renderHook(() => usePagination(props)).result.current
72
-
73
- expect(items).toHaveLength(9)
74
-
75
- expect(items[2]).toHaveProperty('itemType', 'page')
76
- expect(items[2]).toHaveProperty('page', 2)
77
-
78
- expect(items[6]).toHaveProperty('itemType', 'end-ellipsis')
79
- expect(items[6]).toHaveProperty('page', 6)
80
- })
81
-
82
- it('returns a start ellipsis when page >= 5', () => {
83
- const props = {
84
- page: 5,
85
- count: 8,
86
- onChange: jest.fn(),
87
- }
88
- const items = renderHook(() => usePagination(props)).result.current
89
-
90
- expect(items[2]).toHaveProperty('itemType', 'start-ellipsis')
91
- expect(items[2]).toHaveProperty('page', 3)
92
- expect(items[6]).toHaveProperty('page', 7)
93
- })
94
-
95
- it('returns start and end ellipsis when count >= 9', () => {
96
- const props = {
97
- page: 5,
98
- count: 9,
99
- onChange: jest.fn(),
100
- }
101
- const items = renderHook(() => usePagination(props)).result.current
102
-
103
- expect(items).toHaveLength(9)
104
-
105
- expect(items[2]).toHaveProperty('itemType', 'start-ellipsis')
106
- expect(items[2]).toHaveProperty('page', 3)
107
-
108
- expect(items[6]).toHaveProperty('itemType', 'end-ellipsis')
109
- expect(items[6]).toHaveProperty('page', 7)
110
- })
111
-
112
- it('returns no sibilings', () => {
113
- const props = {
114
- page: 4,
115
- count: 7,
116
- siblingCount: 0,
117
- onChange: jest.fn(),
118
- }
119
- const items = renderHook(() => usePagination(props)).result.current
120
-
121
- expect(items).toHaveLength(7)
122
-
123
- expect(items[2]).toHaveProperty('itemType', 'start-ellipsis')
124
-
125
- expect(items[3]).toHaveProperty('itemType', 'page')
126
- expect(items[3]).toHaveProperty('page', 4)
127
-
128
- expect(items[4]).toHaveProperty('itemType', 'end-ellipsis')
129
- })
130
-
131
- it('returns more than one siblings', () => {
132
- const props = {
133
- page: 6,
134
- count: 11,
135
- siblingCount: 2,
136
- onChange: jest.fn(),
137
- }
138
- const items = renderHook(() => usePagination(props)).result.current
139
-
140
- expect(items).toHaveLength(11)
141
-
142
- expect(items[2]).toHaveProperty('itemType', 'start-ellipsis')
143
-
144
- expect(items[3]).toHaveProperty('itemType', 'page')
145
- expect(items[3]).toHaveProperty('page', 4)
146
-
147
- expect(items[4]).toHaveProperty('itemType', 'page')
148
- expect(items[4]).toHaveProperty('page', 5)
149
-
150
- expect(items[5]).toHaveProperty('itemType', 'page')
151
- expect(items[5]).toHaveProperty('page', 6)
152
-
153
- expect(items[6]).toHaveProperty('itemType', 'page')
154
- expect(items[6]).toHaveProperty('page', 7)
155
-
156
- expect(items[7]).toHaveProperty('itemType', 'page')
157
- expect(items[7]).toHaveProperty('page', 8)
158
-
159
- expect(items[8]).toHaveProperty('itemType', 'end-ellipsis')
160
- })
161
-
162
- it('returns more than one boundary page', () => {
163
- const props = {
164
- page: 6,
165
- count: 11,
166
- boundaryCount: 2,
167
- onChange: jest.fn(),
168
- }
169
- const items = renderHook(() => usePagination(props)).result.current
170
-
171
- expect(items).toHaveLength(11)
172
-
173
- expect(items[1]).toHaveProperty('itemType', 'page')
174
- expect(items[1]).toHaveProperty('page', 1)
175
-
176
- expect(items[2]).toHaveProperty('itemType', 'page')
177
- expect(items[2]).toHaveProperty('page', 2)
178
-
179
- expect(items[3]).toHaveProperty('itemType', 'start-ellipsis')
180
- expect(items[7]).toHaveProperty('itemType', 'end-ellipsis')
181
-
182
- expect(items[8]).toHaveProperty('itemType', 'page')
183
- expect(items[8]).toHaveProperty('page', 10)
184
-
185
- expect(items[9]).toHaveProperty('itemType', 'page')
186
- expect(items[9]).toHaveProperty('page', 11)
187
- })
188
- })
@@ -1,87 +0,0 @@
1
- import { PAGINATION_ITEM_TYPE } from './Pagination.constants'
2
- import { PaginationHelper } from './Pagination.helper'
3
- import type { usePaginationProps, usePaginationReturn } from './Pagination.types'
4
-
5
- function usePagination(props: usePaginationProps): usePaginationReturn[] {
6
- const {
7
- boundaryCount = 1,
8
- count,
9
- disabled = false,
10
- onChange: handleChange,
11
- page,
12
- siblingCount = 1,
13
- } = props
14
-
15
- const paginationHelper = new PaginationHelper({ boundaryCount, count, page, siblingCount })
16
-
17
- function handleClick({ page }: { page: number | null }) {
18
- if (page) {
19
- handleChange({ page })
20
- }
21
- }
22
-
23
- const startPages = paginationHelper.getStartPages()
24
- const endPages = paginationHelper.getEndPages()
25
-
26
- const siblingsStart = paginationHelper.getSibilingsStart()
27
- const siblingsEnd = paginationHelper.getSibilingsEnd()
28
-
29
- // Basic list of items to render
30
- // e.g. itemList = ['previous', 1, 'ellipsis', 4, 5, 6, 'ellipsis', 10, 'next']
31
- const itemList = [
32
- PAGINATION_ITEM_TYPE.previous,
33
- ...startPages,
34
-
35
- // Start ellipsis
36
- ...paginationHelper.getStartEllipsis(),
37
-
38
- // Sibling pages
39
- ...paginationHelper.range(siblingsStart, siblingsEnd),
40
-
41
- // End ellipsis
42
- ...paginationHelper.getEndEllipsis(),
43
-
44
- ...endPages,
45
- PAGINATION_ITEM_TYPE.next,
46
- ]
47
-
48
- function getButtonPage(item: string | number): number | null {
49
- if (typeof item === 'number') {
50
- return item
51
- } else {
52
- switch (item) {
53
- case PAGINATION_ITEM_TYPE.previous:
54
- return page - 1
55
- case PAGINATION_ITEM_TYPE.next:
56
- return page + 1
57
- case PAGINATION_ITEM_TYPE.startEllipsis:
58
- return siblingsStart - 1
59
- case PAGINATION_ITEM_TYPE.endEllipsis:
60
- return siblingsEnd + 1
61
- default:
62
- return null
63
- }
64
- }
65
- }
66
-
67
- function isDisabled(item: string | number): boolean {
68
- if (item === PAGINATION_ITEM_TYPE.previous) return page <= 1
69
- if (item === PAGINATION_ITEM_TYPE.next) return page >= count
70
-
71
- return false
72
- }
73
-
74
- return itemList.map((item) => {
75
- const isNumber = typeof item === 'number'
76
-
77
- return {
78
- onClick: () => handleClick({ page: getButtonPage(item) }),
79
- itemType: isNumber ? PAGINATION_ITEM_TYPE.page : item.toString(),
80
- page: getButtonPage(item),
81
- disabled: disabled || isDisabled(item),
82
- ...(isNumber && { 'aria-current': item === page }),
83
- }
84
- })
85
- }
86
-
87
- export default usePagination
@@ -1,50 +0,0 @@
1
- import React from 'react'
2
- import type { Story, Meta } from '@storybook/react'
3
-
4
- import Popover from './Popover'
5
-
6
- import type { PopoverProps } from './Popover.types'
7
-
8
- export default {
9
- title: 'Components/Popover',
10
- component: Popover,
11
- argTypes: {
12
- position: {
13
- control: {
14
- type: 'radio',
15
- options: ['top', 'right', 'bottom', 'left'],
16
- },
17
- },
18
- align: {
19
- control: {
20
- type: 'radio',
21
- options: ['start', 'center', 'end'],
22
- },
23
- },
24
- },
25
- } as Meta
26
-
27
- export const Playground: Story<PopoverProps> = ({ children, ...args }: PopoverProps) => {
28
- return (
29
- <div className="flex flex-col space-y-2">
30
- <div className="flex items-center">
31
- <div style={{ maxHeight: 100, overflow: 'scroll', border: 'solid 1px black' }}>
32
- <div style={{ height: 250, paddingTop: 100 }}>
33
- <Popover {...args}>
34
- <Popover.Reference>Reference</Popover.Reference>
35
- <Popover.Floating style={{ background: 'white', pointerEvents: 'none' }}>
36
- {children}
37
- </Popover.Floating>
38
- </Popover>
39
- </div>
40
- </div>
41
- </div>
42
- </div>
43
- )
44
- }
45
-
46
- Playground.args = {
47
- children: 'Just a floating content',
48
- position: 'bottom',
49
- align: 'center',
50
- }
@@ -1,22 +0,0 @@
1
- import React from 'react'
2
- import { composeStories } from '@storybook/react'
3
-
4
- import * as stories from './Popover.stories'
5
- import generator from '../../tests/generator'
6
- import renderer, { screen } from '../../tests/renderer'
7
- import type { PopoverProps } from './Popover.types'
8
-
9
- const { Playground } = composeStories(stories)
10
-
11
- const setup = (overrides: Partial<PopoverProps>) => renderer(<Playground {...overrides} />).render()
12
-
13
- describe('Popover', () => {
14
- it('renders correctly', () => {
15
- const props = {
16
- children: generator.word(),
17
- }
18
-
19
- setup(props)
20
- screen.getByText(props.children)
21
- })
22
- })
@@ -1,110 +0,0 @@
1
- import React, { CSSProperties, useMemo, useRef } from 'react'
2
- import { useFloating, offset, flip, shift, arrow, autoUpdate } from '@floating-ui/react-dom'
3
- import type { Placement } from '@floating-ui/react-dom'
4
-
5
- import type {
6
- PopoverAlign,
7
- PopoverFloatingProps,
8
- PopoverPosition,
9
- PopoverProps,
10
- PopoverReferenceProps,
11
- UsePopoverReturn,
12
- } from './Popover.types'
13
-
14
- const PopoverContext = React.createContext<UsePopoverReturn | undefined>(undefined)
15
-
16
- export function usePopover(): UsePopoverReturn {
17
- const value = React.useContext(PopoverContext)
18
-
19
- if (!value) {
20
- throw new Error('usePopover must be used within a <Popover> Provider')
21
- }
22
-
23
- return value
24
- }
25
-
26
- function Popover(props: PopoverProps): JSX.Element {
27
- const arrowRef = useRef<HTMLElement | null>(null)
28
-
29
- const { position = 'bottom', align = 'start', strategy = 'fixed' } = props
30
-
31
- const desiredPlacement: Placement = `${position}${
32
- align === 'center' ? '' : `-${align}`
33
- }` as Placement
34
-
35
- const floating = useFloating({
36
- placement: desiredPlacement,
37
- strategy,
38
- middleware: [offset(10), flip(), shift(), arrow({ element: arrowRef, padding: 8 })],
39
- // TODO: FloatingUI docs states that `autoUpdate` is expensive.
40
- // This should be properly investidated since it's the way to
41
- // update fixed positions after scrolling.
42
- whileElementsMounted: autoUpdate,
43
- })
44
-
45
- const [resultPosition = position, resultAlign = align] = floating.placement.split('-') as [
46
- PopoverPosition,
47
- PopoverAlign
48
- ]
49
-
50
- const value = useMemo<UsePopoverReturn>(
51
- () => ({
52
- strategy,
53
- register: {
54
- setReference: floating.refs.setReference,
55
- setFloating: floating.refs.setFloating,
56
- setArrow: arrowRef,
57
- },
58
- result: {
59
- floatingStyles: floating.floatingStyles,
60
- arrow: { top: floating.middlewareData.arrow?.y, left: floating.middlewareData.arrow?.x },
61
- position: resultPosition,
62
- align: resultAlign,
63
- },
64
- }),
65
- [
66
- floating.refs.setFloating,
67
- floating.middlewareData.arrow?.x,
68
- floating.middlewareData.arrow?.y,
69
- floating.refs.setReference,
70
- floating.floatingStyles,
71
- resultAlign,
72
- resultPosition,
73
- strategy,
74
- ]
75
- )
76
-
77
- return <PopoverContext.Provider value={value}>{props.children}</PopoverContext.Provider>
78
- }
79
-
80
- function PopoverReference({ children, ...others }: PopoverReferenceProps): JSX.Element {
81
- const { register } = usePopover()
82
-
83
- return (
84
- <div ref={register.setReference} {...others}>
85
- {children}
86
- </div>
87
- )
88
- }
89
-
90
- function PopoverFloating({ children, style, ...others }: PopoverFloatingProps): JSX.Element {
91
- const { register, result } = usePopover()
92
-
93
- return (
94
- <div
95
- ref={register.setFloating}
96
- {...others}
97
- style={{
98
- ...result.floatingStyles,
99
- ...style,
100
- }}
101
- >
102
- {children}
103
- </div>
104
- )
105
- }
106
-
107
- Popover.Floating = PopoverFloating
108
- Popover.Reference = PopoverReference
109
-
110
- export default Popover
@@ -1,39 +0,0 @@
1
- import type { UseFloatingReturn } from '@floating-ui/react-dom'
2
- import type { CSSProperties, HTMLAttributes, MutableRefObject, PropsWithChildren } from 'react'
3
-
4
- export interface UsePopoverReturn {
5
- register: {
6
- setReference: UseFloatingReturn['refs']['setReference']
7
- setFloating: UseFloatingReturn['refs']['setFloating']
8
- setArrow: MutableRefObject<Element | null>
9
- }
10
- result: {
11
- floatingStyles: CSSProperties
12
- arrow: {
13
- top: number | undefined
14
- left: number | undefined
15
- }
16
- position: PopoverPosition
17
- align: PopoverAlign
18
- }
19
- strategy: 'fixed' | 'absolute'
20
- }
21
-
22
- export type PopoverPosition = 'top' | 'bottom' | 'right' | 'left'
23
- export type PopoverAlign = 'start' | 'center' | 'end'
24
-
25
- export interface PopoverPlacement {
26
- position?: PopoverPosition
27
- align?: PopoverAlign
28
- }
29
-
30
- export type PopoverProps = PropsWithChildren<
31
- PopoverPlacement & {
32
- strategy?: UsePopoverReturn['strategy']
33
- arrow?: MutableRefObject<HTMLElement | null>
34
- }
35
- >
36
-
37
- export type PopoverReferenceProps = HTMLAttributes<HTMLDivElement>
38
-
39
- export type PopoverFloatingProps = HTMLAttributes<HTMLDivElement>
@@ -1,11 +0,0 @@
1
- export { default as Popover, usePopover } from './Popover'
2
-
3
- export type {
4
- PopoverProps,
5
- PopoverFloatingProps,
6
- PopoverReferenceProps,
7
- PopoverPlacement,
8
- PopoverPosition,
9
- PopoverAlign,
10
- UsePopoverReturn,
11
- } from './Popover.types'
@@ -1,47 +0,0 @@
1
- import React from 'react'
2
- import ProgressBar, { ProgressBarProps } from './ProgressBar'
3
- import type { Meta } from '@storybook/react'
4
- import Status from 'utils/types/Status'
5
-
6
- export default {
7
- title: 'Components/ProgressBar',
8
- component: ProgressBar,
9
- argTypes: {
10
- scheme: {
11
- description: 'Color scheme to be used',
12
- table: {
13
- type: {
14
- summary: 'ColorScheme',
15
- },
16
- defaultValue: {
17
- summary: 'light',
18
- },
19
- },
20
- control: {
21
- type: 'select',
22
- options: ['light', 'dark'],
23
- },
24
- },
25
- status: {
26
- control: {
27
- type: 'select',
28
- options: Status,
29
- },
30
- },
31
- },
32
- } as Meta
33
-
34
- export function Playground(args: ProgressBarProps): JSX.Element {
35
- return (
36
- <div className="flex flex-col space-y-2">
37
- <div className="flex items-center w-40 space-x-2">
38
- <ProgressBar {...args} />
39
- </div>
40
- </div>
41
- )
42
- }
43
-
44
- Playground.args = {
45
- value: 60,
46
- status: Status.Success,
47
- }
@@ -1,40 +0,0 @@
1
- import React from 'react'
2
- import { screen } from '@testing-library/react'
3
-
4
- import renderer from '../../tests/renderer'
5
-
6
- import { ProgressBar } from './ProgressBar'
7
-
8
- const setup = ({ ...overrides }) => renderer(<ProgressBar value={50} {...overrides} />).render()
9
-
10
- describe('<ProgressBar />', () => {
11
- it('should render the progress bar with right values', () => {
12
- const props = {
13
- value: 50,
14
- }
15
-
16
- setup(props)
17
-
18
- expect(screen.getByRole(/progressbar/i)).toHaveAttribute('aria-valuenow', '50')
19
- })
20
-
21
- it('should clamp the progress bar with negative values', () => {
22
- const props = {
23
- value: -80,
24
- }
25
-
26
- setup(props)
27
-
28
- expect(screen.getByRole(/progressbar/i)).toHaveAttribute('aria-valuenow', '0')
29
- })
30
-
31
- it('should clamp the progress bar on high values', () => {
32
- const props = {
33
- value: 1200,
34
- }
35
-
36
- setup(props)
37
-
38
- expect(screen.getByRole(/progressbar/i)).toHaveAttribute('aria-valuenow', '100')
39
- })
40
- })