@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,140 +0,0 @@
1
- import React, { useContext, forwardRef } from 'react'
2
- import styled from 'styled-components'
3
-
4
- import { DateFormatHelper, DateHelper, GenericCalendar } from 'components/Calendar'
5
- import { Dropdown, DropdownContext, GenericDropdown } from 'components/Dropdown'
6
- import { getToken as token } from 'theming'
7
- import { Group } from 'components/Layout'
8
- import { Icon } from 'components/Icon'
9
- import { TextField as DefaultTextField } from 'components/TextField'
10
- import CloseButton from 'common/CloseButton'
11
- import useDatePicker from './useDatePicker'
12
- import { Popover } from 'components/Popover'
13
-
14
- import type { CalendarDate } from 'components/Calendar'
15
- import type { ChangeEvent } from 'react'
16
- import type { DatePickerProps } from './DatePicker.types'
17
- import type { TextFieldProps } from 'components/TextField'
18
-
19
- /**
20
- * https://www.regular-expressions.info/dates.html
21
- * https://learning.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch04s04.html#validation-dates-problem
22
- */
23
- const DATE_REGEX = /^(1[0-2]|0?[1-9])\/(3[01]|[12][0-9]|0?[1-9])\/(19|20)\d{2}$/
24
-
25
- export const formatter = DateFormatHelper('MM/DD/YYYY')
26
-
27
- const TextField = styled(DefaultTextField)`
28
- & > input {
29
- width: 10ch;
30
- }
31
- `
32
-
33
- const DropdownMenu = styled(Dropdown.Menu)`
34
- width: max-content;
35
- min-width: initial;
36
- max-height: initial;
37
- padding: ${token('space-m')};
38
- overflow-y: initial;
39
- `
40
-
41
- export const ClearButton = styled(CloseButton)`
42
- width: 1em;
43
- height: 1em;
44
-
45
- margin-left: calc(-1 * ${token('space-s')}); // compensate for input's padding-left
46
- `
47
-
48
- interface DateInputProps extends Omit<TextFieldProps, 'onChange'> {
49
- onChange: (date: CalendarDate) => void
50
- }
51
-
52
- export const DateInput = forwardRef<HTMLInputElement, DateInputProps>(function DateInput(
53
- props: DateInputProps,
54
- ref
55
- ): JSX.Element {
56
- const { onChange, ...rest } = props
57
- const dropdown = useContext(DropdownContext)
58
-
59
- function handleInputChange(event: ChangeEvent<HTMLInputElement>) {
60
- const {
61
- target: { value },
62
- } = event
63
-
64
- if (!DATE_REGEX.test(value)) {
65
- return
66
- }
67
-
68
- onChange(DateHelper(value))
69
- }
70
-
71
- // TODO: use type="date" when IE is no longer in the way
72
- return (
73
- <TextField
74
- placeholder="00/00/0000"
75
- {...rest}
76
- ref={ref}
77
- type="text"
78
- disabled={dropdown.disabled}
79
- leading={<Icon name="calendar" />}
80
- onChange={handleInputChange}
81
- />
82
- )
83
- })
84
-
85
- function DatePicker(props: DatePickerProps): JSX.Element {
86
- const {
87
- id,
88
- name,
89
- value,
90
- onChange,
91
- disabled,
92
- constraints,
93
- getInputProps,
94
- getCalendarProps,
95
- placement,
96
- } = props
97
-
98
- const datePicker = useDatePicker({
99
- constraints,
100
- disabled,
101
- id,
102
- name,
103
- value,
104
- onChange,
105
- getInputProps,
106
- getCalendarProps,
107
- })
108
-
109
- function renderTrailing() {
110
- const [currSelectedDate] = datePicker.value
111
-
112
- if (!disabled && currSelectedDate) {
113
- return (
114
- <ClearButton
115
- size={12}
116
- type="button"
117
- aria-label="Clear selection"
118
- {...datePicker.getClearProps()}
119
- />
120
- )
121
- }
122
-
123
- return null
124
- }
125
-
126
- return (
127
- <GenericDropdown {...placement} {...datePicker.getDropdownProps()}>
128
- <Popover.Reference>
129
- <Group space="s">
130
- <DateInput trailing={renderTrailing()} {...datePicker.getInputProps()} />
131
- </Group>
132
- </Popover.Reference>
133
- <DropdownMenu>
134
- <GenericCalendar {...datePicker.getCalendarProps()} />
135
- </DropdownMenu>
136
- </GenericDropdown>
137
- )
138
- }
139
-
140
- export default DatePicker
@@ -1,30 +0,0 @@
1
- import type { CalendarProps, GenericCalendarProps, useCalendarProps } from 'components/Calendar'
2
-
3
- import type { TextFieldProps } from 'components/TextField'
4
- import type EventLike from 'utils/types/EventLike'
5
- import type { PopoverPlacement } from 'components/Popover'
6
-
7
- export interface DatePickerProps {
8
- id?: string
9
- name: string
10
- value?: null | string | number
11
- disabled?: boolean
12
- constraints?: CalendarProps['constraints']
13
- onChange?: (event: EventLike<string | null>) => void
14
- getInputProps?: () => Partial<TextFieldProps>
15
- getCalendarProps?: () => Partial<GenericCalendarProps>
16
- placement?: PopoverPlacement
17
- }
18
-
19
- export interface DateRangePickerProps {
20
- id?: string
21
- name: string
22
- value?: useCalendarProps['selected']
23
- disabled?: boolean
24
- constraints?: CalendarProps['constraints']
25
- onChange?: (event: EventLike<null | [string | null, string | null]>) => void
26
- getRangeStartInputProps?: () => Partial<TextFieldProps>
27
- getRangeEndInputProps?: () => Partial<TextFieldProps>
28
- getCalendarProps?: () => Partial<GenericCalendarProps>
29
- placement?: PopoverPlacement
30
- }
@@ -1,128 +0,0 @@
1
- import React, { useEffect, useState } from 'react'
2
-
3
- import { Label } from 'components/Label'
4
- import DateHelper, { TODAY } from '../Calendar/Date.helper'
5
- import DateRangePicker from './DateRangePicker'
6
-
7
- import type { Story, Meta } from '@storybook/react'
8
- import type { DateRangePickerProps } from './DatePicker.types'
9
- import type { useCalendarProps } from 'components/Calendar'
10
-
11
- export default {
12
- title: 'Components/Date/DateRangePicker',
13
- component: DateRangePicker,
14
- argTypes: {
15
- id: {
16
- table: {
17
- disable: true,
18
- },
19
- },
20
- name: {
21
- table: {
22
- disable: true,
23
- },
24
- },
25
- onChange: {
26
- table: {
27
- disable: true,
28
- },
29
- },
30
- getRangeStartInputProps: {
31
- table: {
32
- disable: true,
33
- },
34
- },
35
- getRangeEndInputProps: {
36
- table: {
37
- disable: true,
38
- },
39
- },
40
- getCalendarProps: {
41
- table: {
42
- disable: true,
43
- },
44
- },
45
- },
46
- } as Meta
47
-
48
- export const Playground: Story<DateRangePickerProps> = (args: DateRangePickerProps) => {
49
- return (
50
- <div className="flex flex-col">
51
- <Label htmlFor="playground-date-range-picker-start">Select the date range</Label>
52
- <DateRangePicker {...args} />
53
- </div>
54
- )
55
- }
56
-
57
- Playground.bind({})
58
-
59
- Playground.args = {
60
- id: 'playground-date-range-picker',
61
- name: 'playground-date-range-picker',
62
- }
63
-
64
- export const WithValue: Story<DateRangePickerProps> = (args: DateRangePickerProps) => {
65
- const [value, setValue] = useState<useCalendarProps['selected']>([
66
- DateHelper('December 17, 1995').toString(),
67
- DateHelper('December 22, 1995').toString(),
68
- ])
69
-
70
- useEffect(() => {
71
- setTimeout(() => {
72
- setValue([
73
- DateHelper('January 01, 2000').toString(),
74
- DateHelper('February 01, 2000').toString(),
75
- ])
76
- }, 3000)
77
- }, [])
78
-
79
- return (
80
- <div className="flex flex-col">
81
- <Label htmlFor="with-value-date-range-picker">Select the date range</Label>
82
- <DateRangePicker {...args} value={value} />
83
- <small className="mt-4">I&apos;ll change my value automatically. Wait and see.</small>
84
- </div>
85
- )
86
- }
87
-
88
- WithValue.bind({})
89
-
90
- WithValue.args = {
91
- id: 'with-value-date-range-picker',
92
- name: 'with-value-date-range-picker',
93
- }
94
-
95
- export function DateRangePickerConstraints(args: DateRangePickerProps): JSX.Element {
96
- return (
97
- <div className="flex flex-col">
98
- <Label htmlFor="constraints-date-range-picker">Select the available date range</Label>
99
- <DateRangePicker {...args} />
100
- </div>
101
- )
102
- }
103
-
104
- DateRangePickerConstraints.args = {
105
- id: 'constraints-date-range-picker',
106
- name: 'constraints-date-range-picker',
107
- constraints: [[null, TODAY.subtract('day', 1).toString()]],
108
- }
109
-
110
- DateRangePickerConstraints.parameters = {
111
- docs: {
112
- description: {
113
- story: `
114
- Constraints are used to block dates from being selected and can be represented in different ways, according to your needs. If a given day matches at least one of the constraints,
115
- it will be disabled.
116
-
117
-
118
- \`\`\`jsx
119
- const TODAY = DateHelper()
120
-
121
- <DateRangePicker {...props} constraints={[[null, TODAY.subtract('day', 1).toString()]]} />
122
- \`\`\`
123
-
124
- Check the constraints details in the [Calendar component](/story/components-calendar--calendar-constraints&viewMode=docs).
125
- `,
126
- },
127
- },
128
- }
@@ -1,267 +0,0 @@
1
- import React from 'react'
2
-
3
- import { composeStories } from '@storybook/react'
4
-
5
- import { MonthHelper } from '../Calendar'
6
- import { DateRangePickerEvent } from '../../testing/DatePickerEvent'
7
- import { formatter } from './DateRangePicker'
8
- import * as stories from './DateRangePicker.stories'
9
- import DateHelper, { TODAY } from '../Calendar/Date.helper'
10
- import generator from '../../tests/generator'
11
- import renderer, { screen, fire } from '../../tests/renderer'
12
-
13
- import type { DateRangePickerProps } from './DatePicker.types'
14
- import type { CalendarDate, CalendarMonthAlias } from '../Calendar'
15
-
16
- const { Playground } = composeStories(stories)
17
-
18
- const setup = (overrides: Partial<DateRangePickerProps>) =>
19
- renderer(<Playground {...overrides} />).render()
20
-
21
- describe('DateRangePicker', () => {
22
- it('starts collapsed', () => {
23
- const name = generator.word()
24
- const props = {
25
- id: name,
26
- name,
27
- }
28
-
29
- setup(props)
30
-
31
- expect(screen.queryByRole('menu')).not.toBeInTheDocument()
32
- })
33
-
34
- describe('when disabled', () => {
35
- it('does not expand when input for range start is clicked', () => {
36
- setup({ disabled: true })
37
-
38
- const datePickerInput = screen.getByTestId('input-date-range-start')
39
-
40
- expect(screen.queryByRole('menu')).not.toBeInTheDocument()
41
- expect(datePickerInput).toBeDisabled()
42
-
43
- fire.click(datePickerInput)
44
-
45
- expect(screen.queryByRole('menu')).not.toBeInTheDocument()
46
- })
47
-
48
- it('does not expand when input for range end is clicked', () => {
49
- setup({ disabled: true })
50
-
51
- const datePickerInput = screen.getByTestId('input-date-range-end')
52
-
53
- expect(screen.queryByRole('menu')).not.toBeInTheDocument()
54
- expect(datePickerInput).toBeDisabled()
55
-
56
- fire.click(datePickerInput)
57
-
58
- expect(screen.queryByRole('menu')).not.toBeInTheDocument()
59
- })
60
- })
61
-
62
- describe('when enabled', () => {
63
- const NEXT_MONTH = DateHelper(Date.UTC(TODAY.getYear(), TODAY.getMonth() + 1))
64
-
65
- it('expands with the current month/year calendar when range input is clicked', async () => {
66
- setup({ disabled: false })
67
-
68
- const datePickerInput = screen.getByLabelText('Select the date range')
69
-
70
- await DateRangePickerEvent.expand(datePickerInput)
71
-
72
- const months = screen.getAllByLabelText('Open month selection')
73
- const years = screen.getAllByLabelText('Open year selection')
74
-
75
- expect(months[0]).toHaveTextContent(
76
- MonthHelper(TODAY.getMonth() as CalendarMonthAlias).format('long')
77
- )
78
-
79
- expect(months[1]).toHaveTextContent(
80
- MonthHelper(NEXT_MONTH.getMonth() as CalendarMonthAlias).format('long')
81
- )
82
-
83
- expect(years[0]).toHaveTextContent(String(TODAY.getYear()))
84
- expect(years[1]).toHaveTextContent(String(NEXT_MONTH.getYear()))
85
- })
86
-
87
- it('expands with the start month/year calendar for the selected range when range input is clicked', async () => {
88
- const rangeStart = DateHelper('December 17, 1995')
89
- const rangeEnd = DateHelper('January 17, 1996')
90
-
91
- const value = [rangeStart.toString(), rangeEnd.toString()] as [string, string]
92
-
93
- setup({ disabled: false, value })
94
-
95
- const datePickerInput = screen.getByLabelText('Select the date range')
96
-
97
- await DateRangePickerEvent.expand(datePickerInput)
98
-
99
- const months = screen.getAllByLabelText('Open month selection')
100
- const years = screen.getAllByLabelText('Open year selection')
101
-
102
- expect(months[0]).toHaveTextContent(
103
- MonthHelper(rangeStart.getMonth() as CalendarMonthAlias).format('long')
104
- )
105
-
106
- expect(months[1]).toHaveTextContent(
107
- MonthHelper(rangeEnd.getMonth() as CalendarMonthAlias).format('long')
108
- )
109
-
110
- expect(years[0]).toHaveTextContent(String(rangeStart.getYear()))
111
- expect(years[1]).toHaveTextContent(String(rangeEnd.getYear()))
112
- })
113
-
114
- it('selects the clicked range of dates', async () => {
115
- setup({})
116
-
117
- const startDay = generator.natural({ min: 1, max: 14 })
118
-
119
- const startDate = DateHelper(Date.UTC(TODAY.getYear(), TODAY.getMonth(), startDay))
120
- const endDate = startDate.add('day', generator.natural({ min: 1, max: 14 }))
121
-
122
- const datePickerInput = screen.getByLabelText('Select the date range')
123
-
124
- await DateRangePickerEvent.pick(
125
- [formatter.format(startDate), formatter.format(endDate)],
126
- datePickerInput
127
- )
128
-
129
- expect(screen.getByTestId('input-date-range-start')).toHaveDisplayValue(
130
- formatter.format(startDate)
131
- )
132
-
133
- expect(screen.getByTestId('input-date-range-end')).toHaveDisplayValue(
134
- formatter.format(endDate)
135
- )
136
- })
137
-
138
- it('reverses the selected range of dates when start is before end', async () => {
139
- setup({})
140
-
141
- const startDay = generator.natural({ min: 1, max: 14 })
142
-
143
- const startDate = DateHelper(Date.UTC(TODAY.getYear(), TODAY.getMonth(), startDay))
144
- const endDate = startDate.add('day', generator.natural({ min: 1, max: 14 }))
145
-
146
- const datePickerInput = screen.getByLabelText('Select the date range')
147
-
148
- await DateRangePickerEvent.pick(
149
- [formatter.format(endDate), formatter.format(startDate)],
150
- datePickerInput
151
- )
152
-
153
- expect(screen.getByTestId('input-date-range-start')).toHaveDisplayValue(
154
- formatter.format(startDate)
155
- )
156
-
157
- expect(screen.getByTestId('input-date-range-end')).toHaveDisplayValue(
158
- formatter.format(endDate)
159
- )
160
- })
161
-
162
- function evaluateRangeSelection(
163
- from: CalendarDate,
164
- to: CalendarDate,
165
- range: [CalendarDate, CalendarDate]
166
- ) {
167
- let date = DateHelper(from.getTime())
168
- const [rangeStart, rangeEnd] = range
169
-
170
- // before the range starts, it's not selected
171
- while (date.getTime() < rangeStart.getTime()) {
172
- expect(screen.getByLabelText(formatter.format(date))).not.toBeChecked()
173
- date = date.add('day', 1)
174
- }
175
-
176
- while (date.getTime() <= rangeEnd.getTime()) {
177
- expect(screen.getByLabelText(formatter.format(date))).toBeChecked()
178
- date = date.add('day', 1)
179
- }
180
-
181
- // // after the range ends, it's not selected
182
- while (date.getTime() <= to.getTime()) {
183
- expect(screen.getByLabelText(formatter.format(date))).not.toBeChecked()
184
- date = date.add('day', 1)
185
- }
186
- }
187
-
188
- it('initializes with a selected range', async () => {
189
- const rangeStart = DateHelper('2022-02-15T12:00:00.000Z')
190
- const rangeEnd = DateHelper('2022-03-15T12:00:00.000Z')
191
-
192
- setup({ value: [rangeStart.toString(), rangeEnd.toString()] })
193
-
194
- const datePickerInput = screen.getByLabelText('Select the date range')
195
-
196
- expect(screen.getByTestId('input-date-range-start')).toHaveDisplayValue('02/15/2022')
197
- expect(screen.getByTestId('input-date-range-end')).toHaveDisplayValue('03/15/2022')
198
-
199
- const selectedDays = await DateRangePickerEvent.getSelectedDates(datePickerInput)
200
- expect(selectedDays.length).toBe(29)
201
-
202
- await DateRangePickerEvent.expand(datePickerInput)
203
-
204
- evaluateRangeSelection(
205
- DateHelper('2022-02-01T12:00:00.000Z'),
206
- DateHelper('2022-03-31T12:00:00.000Z'),
207
- [rangeStart, rangeEnd]
208
- )
209
- })
210
-
211
- it('updates selected date after the initially selected one changes', async () => {
212
- const rangeStart = DateHelper('2022-02-15T12:00:00.000Z')
213
- const rangeEnd = DateHelper('2022-03-15T12:00:00.000Z')
214
-
215
- const { rerender } = setup({ value: [rangeStart.toString(), rangeEnd.toString()] })
216
-
217
- const datePickerInput = screen.getByLabelText('Select the date range')
218
-
219
- expect(screen.getByTestId('input-date-range-start')).toHaveDisplayValue('02/15/2022')
220
- expect(screen.getByTestId('input-date-range-end')).toHaveDisplayValue('03/15/2022')
221
-
222
- await DateRangePickerEvent.expand(datePickerInput)
223
-
224
- evaluateRangeSelection(
225
- DateHelper('2022-02-01T12:00:00.000Z'),
226
- DateHelper('2022-03-31T12:00:00.000Z'),
227
- [rangeStart, rangeEnd]
228
- )
229
-
230
- const newRangeStart = DateHelper('2022-03-01T12:00:00.000Z')
231
- const newRangeEnd = DateHelper('2022-03-05T12:00:00.000Z')
232
-
233
- rerender(<Playground value={[newRangeStart.toString(), newRangeEnd.toString()]} />)
234
-
235
- expect(screen.getByTestId('input-date-range-start')).toHaveDisplayValue('03/01/2022')
236
- expect(screen.getByTestId('input-date-range-end')).toHaveDisplayValue('03/05/2022')
237
-
238
- await DateRangePickerEvent.expand(datePickerInput)
239
-
240
- evaluateRangeSelection(
241
- DateHelper('2022-03-01T12:00:00.000Z'),
242
- DateHelper('2022-04-30T12:00:00.000Z'),
243
- [newRangeStart, newRangeEnd]
244
- )
245
- })
246
-
247
- it('clears selection', async () => {
248
- const rangeStart = DateHelper('2022-02-15T12:00:00.000Z')
249
- const rangeEnd = DateHelper('2022-03-15T12:00:00.000Z')
250
-
251
- setup({ value: [rangeStart.toString(), rangeEnd.toString()] })
252
-
253
- const datePickerInput = screen.getByLabelText('Select the date range')
254
-
255
- expect(screen.getByTestId('input-date-range-start')).toHaveDisplayValue('02/15/2022')
256
- expect(screen.getByTestId('input-date-range-end')).toHaveDisplayValue('03/15/2022')
257
-
258
- await DateRangePickerEvent.clear(datePickerInput)
259
-
260
- expect(screen.getByTestId('input-date-range-start')).toHaveDisplayValue('')
261
- expect(screen.getByTestId('input-date-range-end')).toHaveDisplayValue('')
262
-
263
- const selectedDays = await DateRangePickerEvent.getSelectedDates(datePickerInput)
264
- expect(selectedDays.length).toBe(0)
265
- })
266
- })
267
- })
@@ -1,110 +0,0 @@
1
- import React from 'react'
2
- import styled from 'styled-components'
3
-
4
- import { Button } from 'components/Button'
5
- import { ClearButton, DateInput } from './DatePicker'
6
- import { DateFormatHelper, GenericCalendar } from 'components/Calendar'
7
- import { Dropdown, GenericDropdown } from 'components/Dropdown'
8
- import { getToken as token } from 'theming'
9
- import { Group } from 'components/Layout'
10
- import { Popover } from 'components/Popover'
11
- import useDateRangePicker from './useDateRangePicker'
12
-
13
- import type { DateRangePickerProps } from './DatePicker.types'
14
-
15
- export const formatter = DateFormatHelper('MM/DD/YYYY')
16
-
17
- const DropdownMenu = styled(Dropdown.Menu)`
18
- width: max-content;
19
- min-width: initial;
20
- max-height: initial;
21
- padding: ${token('space-m')};
22
- overflow-y: initial;
23
- `
24
-
25
- const DropdownFooter = styled.div`
26
- padding-right: ${token('space-m')};
27
- padding-left: ${token('space-m')};
28
- `
29
-
30
- function DateRangePicker(props: DateRangePickerProps): JSX.Element {
31
- const {
32
- id,
33
- name,
34
- value,
35
- onChange,
36
- disabled,
37
- constraints,
38
- getRangeStartInputProps,
39
- getRangeEndInputProps,
40
- getCalendarProps,
41
- placement,
42
- } = props
43
-
44
- const dateRangePicker = useDateRangePicker({
45
- constraints,
46
- disabled,
47
- id,
48
- name,
49
- value,
50
- onChange,
51
- getRangeStartInputProps,
52
- getRangeEndInputProps,
53
- getCalendarProps,
54
- })
55
-
56
- function renderRangeEndTrailing() {
57
- const [currRangeStart, currRangeEnd] = dateRangePicker.value
58
-
59
- if (!disabled && (currRangeStart || currRangeEnd)) {
60
- return (
61
- <ClearButton
62
- size={12}
63
- type="button"
64
- aria-label="Clear selection"
65
- {...dateRangePicker.getClearProps()}
66
- />
67
- )
68
- }
69
-
70
- return null
71
- }
72
-
73
- function renderDropdownFooter() {
74
- return (
75
- <DropdownFooter>
76
- <Group space="s" justify="flex-end">
77
- <Button type="button" scale="small" {...dateRangePicker.getClearProps()}>
78
- Clear
79
- </Button>
80
- <Button type="button" scale="small" variant="primary" {...dateRangePicker.getDoneProps()}>
81
- Done
82
- </Button>
83
- </Group>
84
- </DropdownFooter>
85
- )
86
- }
87
-
88
- return (
89
- <GenericDropdown {...placement} {...dateRangePicker.getDropdownProps()}>
90
- <Popover.Reference>
91
- <Group space="s">
92
- <DateInput
93
- {...dateRangePicker.getRangeStartInputProps()}
94
- data-testid="input-date-range-start"
95
- />
96
- <DateInput
97
- trailing={renderRangeEndTrailing()}
98
- {...dateRangePicker.getRangeEndInputProps()}
99
- data-testid="input-date-range-end"
100
- />
101
- </Group>
102
- </Popover.Reference>
103
- <DropdownMenu footer={renderDropdownFooter()}>
104
- <GenericCalendar {...dateRangePicker.getCalendarProps()} />
105
- </DropdownMenu>
106
- </GenericDropdown>
107
- )
108
- }
109
-
110
- export default DateRangePicker
@@ -1,3 +0,0 @@
1
- export { default as DatePicker } from './DatePicker'
2
- export { default as DateRangePicker } from './DateRangePicker'
3
- export type { DatePickerProps, DateRangePickerProps } from './DatePicker.types'