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

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