@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,75 +0,0 @@
1
- import { Meta } from '@storybook/blocks'
2
-
3
- <Meta title="Tools/Tests/DragDropFile Event" />
4
-
5
- # DragDropFile Event
6
-
7
- We have exposed a few helper functions to make it easier to write unit tests for our [`DragDropFile`](/?path=/story/components-dragdropfile--playground) component.
8
-
9
- The following functions descriptions consider this example:
10
-
11
- ```jsx
12
- <DragDropFileProvider fileList={fileList} onFilesAdded={onFilesAdded} onFileRemoved={onFileRemoved}>
13
- <DragDropFile.Wrapper>
14
- <DragDropFile.DropZone
15
- aria-label="Drag and drop file"
16
- renderCustomContent={({ isDragging }) => (
17
- <div>{isDragging ? 'Is dragging.' : 'Is not dragging.'}</div>
18
- )}
19
- multiple
20
- />
21
- <ErrorMessage>{errorMessage}</ErrorMessage>
22
- <DragDropFile.FileList />
23
- </DragDropFile.Wrapper>
24
- </DragDropFileProvider>
25
- ```
26
-
27
- ## `dropFiles`
28
-
29
- Simulates the onDrop event on the drop zone. You can provide a list of files or a single file.
30
-
31
- Example with a single file:
32
-
33
- ```js
34
- const dropZoneInput = screen.getByLabelText('Drag and drop file') as HTMLInputElement
35
-
36
- const exampleFile = new File([''], 'example-file.png')
37
-
38
- DragDropFileEvent.dropFiles(dropZoneInput, exampleFile)
39
- ```
40
-
41
- Example with multiple files:
42
-
43
- ```js
44
- const dropZoneInput = screen.getByLabelText('Drag and drop file') as HTMLInputElement
45
-
46
- const firstFile = new File([''], 'first-file.png')
47
- const secondFile = new File([''], 'second-file.png')
48
- const exampleFiles = [firstFile, secondFile]
49
-
50
- DragDropFileEvent.dropFiles(dropZoneInput, exampleFiles)
51
- ```
52
-
53
- ## `dragOver`
54
-
55
- Simulates the onDragOver event on the drop zone. Useful if you have custom content provided with the `renderCustomContent` prop and want to test a different behviour based on the `isDragging` state.
56
-
57
- Example:
58
-
59
- ```js
60
- const dropZoneInput = screen.getByLabelText('Drag and drop file') as HTMLInputElement
61
-
62
- DragDropFileEvent.dragOver(dropZoneInput)
63
- ```
64
-
65
- ## `dragLeave`
66
-
67
- Simulates the onDragLeave event on the drop zone. Useful if you have custom content provided with the `renderCustomContent` prop and want to test a different behviour based on the `isDragging` state.
68
-
69
- Example:
70
-
71
- ```js
72
- const dropZoneInput = screen.getByLabelText('Drag and drop file') as HTMLInputElement
73
-
74
- DragDropFileEvent.dragLeave(dropZoneInput)
75
- ```
@@ -1,251 +0,0 @@
1
- import { Meta } from '@storybook/addon-docs'
2
-
3
- import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'
4
-
5
- <Meta title="Tools/Conditional & WhenProps" />
6
-
7
- # The Conditional & WhenProps tools
8
-
9
- Our conditional utility is heavily inspired by utilities like [classnames](https://www.npmjs.com/package/classnames) and [clsx](https://www.npmjs.com/package/clsx).
10
-
11
- In a nutshell, its purpose is to evaluate different types of conditions and return a `string` joining all their results.
12
-
13
- Unlike the utilities we mentioned above, our `conditional` superpower enables us to do that using CSS-in-JS - `styled-components` more specifically - making styling based on logical conditions more straightforward and less verbose.
14
-
15
- ## Conditional
16
-
17
- Let's consider the following sample button that changes its width based on its `scale` and `variant` props:
18
-
19
- ```tsx
20
- const Button = styled.button<ButtonProps>`
21
- // ...
22
-
23
- width: ${(props) =>
24
- ['primary', 'secondary', 'warning'].includes(props.variant)
25
- ? '36px'
26
- : props.variant == 'icon' && props.scale == 'default'
27
- ? '32px'
28
- : props.variant == 'icon' && props.scale == 'large'
29
- ? '48px'
30
- : '24px'};
31
-
32
- // ...
33
- `
34
- ```
35
-
36
- Of course, we could improve how we wrote our conditions, but that would still take some effort to make it easy to read and maintain.
37
-
38
- Notice how we use our `props` of interest to determine the final value for our button's width. Well, that's where our `conditional` comes in handy. It encapsulates the `props` consumption, allowing for a quicker way of writing the conditionals.
39
-
40
- Our current implementation allows the following types of condition checking:
41
-
42
- **_Function condition_**
43
-
44
- A function that receives the component props as argument and should return a string.
45
-
46
- ```tsx
47
- const Button = styled.button<ButtonProps>`
48
- // ...
49
-
50
- height: ${conditional(props => props.scale == 'default' ? '36px' : '24px')};
51
-
52
- // ...
53
- `;
54
-
55
- <Button scale="default" /> // would render style with `height: 36px;`
56
-
57
- <Button scale="small" /> // would render style with `height: 24px;`
58
- ```
59
-
60
- **_Object condition_**
61
-
62
- An object, where the `key` would end up in the result of the `conditional` if `value` evaluates to `true`. Here, the `value` can be either a `boolean` value or a `function` that receives the component props as argument and returns a `boolean`.
63
-
64
- ```tsx
65
- const Button = styled.button<ButtonProps>`
66
- // ...
67
-
68
- height: ${conditional({
69
- '36px': true, // use any value you would want to be evaluated as boolean
70
- })};
71
-
72
- width: ${conditional({
73
- '36px': props => props.scale == 'default', // or a function that returns a boolean
74
- '24px': props => props.scale == 'small'
75
- })};
76
-
77
- // ...
78
- `;
79
-
80
- <Button scale="default" /> // would render style with `height: 36px; width: 36px;`
81
-
82
- <Button scale="small" /> // would render style with `height: 36px; width: 24px;`
83
- ```
84
-
85
- **_Primitive condition_**
86
-
87
- Any value you want to end up resulting from `conditional`, if _truthy_.
88
-
89
- ```tsx
90
- const PADDING_X = '20px'
91
-
92
- const Button = styled.button<ButtonProps>`
93
- // ...
94
-
95
- padding: ${conditional('10px', PADDING_X, false)};
96
-
97
- // ...
98
- `
99
-
100
- ;<Button /> // would render style with `padding: 10px 20px;`
101
- ```
102
-
103
- **_Mixed condition_**
104
-
105
- Of course, you can also mix and match multiple conditions at will:
106
-
107
- ```tsx
108
- const Button = styled.button<ButtonProps>`
109
- // ...
110
-
111
- margin: ${conditional(
112
- '10px',
113
- props => props.scale == 'default' ? '12px' : '8px', {
114
- '14px': true
115
- })};
116
-
117
- // ...
118
- `;
119
-
120
- <Button scale="default" /> // would render style with `margin: 10px 12px 14px;`
121
-
122
- <Button scale="small" /> // would render style with `margin: 10px 8px 14px;`
123
- ```
124
-
125
- One cool thing to add is that you can also consume design tokens from our theme besides managing regular `string`s derived from condition checks. If the condition is evaluated to `true`, the value of that theme token will be returned.
126
-
127
- ```tsx
128
- const Button = styled.button<ButtonProps>`
129
- // ...
130
-
131
- width: ${conditional({
132
- 'button-default-width': props => props.scale == 'default',
133
- 'button-small-width': props => props.scale == 'small'
134
- })};
135
-
136
- // ...
137
- `;
138
-
139
- <Button scale="default" /> // would render style with `width: <token value for button-default-width>;`
140
-
141
- <Button scale="small" /> // would render style with `width: <token value for button-small-width>;`
142
- ```
143
-
144
- Ok, this is cool indeed, but we can get even further with another utility that goes along `conditional`, the `whenProps` tool.
145
-
146
- ## WhenProps
147
-
148
- This utility helps us write even cleaner `props`-based conditions by leveraging how `styled-components` handle interpolation. No need to go into implementation details here, so let's go back to the initial example to show how `conditional` and `whenProps` make the perfect pair:
149
-
150
- _Before_:
151
-
152
- ```tsx
153
- const Button = styled.button<ButtonProps>`
154
- // ...
155
-
156
- width: ${(props) =>
157
- ['primary', 'secondary', 'warning'].include(props.variant)
158
- ? '36px'
159
- : props.variant == 'icon' && props.scale == 'default'
160
- ? '32px'
161
- : props.variant == 'icon' && props.scale == 'large'
162
- ? '48px'
163
- : '24px'};
164
-
165
- // ...
166
- `
167
- ```
168
-
169
- _After_:
170
-
171
- ```tsx
172
-
173
- const Button = styled.button<ButtonProps>`
174
- // ...
175
-
176
- width: ${conditional({
177
- '36px': whenProps({ variant: ['primary', 'secondary', 'warning'] }),
178
- '24px': whenProps({ variant: 'icon', scale: 'small' }),
179
- '32px': whenProps({ variant: 'icon', scale: 'default' }),
180
- '48px': whenProps({ variant: 'icon', scale: 'large' }),
181
- })};
182
-
183
- // ...
184
- `;
185
-
186
- <Button variant="primary" /> // would render style with `width: 36px;`
187
-
188
- <Button variant="secondary" /> // would render style with `width: 36px;`
189
-
190
- <Button variant="warning" /> // would render style with `width: 36px;`
191
-
192
- <Button variant="icon" scale="small" /> // would render style with `width: 24px;`
193
-
194
- <Button variant="icon" scale="default" /> // would render style with `width: 32px;`
195
-
196
- <Button variant="icon" scale="large" /> // would render style with `width: 48px;`
197
- ```
198
-
199
- `whenProps` receives an object that defines how condition should be evaluated over the component's `props`, mapping which value(s) it should be compared to for each prop of interest (for predictability reasons, we use strict comparison).
200
-
201
- The values can be represented as follows:
202
-
203
- **_Array_**
204
-
205
- A collection of values that the prop value should be compared to.
206
-
207
- ```tsx
208
- const Button = styled.button<ButtonProps>`
209
- width: ${conditional({
210
- '36px': whenProps({ variant: ['primary', 'secondary', 'warning'] }),
211
- })};
212
- `
213
- ```
214
-
215
- In the example above, we'll have `width: 36px;` as a result if the button's `variant` prop is either `'primary'`, `'secondary'`, or `'warning'`.
216
-
217
- **_Function_**
218
-
219
- A function that receives the prop value as argument and returns a `boolean`.
220
-
221
- ```tsx
222
- const Button = styled.button<ButtonProps>`
223
- width: ${conditional({
224
- '36px': whenProps({
225
- variant: (variant) => ['primary', 'secondary', 'warning'].includes(variant),
226
- }),
227
- })};
228
- `
229
- ```
230
-
231
- In the example above, we'll also have `width: 36px;` as a result if the button's `variant` prop is either `'primary'`, `'secondary'`, or `'warning'`.
232
-
233
- **_Anything else_**
234
-
235
- A value to which the component prop will be strictly compared to.
236
-
237
- ```tsx
238
- const Button = styled.button<ButtonProps>`
239
- width: ${conditional({
240
- '36px': whenProps({ variant: 'primary' }),
241
- })};
242
- `
243
- ```
244
-
245
- In the example above, we'll have `width: 36px;` as a result only if the button's `variant` prop is `'primary'`.
246
-
247
- {/* The usage of this "Component" is intentional to enable react-syntax-highlighter's own highlighter */}
248
-
249
- export const Component = () => {
250
- return <SyntaxHighlighter />
251
- }
@@ -1,121 +0,0 @@
1
- import { Meta } from '@storybook/blocks'
2
-
3
- <Meta title="Tools/Tests/Select Event" />
4
-
5
- # Select Event
6
-
7
- Our [`Select`](/?path=/story/components-select--playground) component is fully tailored for the needs of our Design System.
8
-
9
- As we are not using the native select element, writing unit tests that rely on our custom component would require prior knowledge about its inner structure. To prevent that and to help with performing the main select features, we have exposed a few helper functions.
10
-
11
- The following functions descriptions consider this example:
12
-
13
- ```jsx
14
- <div>
15
- <label htmlFor="select-something">Select something</label>
16
- <Select id="select-something" {...otherProps} />
17
- </div>
18
- ```
19
-
20
- ## `expand`
21
-
22
- This asynchronous function will expand (show) the select menu if it's not already expanded.
23
-
24
- Example:
25
-
26
- ```js
27
- const selectComponent = screen.getByLabelText('Select something')
28
- await selectEvent.expand(selectComponent)
29
- ```
30
-
31
- ## `collapse`
32
-
33
- This asynchronous function will collapse the select menu if it's not already collapsed.
34
-
35
- Example:
36
-
37
- ```js
38
- const selectComponent = screen.getByLabelText('Select something')
39
- await selectEvent.collapse(selectComponent)
40
- ```
41
-
42
- ## `select`
43
-
44
- This asynchronous function will select the option provided, referred to by its label.
45
-
46
- Since we currently support only single selection, we collapse the menu after clicking the option.
47
-
48
- If the provided option is already selected, nothing will happen.
49
-
50
- Example:
51
-
52
- ```js
53
- const selectComponent = screen.getByLabelText('Select something')
54
- await selectEvent.select('Option label', selectComponent)
55
- ```
56
-
57
- ## `unselect`
58
-
59
- This asynchronous function will unselect the option provided, referred to by its label.
60
-
61
- Since we currently support only single selection, we collapse the menu after clicking the option.
62
-
63
- If the provided option is already unselected, nothing will happen.
64
-
65
- Example:
66
-
67
- ```js
68
- const selectComponent = screen.getByLabelText('Select something')
69
- await selectEvent.unselect('Option label', selectComponent)
70
- ```
71
-
72
- ## `clear`
73
-
74
- This asynchronous function will clear the current selection.
75
-
76
- If there is no selected option, nothing will happen.
77
-
78
- Example:
79
-
80
- ```js
81
- const selectComponent = screen.getByLabelText('Select something')
82
- await selectEvent.clear(selectComponent)
83
- ```
84
-
85
- ## `getOptions`
86
-
87
- This asynchronous function will return the option elements currently available on the provided Select.
88
-
89
- Example:
90
-
91
- ```js
92
- const selectComponent = screen.getByLabelText('Select something')
93
- const optionElements = await selectEvent.getOptions(selectComponent)
94
- ```
95
-
96
- ## `getSelectedOptions`
97
-
98
- This asynchronous function will return the option elements currently selected on the provided Select.
99
-
100
- As previously mentioned, we only support single selection, so expect an array with 0 or 1 element for the time being.
101
-
102
- Example:
103
-
104
- ```js
105
- const selectComponent = screen.getByLabelText('Select something')
106
- const selectedOptionElements = await selectEvent.getSelectedOptions(selectComponent)
107
- ```
108
-
109
- ## `search`
110
-
111
- This asynchronous function will trigger a search based on the provided query term.
112
-
113
- You can use the `getOptions` to check the options that match your search.
114
-
115
- Example:
116
-
117
- ```js
118
- const selectComponent = screen.getByLabelText('Select something')
119
- await selectEvent.search('Search term', selectedOptionElements)
120
- const matchingOptionElements = await selectEvent.getOptions(input)
121
- ```
@@ -1 +0,0 @@
1
- export { default as useClickOutside } from './useClickOutside'
@@ -1,116 +0,0 @@
1
- import React, { useRef } from 'react'
2
- import renderer, { screen, fire } from '../../tests/renderer'
3
-
4
- import useClickOutside from './useClickOutside'
5
- interface ExperimentProps {
6
- callback: () => void
7
- disabled: boolean
8
- }
9
-
10
- function Experiment({ callback, disabled }: ExperimentProps) {
11
- const ref = useRef(null)
12
-
13
- useClickOutside(ref, callback, disabled)
14
-
15
- return (
16
- <div>
17
- <div ref={ref}>
18
- <label id="inside-label">Inside</label>
19
- <input aria-labelledby="inside-label" />
20
- </div>
21
- <button>Outside</button>
22
- </div>
23
- )
24
- }
25
-
26
- const setup = (props: ExperimentProps) => renderer(<Experiment {...props} />).render()
27
-
28
- describe('useClickOutside', () => {
29
- describe('when enabled', () => {
30
- const props = {
31
- callback: jest.fn(),
32
- disabled: false,
33
- }
34
-
35
- it('does not call callback if user has not interacted with container descendants', () => {
36
- setup(props)
37
-
38
- fire.mouseDown(screen.getByText('Outside'))
39
- fire.touchEnd(screen.getByText('Outside'))
40
- fire.keyUp(screen.getByText('Outside'), { key: 'Escape', code: 'Escape' })
41
-
42
- expect(props.callback).not.toHaveBeenCalled()
43
- })
44
-
45
- it('calls callback if the user has interacted with the mouse in any of the container descendants', () => {
46
- setup(props)
47
-
48
- fire.mouseDown(screen.getByLabelText('Inside'))
49
- fire.mouseDown(screen.getByText('Outside'))
50
- expect(props.callback).toHaveBeenCalled()
51
- })
52
-
53
- it('calls callback if the user has touched in any of the container descendants', () => {
54
- setup(props)
55
-
56
- fire.touchEnd(screen.getByLabelText('Inside'))
57
- fire.mouseDown(screen.getByText('Outside'))
58
- expect(props.callback).toHaveBeenCalled()
59
- })
60
-
61
- it('calls callback if the user has pressed any key in any of the container descendants', () => {
62
- setup(props)
63
-
64
- fire.keyUp(screen.getByLabelText('Inside'), { key: 'A', code: 'KeyA' })
65
- fire.mouseDown(screen.getByText('Outside'))
66
- expect(props.callback).toHaveBeenCalled()
67
- })
68
-
69
- it('calls callback if the user presses the escape key while interacting with any of the container descendants', () => {
70
- setup(props)
71
-
72
- fire.mouseDown(screen.getByLabelText('Inside'))
73
- fire.keyUp(screen.getByLabelText('Inside'), { key: 'Escape', code: 'Escape' })
74
- expect(props.callback).toHaveBeenCalled()
75
- })
76
- })
77
-
78
- describe('when disabled', () => {
79
- const props = {
80
- callback: jest.fn(),
81
- disabled: true,
82
- }
83
-
84
- it('does not call the callback even if the user has interacted with the mouse in any of the container descendants', () => {
85
- setup(props)
86
-
87
- fire.mouseDown(screen.getByLabelText('Inside'))
88
- fire.mouseDown(screen.getByText('Outside'))
89
- expect(props.callback).not.toHaveBeenCalled()
90
- })
91
-
92
- it('does not call callback even if the user has touched in any of the container descendants', () => {
93
- setup(props)
94
-
95
- fire.touchEnd(screen.getByLabelText('Inside'))
96
- fire.mouseDown(screen.getByText('Outside'))
97
- expect(props.callback).not.toHaveBeenCalled()
98
- })
99
-
100
- it('does not call callback even if the user has pressed any key in any of the container descendants', () => {
101
- setup(props)
102
-
103
- fire.keyUp(screen.getByLabelText('Inside'), { key: 'A', code: 'KeyA' })
104
- fire.mouseDown(screen.getByText('Outside'))
105
- expect(props.callback).not.toHaveBeenCalled()
106
- })
107
-
108
- it('does not call callback even if the user presses the escape key while interacting with any of the container descendants', () => {
109
- setup(props)
110
-
111
- fire.mouseDown(screen.getByLabelText('Inside'))
112
- fire.keyUp(screen.getByLabelText('Inside'), { key: 'Escape', code: 'Escape' })
113
- expect(props.callback).not.toHaveBeenCalled()
114
- })
115
- })
116
- })
@@ -1,65 +0,0 @@
1
- import React, { useCallback, useEffect, useState } from 'react'
2
-
3
- import KeyboardKey from 'utils/toolset/keyboard'
4
-
5
- import type { RefObject } from 'react'
6
-
7
- function useClickOutside<T extends HTMLElement>(
8
- container: RefObject<T>,
9
- callback: (event?: MouseEvent | TouchEvent | KeyboardEvent) => void,
10
- disabled = false
11
- ): void {
12
- const [active, setActive] = useState(false)
13
-
14
- const getContainer = useCallback(
15
- function getContainer() {
16
- return container.current
17
- },
18
- [container]
19
- )
20
-
21
- const handleEvent = useCallback(
22
- function handleEvent(event: MouseEvent | TouchEvent | KeyboardEvent) {
23
- function hasPressedEsc() {
24
- return KeyboardKey(event as unknown as React.KeyboardEvent).is('ESCAPE')
25
- }
26
-
27
- if (!getContainer() || disabled) {
28
- return
29
- }
30
-
31
- const target = event.target as Node
32
- const hasTarget = getContainer()?.contains(target)
33
-
34
- if (!active && hasTarget) {
35
- setActive(true)
36
- } else if (active && (!hasTarget || hasPressedEsc())) {
37
- setActive(false)
38
- callback(event)
39
- }
40
- },
41
- [active, callback, disabled, getContainer]
42
- )
43
-
44
- useEffect(() => {
45
- function subscribe() {
46
- document.addEventListener('mousedown', handleEvent, true)
47
- document.addEventListener('touchend', handleEvent, true)
48
- document.addEventListener('keyup', handleEvent)
49
- }
50
-
51
- function unsubscribe() {
52
- document.removeEventListener('mousedown', handleEvent, true)
53
- document.removeEventListener('touchend', handleEvent, true)
54
- document.removeEventListener('keyup', handleEvent)
55
- }
56
-
57
- subscribe()
58
-
59
- return () => {
60
- unsubscribe()
61
- }
62
- }, [handleEvent])
63
- }
64
-
65
- export default useClickOutside
@@ -1 +0,0 @@
1
- export { default as useDidMount } from './useDidMount'
@@ -1,38 +0,0 @@
1
- import React, { useEffect, useState } from 'react'
2
- import renderer, { screen } from '../../tests/renderer'
3
- import useDidMount from './useDidMount'
4
-
5
- function Experiment() {
6
- const [logs, setLogs] = useState<string[]>([])
7
- const didMount = useDidMount()
8
-
9
- useEffect(
10
- function () {
11
- setLogs((logs) => [...logs, didMount ? 'did mount' : 'not mounted'])
12
- },
13
- [didMount]
14
- )
15
-
16
- return (
17
- <div data-testid="logs">
18
- {logs.map((log, index) => (
19
- <p key={index}>{log}</p>
20
- ))}
21
- </div>
22
- )
23
- }
24
-
25
- const setup = () => renderer(<Experiment />).render()
26
-
27
- describe('useDidMount', () => {
28
- it('returns true after component is mounted', () => {
29
- setup()
30
-
31
- const logs = screen.getByTestId('logs')
32
-
33
- expect(logs.children).toHaveLength(2)
34
-
35
- expect(logs.children[0]).toHaveTextContent('not mounted')
36
- expect(logs.children[1]).toHaveTextContent('did mount')
37
- })
38
- })
@@ -1,20 +0,0 @@
1
- import { useRef, useEffect } from 'react'
2
-
3
- /**
4
- * Hook useful to trigger action conditionally based
5
- * on if the component is mounted.
6
- * Be aware that your effect, callback, memo, etc cannot list is
7
- * as a dependency, otherwise it will be triggered at the wrong moment.
8
- * @returns {boolean} Whether the component is mounted or not.
9
- */
10
- function useDidMount(): boolean {
11
- const counter = useRef(0)
12
-
13
- useEffect(function onMount() {
14
- counter.current = 1
15
- }, [])
16
-
17
- return counter.current > 0
18
- }
19
-
20
- export default useDidMount
@@ -1 +0,0 @@
1
- export { default } from './useFingerprint'