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