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

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