@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,143 +0,0 @@
1
- import get from 'utils/toolset/get'
2
-
3
- import type {
4
- Selectable,
5
- SelectableAdapter,
6
- SelectableKeyType,
7
- SelectableState,
8
- SelectableStrategy,
9
- } from './useSelectable.types'
10
-
11
- export type SelectableStrategyContext<T extends Selectable> = {
12
- getAdapter: (type?: string) => SelectableAdapter<T>
13
- }
14
-
15
- const GenericAdapter: SelectableAdapter<unknown> = {
16
- getKey(o): string {
17
- return get(o, 'value')!
18
- },
19
- }
20
-
21
- function createSelectionStrategy<T extends Selectable>(props: {
22
- multiple?: boolean
23
- adapters: Record<string, SelectableAdapter<T>>
24
- }): SelectableStrategy<T> {
25
- const { adapters, multiple } = props
26
-
27
- const context: SelectableStrategyContext<T> = {
28
- getAdapter(type?: string) {
29
- if (type == null) {
30
- return GenericAdapter
31
- }
32
-
33
- return adapters[type] || GenericAdapter
34
- },
35
- }
36
-
37
- if (multiple) {
38
- return MultipleSelectionStrategy(context)
39
- }
40
-
41
- return SingleSelectionStrategy(context)
42
- }
43
-
44
- export function SingleSelectionStrategy<T extends Selectable>(
45
- context: SelectableStrategyContext<T>
46
- ): SelectableStrategy<T> {
47
- return {
48
- type() {
49
- return 'single'
50
- },
51
- init(items: T[]) {
52
- return this.select(items, new Map())
53
- },
54
- select(items: T[]) {
55
- const newSelection = new Map<SelectableKeyType, T>()
56
-
57
- for (let i = 0; i < items.slice(0, 1).length; i++) {
58
- const adapter = context.getAdapter(items[i]._type)
59
- newSelection.set(adapter.getKey(items[i]), items[i])
60
- }
61
-
62
- return newSelection
63
- },
64
- unselect(keys: SelectableKeyType[], selection: SelectableState<T>) {
65
- const newSelection = new Map<SelectableKeyType, T>(selection)
66
-
67
- for (let i = 0; i < keys.length; i++) {
68
- newSelection.delete(keys[i])
69
- }
70
-
71
- return newSelection
72
- },
73
- toggle(items: T[], selection: SelectableState<T>) {
74
- const newSelection = new Map<SelectableKeyType, T>()
75
-
76
- for (let i = 0; i < items.slice(0, 1).length; i++) {
77
- const adapter = context.getAdapter(items[i]._type)
78
-
79
- if (!selection.has(adapter.getKey(items[i]))) {
80
- newSelection.set(adapter.getKey(items[i]), items[i])
81
- }
82
- }
83
-
84
- return newSelection
85
- },
86
- clear() {
87
- return new Map<SelectableKeyType, T>()
88
- },
89
- }
90
- }
91
-
92
- export function MultipleSelectionStrategy<T extends Selectable>(
93
- context: SelectableStrategyContext<T>
94
- ): SelectableStrategy<T> {
95
- return {
96
- type() {
97
- return 'multiple'
98
- },
99
- init(items: T[]) {
100
- return this.select(items, new Map<SelectableKeyType, T>())
101
- },
102
- select(items: T[], selection: SelectableState<T>) {
103
- const newSelection = new Map<SelectableKeyType, T>(selection)
104
-
105
- for (let i = 0; i < items.length; i++) {
106
- const adapter = context.getAdapter(items[i]._type)
107
- newSelection.set(adapter.getKey(items[i]), items[i])
108
- }
109
-
110
- return newSelection
111
- },
112
- unselect(keys: SelectableKeyType[], selection: SelectableState<T>) {
113
- const newSelection = new Map<SelectableKeyType, T>(selection)
114
-
115
- for (let i = 0; i < keys.length; i++) {
116
- newSelection.delete(keys[i])
117
- }
118
-
119
- return newSelection
120
- },
121
- toggle(items: T[], selection: SelectableState<T>) {
122
- const newSelection = new Map<SelectableKeyType, T>(selection)
123
-
124
- for (let i = 0; i < items.length; i++) {
125
- const adapter = context.getAdapter(items[i]._type)
126
- const key = adapter.getKey(items[i])
127
-
128
- if (!selection.has(key)) {
129
- newSelection.set(key, items[i])
130
- } else {
131
- newSelection.delete(key)
132
- }
133
- }
134
-
135
- return newSelection
136
- },
137
- clear() {
138
- return new Map<SelectableKeyType, T>()
139
- },
140
- }
141
- }
142
-
143
- export default createSelectionStrategy
@@ -1,8 +0,0 @@
1
- export { createSelectable } from './useSelectable'
2
- export type {
3
- Selectable,
4
- SelectableAdapter,
5
- SelectableKeyType,
6
- SelectableType,
7
- SelectableState,
8
- } from './useSelectable.types'
@@ -1,221 +0,0 @@
1
- import { renderHook, act } from '@testing-library/react-hooks'
2
-
3
- import { createSelectable } from './useSelectable'
4
- import generator from '../../tests/generator'
5
-
6
- import type { Selectable, SelectableAdapter, SelectableKeyType } from './useSelectable.types'
7
-
8
- interface TestSelectable extends Selectable {
9
- id: string
10
- name: string
11
- }
12
-
13
- const adapter = {
14
- getKey(o: TestSelectable): string {
15
- return o.id
16
- },
17
- }
18
-
19
- const adapters: Record<string, SelectableAdapter<TestSelectable>> = {
20
- test: adapter,
21
- }
22
-
23
- describe('createSelectable', () => {
24
- const { SelectableContext, useSelectable } = createSelectable<TestSelectable>()
25
-
26
- it('returns a context and a useSelectable hook', () => {
27
- expect(SelectableContext.Provider).not.toBeNull()
28
- expect(SelectableContext.Consumer).not.toBeNull()
29
-
30
- expect(useSelectable).not.toBeNull()
31
- expect(typeof useSelectable).toBe('function')
32
- })
33
-
34
- describe('useSelectable', () => {
35
- it('returns select, unselect, toggle, clear functions', () => {
36
- const props = {
37
- selected: [],
38
- adapters,
39
- }
40
-
41
- const { result } = renderHook(() => useSelectable(props))
42
-
43
- expect(typeof result.current.select).toBe('function')
44
- expect(typeof result.current.unselect).toBe('function')
45
- expect(typeof result.current.toggle).toBe('function')
46
- expect(typeof result.current.clear).toBe('function')
47
- })
48
-
49
- it('returns empty selected, when empty selected is initially provided', () => {
50
- const props = {
51
- selected: [],
52
- adapters,
53
- }
54
- const { result } = renderHook(() => useSelectable(props))
55
- const expectedSelected = new Map<SelectableKeyType, TestSelectable>()
56
-
57
- expect(result.current.selected).toEqual(expectedSelected)
58
- })
59
-
60
- it('returns selected correctly when selected is initially provided', () => {
61
- const item = {
62
- _type: 'test',
63
- id: generator.id(),
64
- name: generator.name(),
65
- }
66
-
67
- const props = {
68
- selected: [item],
69
- adapters,
70
- }
71
- const { result } = renderHook(() => useSelectable(props))
72
-
73
- const expectedSelected = new Map<SelectableKeyType, TestSelectable>().set(
74
- adapter.getKey(item),
75
- item
76
- )
77
-
78
- expect(result.current.selected).toEqual(expectedSelected)
79
- })
80
-
81
- it('update selected correctly when the provided selected changes', () => {
82
- const item = {
83
- _type: 'test',
84
- id: generator.id(),
85
- name: generator.name(),
86
- }
87
-
88
- const { result, rerender } = renderHook((props) => useSelectable(props), {
89
- initialProps: {
90
- selected: [item],
91
- adapters,
92
- },
93
- })
94
-
95
- const initialExpectedSelected = new Map<SelectableKeyType, TestSelectable>().set(
96
- adapter.getKey(item),
97
- item
98
- )
99
-
100
- expect(result.current.selected).toEqual(initialExpectedSelected)
101
-
102
- const otherItem = {
103
- _type: 'test',
104
- id: 'sure-it-is-another-id',
105
- name: generator.name(),
106
- }
107
-
108
- rerender({
109
- selected: [otherItem],
110
- adapters,
111
- })
112
-
113
- const expectedSelected = new Map<SelectableKeyType, TestSelectable>().set(
114
- adapter.getKey(otherItem),
115
- otherItem
116
- )
117
-
118
- expect(result.current.selected).toEqual(expectedSelected)
119
- })
120
-
121
- it('calls onChange prop when select is called', () => {
122
- const item = {
123
- _type: 'test',
124
- id: generator.id(),
125
- name: generator.name(),
126
- }
127
-
128
- const props = {
129
- selected: [],
130
- adapters,
131
- onChange: jest.fn(),
132
- }
133
-
134
- const { result } = renderHook(() => useSelectable(props))
135
-
136
- const expectedSelected = new Map<SelectableKeyType, TestSelectable>().set(
137
- adapter.getKey(item),
138
- item
139
- )
140
-
141
- act(() => {
142
- result.current.select(item)
143
- })
144
-
145
- expect(props.onChange).toHaveBeenCalledWith(expectedSelected)
146
- })
147
-
148
- it('calls onChange prop when unselect is called', () => {
149
- const item = {
150
- _type: 'test',
151
- id: generator.id(),
152
- name: generator.name(),
153
- }
154
-
155
- const props = {
156
- selected: [item],
157
- adapters,
158
- onChange: jest.fn(),
159
- }
160
-
161
- const { result } = renderHook(() => useSelectable(props))
162
-
163
- act(() => {
164
- result.current.unselect(item.id)
165
- })
166
-
167
- const expectedSelected = new Map<SelectableKeyType, TestSelectable>()
168
- expect(props.onChange).toHaveBeenCalledWith(expectedSelected)
169
- })
170
-
171
- it('calls onChange prop when toggle is called', () => {
172
- const item = {
173
- _type: 'test',
174
- id: generator.id(),
175
- name: generator.name(),
176
- }
177
-
178
- const props = {
179
- selected: [],
180
- adapters,
181
- onChange: jest.fn(),
182
- }
183
-
184
- const { result } = renderHook(() => useSelectable(props))
185
-
186
- const expectedSelected = new Map<SelectableKeyType, TestSelectable>().set(
187
- adapter.getKey(item),
188
- item
189
- )
190
-
191
- act(() => {
192
- result.current.toggle(item)
193
- })
194
-
195
- expect(props.onChange).toHaveBeenCalledWith(expectedSelected)
196
- })
197
-
198
- it('calls onChange prop when clear is called', () => {
199
- const item = {
200
- _type: 'test',
201
- id: generator.id(),
202
- name: generator.name(),
203
- }
204
-
205
- const props = {
206
- selected: [item],
207
- adapters,
208
- onChange: jest.fn(),
209
- }
210
-
211
- const { rerender, result } = renderHook(() => useSelectable(props))
212
-
213
- act(() => {
214
- result.current.clear()
215
- })
216
-
217
- const expectedSelected = new Map<SelectableKeyType, TestSelectable>()
218
- expect(props.onChange).toHaveBeenCalledWith(expectedSelected)
219
- })
220
- })
221
- })
@@ -1,156 +0,0 @@
1
- import { createContext, useEffect, useMemo, useReducer, useRef } from 'react'
2
- import { identity } from '@loadsmart/utils-function'
3
-
4
- import { useDidMount } from 'hooks/useDidMount'
5
- import createSelectionStrategy from './SelectableStrategy'
6
- import toArray from 'utils/toolset/toArray'
7
- import useFingerprint from 'hooks/useFingerprint'
8
-
9
- import type { Context } from 'react'
10
- import type {
11
- Selectable,
12
- SelectableAction,
13
- SelectableKeyType,
14
- SelectableState,
15
- SelectableStrategy,
16
- useSelectableProps,
17
- useSelectableReturn,
18
- } from './useSelectable.types'
19
-
20
- const DEFAULT_ADAPTERS = {}
21
-
22
- /**
23
- * Create a generic manager for collection selection.
24
- * @returns
25
- */
26
- function createUseSelectable<T extends Selectable>() {
27
- return function useSelectable(props: useSelectableProps<T>): useSelectableReturn<T> {
28
- const { adapters, multiple, onChange } = props
29
-
30
- const didMount = useDidMount()
31
-
32
- const strategy = useMemo<SelectableStrategy<T>>(() => {
33
- return createSelectionStrategy<T>({
34
- adapters: adapters || DEFAULT_ADAPTERS,
35
- multiple: Boolean(multiple),
36
- })
37
- }, [adapters, multiple])
38
-
39
- function reducer(state: SelectableState<T>, action: SelectableAction<T>) {
40
- switch (action.type) {
41
- case 'select':
42
- return strategy.select(action.payload, state)
43
- case 'unselect':
44
- return strategy.unselect(action.payload, state)
45
- case 'toggle':
46
- return strategy.toggle(action.payload, state)
47
- case 'clear':
48
- return strategy.clear(state)
49
- case 'reset':
50
- return action.payload
51
- }
52
- }
53
-
54
- function initializer() {
55
- return strategy.init(toArray(props.selected))
56
- }
57
-
58
- const [selected, dispatch] = useReducer(reducer, new Map<SelectableKeyType, T>(), initializer)
59
- const { resetFingerprint, hasSameFingerprint } = useFingerprint<string>(
60
- identity,
61
- [...selected.keys()].map(String)
62
- )
63
- const propagateChangeRef = useRef(false)
64
-
65
- function type() {
66
- return strategy.type()
67
- }
68
-
69
- function select(items: T | T[]) {
70
- propagateChangeRef.current = true
71
-
72
- dispatch({
73
- type: 'select',
74
- payload: toArray(items),
75
- })
76
- }
77
-
78
- function unselect(keys: SelectableKeyType | SelectableKeyType[]) {
79
- propagateChangeRef.current = true
80
-
81
- dispatch({
82
- type: 'unselect',
83
- payload: toArray(keys),
84
- })
85
- }
86
-
87
- function toggle(items: T | T[]) {
88
- propagateChangeRef.current = true
89
-
90
- dispatch({
91
- type: 'toggle',
92
- payload: toArray(items),
93
- })
94
- }
95
-
96
- function clear() {
97
- propagateChangeRef.current = true
98
-
99
- dispatch({
100
- type: 'clear',
101
- })
102
- }
103
-
104
- useEffect(
105
- function handleChange() {
106
- if (didMount && propagateChangeRef.current) {
107
- onChange?.(selected)
108
- }
109
-
110
- propagateChangeRef.current = false
111
- },
112
- /**
113
- * We don't want to update when didMount or the onChange callback changes, because we're only interested
114
- * in changes to the selected state.
115
- */
116
- // eslint-disable-next-line react-hooks/exhaustive-deps
117
- [selected]
118
- )
119
-
120
- useEffect(
121
- function updateOnSelectedPropChange() {
122
- const newSelected = initializer()
123
- const keys = [...newSelected.keys()].map(String)
124
-
125
- if (hasSameFingerprint(keys)) {
126
- return
127
- }
128
-
129
- propagateChangeRef.current = false
130
-
131
- resetFingerprint(keys)
132
- dispatch({
133
- type: 'reset',
134
- payload: newSelected,
135
- })
136
- },
137
- /**
138
- * initializer is not relevant for our changes, that's why its ommitted.
139
- */
140
- // eslint-disable-next-line react-hooks/exhaustive-deps
141
- [props.selected, hasSameFingerprint, resetFingerprint]
142
- )
143
-
144
- return { type, selected, select, unselect, toggle, clear }
145
- }
146
- }
147
-
148
- export function createSelectable<T extends Selectable>(): {
149
- SelectableContext: Context<useSelectableReturn<T>>
150
- useSelectable: (props: useSelectableProps<T>) => useSelectableReturn<T>
151
- } {
152
- const SelectableContext = createContext<useSelectableReturn<T>>({} as useSelectableReturn<T>)
153
- const useSelectable = createUseSelectable<T>()
154
-
155
- return { SelectableContext, useSelectable }
156
- }
@@ -1,45 +0,0 @@
1
- export type SelectableKeyType = string | number | boolean
2
-
3
- export interface Selectable {
4
- _type?: string
5
- }
6
-
7
- export interface SelectableAdapter<T> {
8
- getKey: (o: T) => SelectableKeyType
9
- }
10
-
11
- export type SelectableState<T extends Selectable> = Map<SelectableKeyType, T>
12
-
13
- export type SelectableType = 'single' | 'multiple'
14
-
15
- export type SelectableStrategy<T extends Selectable> = {
16
- type: () => SelectableType
17
- init: (items: T[]) => SelectableState<T>
18
- select: (items: T[], selection: SelectableState<T>) => SelectableState<T>
19
- unselect: (keys: SelectableKeyType[], selection: SelectableState<T>) => SelectableState<T>
20
- toggle: (items: T[], selection: SelectableState<T>) => SelectableState<T>
21
- clear: (selection: SelectableState<T>) => SelectableState<T>
22
- }
23
-
24
- export type SelectableAction<T extends Selectable> =
25
- | { type: 'select'; payload: T[] }
26
- | { type: 'unselect'; payload: SelectableKeyType[] }
27
- | { type: 'toggle'; payload: T[] }
28
- | { type: 'clear' }
29
- | { type: 'reset'; payload: SelectableState<T> }
30
-
31
- export interface useSelectableReturn<T extends Selectable> {
32
- type: () => SelectableType
33
- selected: SelectableState<T>
34
- select: (items: T | T[]) => void
35
- unselect: (keys: SelectableKeyType | SelectableKeyType[]) => void
36
- toggle: (items: T | T[]) => void
37
- clear: () => void
38
- }
39
-
40
- export interface useSelectableProps<T extends Selectable> {
41
- selected: T | T[]
42
- multiple?: boolean
43
- onChange?: (selected: SelectableState<T>) => void
44
- adapters?: Record<string, SelectableAdapter<T>>
45
- }
@@ -1 +0,0 @@
1
- export { default } from './useWindowResize'
@@ -1,27 +0,0 @@
1
- import { useState, useEffect } from 'react'
2
-
3
- function useWindowSize() {
4
- const [windowSize, setWindowSize] = useState<{
5
- width: number
6
- height: number
7
- }>({
8
- width: window.innerWidth,
9
- height: window.innerHeight,
10
- })
11
-
12
- useEffect(() => {
13
- function handleResize() {
14
- setWindowSize({
15
- width: window.innerWidth,
16
- height: window.innerHeight,
17
- })
18
- }
19
-
20
- window.addEventListener('resize', handleResize)
21
-
22
- return () => window.removeEventListener('resize', handleResize)
23
- }, [])
24
- return windowSize
25
- }
26
-
27
- export default useWindowSize