@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,540 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { isFunction } from '@loadsmart/utils-function'
3
- import { isNil } from '@loadsmart/utils-object'
4
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
5
-
6
- import isEmpty from 'utils/toolset/isEmpty'
7
- import { useDropdown } from 'components/Dropdown'
8
- import { useDidMount } from 'hooks/useDidMount'
9
- import { useFocusTrap } from 'hooks/useFocusTrap'
10
- import type { SelectableKeyType } from 'hooks/useSelectable'
11
- import to from 'utils/toolset/awaitTo'
12
- import { isThenable } from 'utils/toolset/isThenable'
13
- import toArray from 'utils/toolset/toArray'
14
- import { GenericAdapter } from './Select.constants'
15
- import { useSelectable } from './Select.context'
16
- import {
17
- escapeRegExp,
18
- getAdapter,
19
- getDisplayValue,
20
- getValue,
21
- toSelection,
22
- } from './useSelect.helpers'
23
-
24
- import type { ChangeEvent, FocusEvent } from 'react'
25
- import type {
26
- Adapters,
27
- GenericOption,
28
- Option,
29
- SelectDatasource,
30
- SelectDatasourceFunction,
31
- SelectProps,
32
- SelectStatus,
33
- SelectValue,
34
- useSelectReturn,
35
- } from './Select.types'
36
-
37
- async function getData(datasources: SelectDatasource<any>[], query: string) {
38
- const regex = new RegExp(escapeRegExp(query), 'i')
39
-
40
- const promises = []
41
- const types: string[] = []
42
-
43
- for (const ds of datasources) {
44
- promises.push(Promise.resolve(ds.fetch({ query, regex })))
45
- types.push(ds.type)
46
- }
47
-
48
- // We use Promise.allSettled here because Promise.all rejects as soon as one promise fails
49
- // But we want to continue with the next datasource when one fails.
50
- const results = await Promise.allSettled(promises)
51
-
52
- let items: Option[] = []
53
-
54
- results.forEach((result, index) => {
55
- if (result.status === 'rejected') {
56
- return
57
- }
58
-
59
- const type = types[index]
60
-
61
- items = items.concat(
62
- (result.value || []).map((item) => {
63
- return {
64
- ...item,
65
- _type: type,
66
- } as Option
67
- })
68
- )
69
- })
70
-
71
- return items
72
- }
73
-
74
- function getDatasources(props: SelectProps) {
75
- function getDatasourceFromOptions(
76
- options?: GenericOption[] | null
77
- ): SelectDatasourceFunction<any>[] {
78
- if (!options) {
79
- return []
80
- }
81
-
82
- return [
83
- function useGenericDatasource() {
84
- return {
85
- type: 'generic',
86
- adapter: GenericAdapter,
87
- fetch: function fetch({ regex }) {
88
- return options.filter(({ label }) => regex.test(label))
89
- },
90
- }
91
- },
92
- ]
93
- }
94
-
95
- let datasources: SelectDatasourceFunction<any>[] = []
96
-
97
- datasources = datasources.concat(props.datasources || [])
98
- datasources = datasources.concat(getDatasourceFromOptions(props.options))
99
-
100
- return datasources.map((ds) => ds())
101
- }
102
-
103
- function extractAdapters(datasources: SelectDatasource<any>[]) {
104
- return toArray(datasources).reduce((map, ds) => {
105
- return {
106
- ...map,
107
- [ds.type]: ds.adapter,
108
- }
109
- }, {})
110
- }
111
-
112
- function TriggerOnFocusHandler(e: FocusEvent<HTMLInputElement>) {
113
- e.target.select()
114
- }
115
-
116
- function mapOptions(items: Option[], adapters: Adapters) {
117
- const options = new Map<SelectableKeyType, Option>()
118
-
119
- items.forEach((item) => {
120
- const adapter = getAdapter(adapters, item._type)
121
- options.set(adapter.getKey(item), item)
122
- })
123
-
124
- return options
125
- }
126
-
127
- function useOptions<T = any>(props: { datasources: SelectDatasource<T>[]; adapters: Adapters }) {
128
- const { datasources, adapters } = props
129
- const [options, setOptions] = useState(new Map<SelectableKeyType, Option>())
130
- const [status, setStatus] = useState<SelectStatus>('idle')
131
-
132
- const timeoutRef = useRef<NodeJS.Timeout>()
133
-
134
- function cancelPendingFetch() {
135
- if (timeoutRef.current != null) {
136
- clearTimeout(timeoutRef.current)
137
- }
138
- }
139
-
140
- const fetchAfterTimeout = useCallback(
141
- function fetchAfterTimeout(query: string) {
142
- cancelPendingFetch()
143
- /**
144
- * The `pending-query` status represents that the 'fetching' has been started
145
- * but it has been debounced and the internal fetch has not yet been called.
146
- * This is important because at this point the status is not idle
147
- * as the fetching has already started.
148
- */
149
- setStatus('pending-query')
150
-
151
- async function fetch() {
152
- setOptions(new Map<SelectableKeyType, Option>())
153
- setStatus('querying')
154
-
155
- const items = await getData(datasources, query)
156
-
157
- setOptions(mapOptions(items, adapters))
158
- setStatus('queried')
159
- }
160
-
161
- timeoutRef.current = setTimeout(() => void fetch(), 750)
162
- },
163
- [adapters, datasources]
164
- )
165
-
166
- const clear = useCallback(function clear() {
167
- setStatus('idle')
168
- setOptions(new Map<SelectableKeyType, Option>())
169
- }, [])
170
-
171
- const get = useCallback(
172
- function get() {
173
- return Array.from(options.values())
174
- },
175
- [options]
176
- )
177
-
178
- const reset = useCallback(
179
- function reset() {
180
- clear()
181
- fetchAfterTimeout('')
182
- },
183
- [clear, fetchAfterTimeout]
184
- )
185
-
186
- const getOptionByKey = useCallback(
187
- function getOptionByKey(key: SelectableKeyType) {
188
- return options.get(key)
189
- },
190
- [options]
191
- )
192
-
193
- useEffect(() => {
194
- return () => {
195
- cancelPendingFetch()
196
- }
197
- }, [])
198
-
199
- return {
200
- get,
201
- fetch: fetchAfterTimeout,
202
- clear,
203
- status,
204
- getOptionByKey,
205
- reset,
206
- }
207
- }
208
-
209
- // TODO: keep adapter resolution in a single place
210
- // TODO: prevent state changes after unmount (`useMounted` hook from Alice Frontend)
211
- /**
212
- * Based on https://www.w3.org/TR/wai-aria-practices-1.1/examples/combobox/aria1.1pattern/listbox-combo.html
213
- * @param props
214
- * @returns
215
- */
216
- function useSelect(props: SelectProps): useSelectReturn {
217
- const didMount = useDidMount()
218
- const {
219
- multiple,
220
- onQueryChange,
221
- onChange,
222
- onCreate,
223
- getInputProps,
224
- id,
225
- name,
226
- disabled = false,
227
- onBlur,
228
- isValidNewOption = (query: string) => Boolean(query),
229
- createOptionPosition = 'last',
230
- } = props
231
-
232
- // eslint-disable-next-line react-hooks/exhaustive-deps
233
- const datasources = useMemo<SelectDatasource<any>[]>(
234
- () => getDatasources(props),
235
- [props.datasources, props.options]
236
- )
237
- const adapters = useMemo<Adapters>(() => extractAdapters(datasources), [datasources])
238
-
239
- const selectable = useSelectable({
240
- selected: toSelection(props.value),
241
- multiple,
242
- adapters,
243
- onChange: useCallback(
244
- function handleSelectionChange(selected: SelectValue) {
245
- onChange?.({ target: { id, name, value: getValue(selected, multiple) } })
246
- },
247
- [id, multiple, name, onChange]
248
- ),
249
- })
250
-
251
- const triggerRef = useRef<HTMLInputElement>()
252
- const focusTrap = useFocusTrap({
253
- keys: ['ARROW_UP', 'ARROW_DOWN'],
254
- onDeactivate() {
255
- triggerRef.current?.focus()
256
- },
257
- })
258
-
259
- const [queryTyped, setQueryTyped] = useState(false)
260
- const [query, setQuery] = useState<string>(
261
- getDisplayValue(adapters, selectable.selected, multiple)
262
- )
263
- const options = useOptions({ datasources, adapters })
264
-
265
- const expandDisabled = useMemo(
266
- () =>
267
- !query.length &&
268
- isEmpty(options.get()) &&
269
- isEmpty(selectable.selected) &&
270
- isFunction(isValidNewOption)
271
- ? !isValidNewOption(query)
272
- : !isValidNewOption,
273
- [query, options, selectable.selected, isValidNewOption]
274
- )
275
-
276
- const dropdown = useDropdown({ ...props, expandDisabled })
277
-
278
- useEffect(() => {
279
- if (queryTyped) {
280
- options.fetch(query)
281
- dropdown.expand()
282
- }
283
- }, [query, queryTyped])
284
-
285
- const getSelectableOption = useCallback(
286
- function getSelectableOption(option: Option) {
287
- const adapter = getAdapter(adapters, option._type)
288
-
289
- const value = adapter.getKey(option)
290
- const label = adapter.getLabel(option)
291
- const checked = selectable.selected.has(value)
292
-
293
- return { label, value, checked }
294
- },
295
- [adapters, selectable.selected]
296
- )
297
-
298
- const getOption = useCallback(
299
- function getOption(value: SelectableKeyType) {
300
- let option = options.getOptionByKey(value)
301
-
302
- if (!option) {
303
- option = selectable.selected.get(value)
304
- }
305
-
306
- return option
307
- },
308
- [options, selectable.selected]
309
- )
310
-
311
- const toggleOption = useCallback(
312
- function toggleOption(option: Option) {
313
- selectable.toggle(option)
314
- },
315
- [selectable]
316
- )
317
-
318
- const getDropdownProps = useCallback(
319
- function getDropdownProps() {
320
- return {
321
- toggle: dropdown.toggle,
322
- expanded: dropdown.expanded,
323
- onBlur(event?: MouseEvent | TouchEvent | KeyboardEvent) {
324
- setQueryTyped(false)
325
-
326
- if (!multiple) {
327
- setQuery(getDisplayValue(adapters, selectable.selected, multiple))
328
- } else {
329
- setQuery('')
330
- }
331
- options.reset()
332
- onBlur?.(event)
333
- },
334
- expandDisabled,
335
- }
336
- },
337
- [
338
- adapters,
339
- dropdown.expanded,
340
- dropdown.toggle,
341
- multiple,
342
- options,
343
- selectable.selected,
344
- onBlur,
345
- expandDisabled,
346
- ]
347
- )
348
-
349
- const getTriggerProps = useCallback(
350
- function getTriggerProps() {
351
- return {
352
- ...getInputProps?.(),
353
- id,
354
- ref(node: HTMLInputElement | null) {
355
- if (node != null) {
356
- triggerRef.current = node
357
- }
358
- },
359
- value: query,
360
- onChange(e: ChangeEvent<HTMLInputElement>) {
361
- const sanitizedValue = e.target.value.replace(/\s+/, '')
362
-
363
- setQueryTyped(sanitizedValue !== '')
364
- onQueryChange?.(e)
365
- setQuery(e.target.value)
366
- },
367
- onFocus: TriggerOnFocusHandler,
368
- }
369
- },
370
- [id, query, onQueryChange, dropdown, options, selectable.selected]
371
- )
372
-
373
- const getClearProps = useCallback(
374
- function getClearProps() {
375
- return {
376
- onClick() {
377
- setQueryTyped(false)
378
- setQuery('')
379
- selectable.clear()
380
- options.reset()
381
- triggerRef.current?.focus()
382
- },
383
- }
384
- },
385
- [options, selectable]
386
- )
387
-
388
- const getMenuProps = useCallback(
389
- function getMenuProps() {
390
- return {
391
- ref: focusTrap.containerRef,
392
- role: 'listbox',
393
- }
394
- },
395
- [focusTrap.containerRef]
396
- )
397
-
398
- const getOptionProps = useCallback(
399
- function getOptionProps({ option }: { option: Option }) {
400
- const { value, checked, label } = getSelectableOption(option)
401
-
402
- return {
403
- role: 'option',
404
- 'aria-selected': checked,
405
- id: String(value),
406
- onClick() {
407
- setQueryTyped(false)
408
-
409
- if (!multiple) {
410
- setQueryTyped(false)
411
- }
412
- toggleOption(option)
413
-
414
- return multiple
415
- },
416
- tabIndex: -1,
417
- }
418
- },
419
- [getSelectableOption, toggleOption, multiple]
420
- )
421
-
422
- const getCreatebleProps = useCallback(
423
- function getCreatebleProps() {
424
- return {
425
- onClick: function onClick() {
426
- async function asyncOnClick() {
427
- if (!isFunction(onCreate)) return
428
-
429
- const onCreateReturn = onCreate(query)
430
-
431
- let option
432
- if (onCreateReturn) {
433
- if (isThenable(onCreateReturn)) {
434
- option = await onCreateReturn
435
- } else {
436
- option = onCreateReturn
437
- }
438
- }
439
-
440
- options.fetch(query)
441
-
442
- if (option) {
443
- toggleOption(option)
444
- }
445
- }
446
-
447
- void asyncOnClick()
448
-
449
- return multiple
450
- },
451
- tabIndex: -1,
452
- }
453
- },
454
- [multiple, onCreate, query, options, toggleOption]
455
- )
456
-
457
- const isCreatable = useCallback(
458
- function isCreatable() {
459
- const findByLabel = (item: Option) =>
460
- getSelectableOption(item).label.toLocaleLowerCase() === query.toLocaleLowerCase()
461
-
462
- function isQueryEqualAnOption() {
463
- return !isNil(
464
- [...options.get(), ...Array.from(selectable.selected.values())].find(findByLabel)
465
- )
466
- }
467
-
468
- function getIsValidNewOption() {
469
- if (isFunction(isValidNewOption)) {
470
- return isValidNewOption(query) && !isQueryEqualAnOption()
471
- }
472
-
473
- return isValidNewOption
474
- }
475
-
476
- return isFunction(onCreate) && options.status === 'queried' && getIsValidNewOption()
477
- },
478
- [getSelectableOption, isValidNewOption, onCreate, options, query, selectable.selected]
479
- )
480
-
481
- useEffect(
482
- function onInit() {
483
- options.fetch('')
484
- },
485
- // we just want to load any initial options that a datasource may have available
486
- // eslint-disable-next-line react-hooks/exhaustive-deps
487
- [datasources]
488
- )
489
-
490
- useEffect(
491
- function onDropdownToggle() {
492
- if (!props.autoFocus && !didMount) {
493
- return
494
- }
495
- if (dropdown.expanded) {
496
- focusTrap.activate()
497
- } else {
498
- focusTrap.deactivate()
499
- }
500
- },
501
- /**
502
- * We are interested in activating/deactivating our
503
- * focus trap when the dropdown changes its expanded state.
504
- */
505
- // eslint-disable-next-line react-hooks/exhaustive-deps
506
- [dropdown.expanded]
507
- )
508
-
509
- useEffect(
510
- function updateOnSelectedChange() {
511
- if (!multiple) {
512
- setQuery(getDisplayValue(adapters, selectable.selected, multiple))
513
- }
514
- },
515
- [adapters, multiple, selectable.selected]
516
- )
517
-
518
- return {
519
- status: options.status,
520
- options: options.get(),
521
- value: getValue(selectable.selected, multiple),
522
- query,
523
- disabled,
524
-
525
- selectable,
526
-
527
- getMenuProps,
528
- getSelectableOption,
529
- getOption,
530
- getOptionProps,
531
- getTriggerProps,
532
- getClearProps,
533
- getDropdownProps,
534
- getCreatebleProps,
535
- isCreatable,
536
- createOptionPosition,
537
- }
538
- }
539
-
540
- export default useSelect
@@ -1,26 +0,0 @@
1
- import { useCallback, useContext } from 'react'
2
-
3
- import { SelectContext } from './Select.context'
4
- import type { Option, useSelectExternalReturn } from './Select.types'
5
-
6
- export function useSelectExternal(): useSelectExternalReturn {
7
- const select =
8
- useContext(SelectContext) ||
9
- (() => {
10
- throw new Error('useSelect should be wrapped in a SelectContext')
11
- })()
12
-
13
- const isChecked = useCallback(
14
- function isChecked(option: Option) {
15
- const { checked } = select.getSelectableOption(option)
16
- return checked
17
- },
18
- [select]
19
- )
20
-
21
- return {
22
- query: select.query,
23
- getOption: select.getOption,
24
- isChecked,
25
- }
26
- }
@@ -1,19 +0,0 @@
1
- import React from 'react'
2
-
3
- import { Logo } from './'
4
- import renderer, { screen } from '../../../tests/renderer'
5
- import generator from '../../../tests/generator'
6
- import type { LogoProps } from './Logo'
7
-
8
- const setup = ({ ...overrides }: LogoProps) => renderer(<Logo {...overrides} />).render()
9
-
10
- describe('<Logo />', () => {
11
- it('renders correctly', () => {
12
- const sentence = generator.sentence()
13
- const url = generator.url()
14
- setup({ url, children: <span>{sentence}</span> })
15
-
16
- expect(screen.getByText(sentence)).toBeInTheDocument()
17
- expect(screen.getByRole('link')).toHaveProperty('href', url)
18
- })
19
- })
@@ -1,26 +0,0 @@
1
- import React from 'react'
2
- import type { PropsWithChildren } from 'react'
3
- import styled from 'styled-components'
4
-
5
- import { getToken as token } from 'theming'
6
- import { BaseLink } from 'components/Link'
7
-
8
- export type LogoProps = PropsWithChildren<{
9
- url: string
10
- className?: string
11
- }>
12
-
13
- const Container = styled.div`
14
- padding-right: ${token('space-l')};
15
- padding-left: ${token('space-l')};
16
- `
17
-
18
- function Logo({ className, url, children }: LogoProps): JSX.Element {
19
- return (
20
- <Container className={className}>
21
- <BaseLink href={url}>{children}</BaseLink>
22
- </Container>
23
- )
24
- }
25
-
26
- export default styled(Logo)<LogoProps>({})
@@ -1 +0,0 @@
1
- export { default as Logo } from './Logo'
@@ -1,65 +0,0 @@
1
- import React from 'react'
2
-
3
- import { Menu } from './'
4
- import type { MenuProps } from './Menu'
5
- import renderer, { screen } from '../../../tests/renderer'
6
- import generator from '../../../tests/generator'
7
- import userEvent from '@testing-library/user-event'
8
-
9
- function setup(props: MenuProps) {
10
- renderer(<Menu {...props} />).render()
11
- }
12
-
13
- describe('<Menu />', () => {
14
- it('should handle label and items', () => {
15
- const label = generator.word()
16
- const itemLabel = generator.word()
17
- const itemUrl = generator.url()
18
-
19
- setup({
20
- label: label,
21
- children: <Menu.Item label={itemLabel} url={itemUrl} />,
22
- })
23
-
24
- expect(screen.getByRole('menubar')).toBeInTheDocument()
25
- expect(screen.getByRole('menubar')).toHaveTextContent(label)
26
- expect(screen.getByRole('menuitem')).toHaveTextContent(itemLabel)
27
- expect(screen.getByRole('menuitem')).toHaveProperty('href', itemUrl)
28
- })
29
-
30
- it('should accept labels with leading and trailing as elements', () => {
31
- const leading = <span>leading</span>
32
- const trailing = <span>trailing</span>
33
-
34
- setup({
35
- label: 'label',
36
- children: <Menu.Item leading={leading} trailing={trailing} label="" url="#" />,
37
- })
38
-
39
- expect(screen.getByRole('menuitem')).toHaveTextContent('leading')
40
- expect(screen.getByRole('menuitem')).toHaveTextContent('trailing')
41
- })
42
-
43
- it('correctly expands and collapses subItems', () => {
44
- const itemLabel = generator.word()
45
- const subLabel = generator.word()
46
-
47
- setup({
48
- children: (
49
- <Menu.Item label={itemLabel}>
50
- <Menu.SubItem label={subLabel} url="#" />
51
- </Menu.Item>
52
- ),
53
- })
54
-
55
- expect(screen.getByText(subLabel)).not.toBeVisible()
56
-
57
- userEvent.click(screen.getByText(itemLabel))
58
-
59
- expect(screen.getByText(subLabel)).toBeVisible()
60
-
61
- userEvent.click(screen.getByText(itemLabel))
62
-
63
- expect(screen.getByText(subLabel)).not.toBeVisible()
64
- })
65
- })