@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,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