@loadsmart/loadsmart-ui 7.5.0 → 7.7.0-beta.1

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