@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,168 +0,0 @@
1
- import React from 'react'
2
- import type { Story, Meta } from '@storybook/react'
3
-
4
- import { TODAY } from './Date.helper'
5
- import Calendar from './Calendar'
6
-
7
- import type { CalendarDate } from './Date.helper'
8
- import type { CalendarProps } from './Calendar.types'
9
-
10
- export default {
11
- title: 'Components/Calendar',
12
- component: Calendar,
13
- argTypes: {
14
- scale: {
15
- control: {
16
- type: 'select',
17
- options: ['single', 'range'],
18
- },
19
- },
20
- onDayClick: {
21
- table: {
22
- disable: true,
23
- },
24
- },
25
- onMonthClick: {
26
- table: {
27
- disable: true,
28
- },
29
- },
30
- onYearClick: {
31
- table: {
32
- disable: true,
33
- },
34
- },
35
- onSelect: {
36
- action: 'picked',
37
- table: {
38
- disable: true,
39
- },
40
- },
41
- },
42
- } as Meta
43
-
44
- const Template: Story<CalendarProps> = (args): JSX.Element => {
45
- return (
46
- <div className="flex flex-col">
47
- <Calendar {...args} />
48
- </div>
49
- )
50
- }
51
-
52
- export const Playground = Template.bind({})
53
-
54
- Playground.args = {
55
- mode: 'single',
56
- }
57
-
58
- export function Selection(): JSX.Element {
59
- return (
60
- <div className="flex space-x-2">
61
- <Calendar
62
- year={2022}
63
- month={0}
64
- mode="single"
65
- selected={[Date.UTC(2022, 0), Date.UTC(2022, 0)]}
66
- />
67
- <Calendar
68
- year={2022}
69
- month={0}
70
- mode="range"
71
- selected={[Date.UTC(2022, 0, 20), Date.UTC(2022, 1, 10)]}
72
- />
73
- </div>
74
- )
75
- }
76
-
77
- function isWeekend(date: CalendarDate) {
78
- return [0, 6].includes(date.getWeekday())
79
- }
80
-
81
- export function CalendarConstraints(args: CalendarProps): JSX.Element {
82
- return (
83
- <div className="flex flex-col">
84
- <Calendar {...args} />
85
- </div>
86
- )
87
- }
88
-
89
- CalendarConstraints.args = {
90
- constraints: [[null, TODAY.subtract('day', 1).toString()], isWeekend],
91
- }
92
-
93
- CalendarConstraints.parameters = {
94
- docs: {
95
- description: {
96
- story: `
97
- Calendar 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,
98
- it will be disabled.
99
-
100
- When defining specific date constraints, you can use timestamp, ISO date format, or \`Date\`.
101
- **Make sure to use \`CalendarDate.helper.ts\` to provide normalized values so the component treats them properly**.
102
-
103
- For ranges, using the same formats descrive above, you have a few options:
104
-
105
- * Equal or after a date (inclusive): \`[<start date>, null]\`
106
- * Equal or before a date (inclusive): \`[null, <end date>]\`
107
- * Equal or between dates (inclusive): \`[<start date>, <end date>]\`
108
-
109
- Alternatively, you can specify a function constraint that receives a \`CalendarDate\` and returns a boolean.
110
-
111
- You can provide as many constraints as you want.
112
-
113
- #### Block a specific date
114
-
115
- \`\`\`jsx
116
- <Calendar {...props} constraints={1643371200000} />
117
-
118
- <Calendar {...props} constraints="2022-01-01T12:00:00.000Z" />
119
-
120
- <Calendar {...props} constraints={new Date("2022-01-01T12:00:00.000Z")} />
121
-
122
- <Calendar {...props} constraints={[1643371200000]} />
123
-
124
- <Calendar {...props} constraints={[new Date("2022-01-01T12:00:00.000Z")]} />
125
-
126
- function isWeekend(date: CalendarDate) {
127
- return [0, 6].includes(date.getWeekday())
128
- }
129
-
130
- <Calendar {...props} constraints={[isWeekend]} />
131
- \`\`\`
132
-
133
- #### Block a specific range of dates
134
-
135
- A range is specified with an array, or pair, with two values.
136
-
137
- Notice that, to specify a range you need to provide the prop \`constraints\` as an array.
138
- So \`constraints={[1641038400000, 1643371200000]}\` is restricing **exactly** the dates represented by the timestamps \`1641038400000\` and \`1643371200000\`, whereas
139
- \`constraints={[[1641038400000, 1643371200000]]}\` is restricing **all** the dates between the timestamps \`1641038400000\` and \`1643371200000\` (inclusive).
140
-
141
- \`\`\`jsx
142
- <Calendar {...props} constraints={[[1643371200000, 1643371200000]]} />
143
-
144
- <Calendar {...props} constraints={[["2022-01-01T12:00:00.000Z", null]]} />
145
-
146
- <Calendar {...props} constraints={[[null, new Date("2022-01-01T12:00:00.000Z")]]} />
147
-
148
- <Calendar {...props} constraints={[["2022-01-01T12:00:00.000Z", "2022-01-28T12:00:00.000Z"]]} />
149
-
150
- const TODAY = DateHelper();
151
-
152
- <Calendar {...props} constraints={[[null, TODAY.subtract('day', 1).toString()]]} />
153
- \`\`\`
154
-
155
- Always make sure your range of dates has start date before (or equal to) the end date, otherwise an \`InvalidDateConstraintError\` will be thrown.
156
-
157
- #### Block with multiple constraints
158
-
159
- You can combine the above in multiple constraints.
160
-
161
- \`\`\`jsx
162
- <Calendar {...props} constraints={["2021-12-31T12:00:00.000Z", ["2022-01-01T12:00:00.000Z", "2022-01-28T12:00:00.000Z"]]} />
163
- \`\`\`
164
-
165
- `,
166
- },
167
- },
168
- }
@@ -1,316 +0,0 @@
1
- /* eslint-disable testing-library/render-result-naming-convention */
2
- import React from 'react'
3
- import { composeStories } from '@storybook/react'
4
-
5
- import { getRenderableMonth } from './useCalendar'
6
- import { TODAY } from './Date.helper'
7
- import * as stories from './Calendar.stories'
8
- import DateFormatHelper from './DateFormat.helper'
9
- import DateHelper from './Date.helper'
10
- import generator from '../../tests/generator'
11
- import MonthHelper, { MONTH_BY_NAME } from './Month.helper'
12
- import renderer, { screen, fire } from '../../tests/renderer'
13
-
14
- import type { CalendarConstraint } from './Date.helper'
15
- import type { CalendarMonthAlias } from './Month.helper'
16
- import type { CalendarProps } from './Calendar.types'
17
-
18
- const { Playground } = composeStories(stories)
19
-
20
- const ALL_MONTHS = Object.keys(MONTH_BY_NAME).map((name) => MONTH_BY_NAME[name])
21
-
22
- export const formatter = DateFormatHelper('MM/DD/YYYY')
23
-
24
- const setup = (overrides: Partial<CalendarProps>) =>
25
- renderer(<Playground {...overrides} />).render()
26
-
27
- describe('Calendar', () => {
28
- it('render correctly with no month/year props', () => {
29
- const props = {}
30
-
31
- setup(props)
32
-
33
- expect(screen.getByLabelText('Navigate to previous month')).toBeInTheDocument()
34
- expect(screen.getByLabelText('Open month selection')).toBeInTheDocument()
35
- expect(screen.getByLabelText('Open year selection')).toBeInTheDocument()
36
- expect(screen.getByLabelText('Navigate to next month')).toBeInTheDocument()
37
-
38
- expect(screen.getByTestId('calendar-day-picker')).toBeInTheDocument()
39
-
40
- const currentMonthDetails = getRenderableMonth(TODAY.getYear(), TODAY.getMonth())
41
-
42
- expect(screen.getByLabelText('Open month selection')).toHaveTextContent(
43
- MonthHelper(currentMonthDetails.month as CalendarMonthAlias).format('long')
44
- )
45
-
46
- expect(screen.getByLabelText('Open year selection')).toHaveTextContent(
47
- String(currentMonthDetails.year)
48
- )
49
- })
50
-
51
- it('render correctly with month/year props', () => {
52
- const props = {
53
- month: 1, // february
54
- year: 2020,
55
- }
56
-
57
- setup(props)
58
-
59
- const currentMonthDetails = getRenderableMonth(props.year, props.month)
60
-
61
- expect(screen.getByLabelText('Open month selection')).toHaveTextContent(
62
- MonthHelper(currentMonthDetails.month as CalendarMonthAlias).format('long')
63
- )
64
-
65
- expect(screen.getByLabelText('Open year selection')).toHaveTextContent(
66
- String(currentMonthDetails.year)
67
- )
68
- })
69
-
70
- it('navigates to previous month', () => {
71
- const props = {
72
- month: 0, // january
73
- year: 2020,
74
- }
75
-
76
- setup(props)
77
-
78
- const currentMonthDetails = getRenderableMonth(props.year, props.month)
79
-
80
- expect(screen.getByLabelText('Open month selection')).toHaveTextContent(
81
- MonthHelper(currentMonthDetails.month as CalendarMonthAlias).format('long')
82
- )
83
-
84
- expect(screen.getByLabelText('Open year selection')).toHaveTextContent(
85
- String(currentMonthDetails.year)
86
- )
87
-
88
- fire.click(screen.getByLabelText('Navigate to previous month'))
89
-
90
- expect(screen.getByLabelText('Open month selection')).toHaveTextContent('December')
91
-
92
- expect(screen.getByLabelText('Open year selection')).toHaveTextContent('2019')
93
- })
94
-
95
- it('navigates to next month', () => {
96
- const props = {
97
- month: 11, // december
98
- year: 2019,
99
- }
100
-
101
- setup(props)
102
-
103
- const currentMonthDetails = getRenderableMonth(props.year, props.month)
104
-
105
- expect(screen.getByLabelText('Open month selection')).toHaveTextContent(
106
- MonthHelper(currentMonthDetails.month as CalendarMonthAlias).format('long')
107
- )
108
-
109
- expect(screen.getByLabelText('Open year selection')).toHaveTextContent(
110
- String(currentMonthDetails.year)
111
- )
112
-
113
- fire.click(screen.getByLabelText('Navigate to next month'))
114
-
115
- expect(screen.getByLabelText('Open month selection')).toHaveTextContent('January')
116
-
117
- expect(screen.getByLabelText('Open year selection')).toHaveTextContent('2020')
118
- })
119
-
120
- it('toggles month selection', () => {
121
- const props = {}
122
-
123
- setup(props)
124
-
125
- expect(screen.getByTestId('calendar-day-picker')).toBeInTheDocument()
126
- expect(screen.queryByTestId('calendar-month-picker')).not.toBeInTheDocument()
127
- expect(screen.queryByTestId('calendar-year-picker')).not.toBeInTheDocument()
128
-
129
- fire.click(screen.getByLabelText('Open month selection'))
130
-
131
- expect(screen.queryByTestId('calendar-day-picker')).not.toBeInTheDocument()
132
- expect(screen.getByTestId('calendar-month-picker')).toBeInTheDocument()
133
- expect(screen.queryByTestId('calendar-year-picker')).not.toBeInTheDocument()
134
- })
135
-
136
- it('selects month', () => {
137
- const props = {}
138
-
139
- setup(props)
140
-
141
- fire.click(screen.getByLabelText('Open month selection'))
142
-
143
- const selectedMonth = generator.pickone(ALL_MONTHS)
144
- fire.click(screen.getByLabelText(`Select month ${selectedMonth.name}`))
145
-
146
- expect(screen.getByLabelText('Open month selection')).toHaveTextContent(
147
- MonthHelper(selectedMonth.name as CalendarMonthAlias).format('long')
148
- )
149
-
150
- expect(screen.getByTestId('calendar-day-picker')).toBeInTheDocument()
151
- })
152
-
153
- it('toggles year selection', () => {
154
- const props = {}
155
-
156
- setup(props)
157
-
158
- expect(screen.getByTestId('calendar-day-picker')).toBeInTheDocument()
159
- expect(screen.queryByTestId('calendar-month-picker')).not.toBeInTheDocument()
160
- expect(screen.queryByTestId('calendar-year-picker')).not.toBeInTheDocument()
161
-
162
- fire.click(screen.getByLabelText('Open year selection'))
163
-
164
- expect(screen.queryByTestId('calendar-day-picker')).not.toBeInTheDocument()
165
- expect(screen.queryByTestId('calendar-month-picker')).not.toBeInTheDocument()
166
- expect(screen.getByTestId('calendar-year-picker')).toBeInTheDocument()
167
- })
168
-
169
- it('selects year', () => {
170
- const props = {}
171
-
172
- setup(props)
173
-
174
- fire.click(screen.getByLabelText('Open year selection'))
175
-
176
- const selectedYear = generator.natural({ min: 2012, max: 2031 })
177
- fire.click(screen.getByLabelText(`Select year ${selectedYear}`))
178
-
179
- expect(screen.getByLabelText('Open year selection')).toHaveTextContent(String(selectedYear))
180
-
181
- expect(screen.getByTestId('calendar-month-picker')).toBeInTheDocument()
182
- })
183
-
184
- it('renders selected day', () => {
185
- const month = generator.natural({ min: 0, max: 11 })
186
- const year = generator.natural({ min: 2012, max: 2031 })
187
-
188
- const date = DateHelper(Date.UTC(year, month, generator.natural({ min: 1, max: 28 })))
189
-
190
- const props = {
191
- month,
192
- year,
193
- selected: [date.getTime(), date.getTime()] as [number, number],
194
- }
195
-
196
- setup(props)
197
-
198
- expect(screen.getByRole('checkbox', { name: formatter.format(date) })).toBeChecked()
199
- })
200
-
201
- it('renders selected range of days', () => {
202
- const startMonth = generator.natural({ min: 0, max: 10 })
203
- const endMonth = startMonth + 1
204
- const year = generator.natural({ min: 2012, max: 2031 })
205
-
206
- const startDay = generator.natural({ min: 5, max: 10 })
207
- const endDay = startDay + generator.natural({ min: 5, max: 10 })
208
-
209
- const startDate = DateHelper(Date.UTC(year, startMonth, startDay))
210
- const endDate = DateHelper(Date.UTC(year, endMonth, endDay))
211
-
212
- const props: Partial<CalendarProps> = {
213
- mode: 'range',
214
- month: startMonth,
215
- year,
216
- selected: [startDate.getTime(), endDate.getTime()] as [number, number],
217
- }
218
-
219
- setup(props)
220
-
221
- let currDate = DateHelper(startDate.getTime())
222
-
223
- while (currDate.getTime() < endDate.getTime()) {
224
- expect(screen.getByRole('checkbox', { name: formatter.format(currDate) })).toBeChecked()
225
-
226
- currDate = currDate.add('day', 1)
227
- }
228
- })
229
-
230
- describe('Constraints', () => {
231
- it('disables a day', () => {
232
- const month = generator.natural({ min: 0, max: 11 })
233
- const year = generator.natural({ min: 2012, max: 2031 })
234
-
235
- const disabledDate = DateHelper(new Date(year, month, generator.natural({ min: 1, max: 28 })))
236
-
237
- const props = {
238
- year,
239
- month,
240
- constraints: disabledDate.toString(),
241
- }
242
-
243
- setup(props)
244
-
245
- expect(screen.getByRole('checkbox', { name: formatter.format(disabledDate) })).toBeDisabled()
246
- })
247
-
248
- it('disables before a day (inclusive)', () => {
249
- const month = generator.natural({ min: 0, max: 11 })
250
- const year = generator.natural({ min: 2012, max: 2031 })
251
-
252
- const rangeEndDate = DateHelper(new Date(year, month, generator.natural({ min: 2, max: 28 })))
253
-
254
- const props = {
255
- year,
256
- month,
257
- constraints: [[null, rangeEndDate.toString()] as CalendarConstraint],
258
- }
259
-
260
- setup(props)
261
-
262
- for (let day = 1; day <= rangeEndDate.getDate(); day++) {
263
- const date = DateHelper(new Date(year, month, day))
264
- expect(screen.getByRole('checkbox', { name: formatter.format(date) })).toBeDisabled()
265
- }
266
- })
267
-
268
- it('disables after a day (inclusive)', () => {
269
- const month = generator.natural({ min: 0, max: 11 })
270
- const year = generator.natural({ min: 2012, max: 2031 })
271
-
272
- const rangeStartDate = DateHelper(
273
- new Date(year, month, generator.natural({ min: 1, max: 27 }))
274
- )
275
-
276
- const props = {
277
- year,
278
- month,
279
- constraints: [[rangeStartDate.toString(), null] as CalendarConstraint],
280
- }
281
-
282
- setup(props)
283
-
284
- for (let day = rangeStartDate.getDate(); day <= 28; day++) {
285
- const date = DateHelper(new Date(year, month, day))
286
- expect(screen.getByRole('checkbox', { name: formatter.format(date) })).toBeDisabled()
287
- }
288
- })
289
-
290
- it('disables between a range (inclusive)', () => {
291
- const month = generator.natural({ min: 0, max: 11 })
292
- const year = generator.natural({ min: 2012, max: 2031 })
293
-
294
- const rangeStartDate = DateHelper(
295
- new Date(year, month, generator.natural({ min: 1, max: 14 }))
296
- )
297
-
298
- const rangeEndDate = DateHelper(
299
- new Date(year, month, generator.natural({ min: 15, max: 28 }))
300
- )
301
-
302
- const props = {
303
- year,
304
- month,
305
- constraints: [[rangeStartDate.toString(), rangeEndDate.toString()] as CalendarConstraint],
306
- }
307
-
308
- setup(props)
309
-
310
- for (let day = rangeStartDate.getDate(); day <= rangeEndDate.getDate(); day++) {
311
- const date = DateHelper(new Date(year, month, day))
312
- expect(screen.getByRole('checkbox', { name: formatter.format(date) })).toBeDisabled()
313
- }
314
- })
315
- })
316
- })
@@ -1,130 +0,0 @@
1
- import React from 'react'
2
- import styled from 'styled-components'
3
-
4
- import { BaseButton } from 'components/Button'
5
- import { getToken as token } from 'theming'
6
- import { Group, Stack } from 'components/Layout'
7
- import { Icon } from 'components/Icon'
8
- import conditional, { whenProps } from 'tools/conditional'
9
- import focusable from 'styles/focusable'
10
- import hoverable from 'styles/hoverable'
11
- import MonthHelper from './Month.helper'
12
- import PickerModeToggle from './PickerModeToggle'
13
- import typography from 'styles/typography'
14
- import useCalendar from './useCalendar'
15
- import usePickerMode from './usePickerMode'
16
-
17
- import type { CalendarMonthAlias } from './Month.helper'
18
- import type { CalendarProps, GenericCalendarProps } from './Calendar.types'
19
-
20
- const Container = styled(Stack)`
21
- ${typography('body')}
22
- min-width: calc((7 * 2.5rem) + (6 * ${token('space-2xs')}));
23
- `
24
-
25
- const BorderlessButton = styled(BaseButton)`
26
- ${typography('body-bold')}
27
- border-color: transparent;
28
- background-color: transparent;
29
-
30
- color: ${token('color-neutral')};
31
-
32
- inline-size: 40px;
33
-
34
- visibility: ${conditional({
35
- visible: whenProps({ 'aria-hidden': false }),
36
- hidden: whenProps({ 'aria-hidden': true }),
37
- })};
38
-
39
- ${hoverable`
40
- color: ${token('color-neutral-dark')};
41
- `}
42
-
43
- ${focusable`
44
- box-shadow: ${token('button-primary-outline')};
45
- `}
46
- `
47
-
48
- /**
49
- * Implementation based on
50
- * * https://medium.com/swlh/build-a-date-picker-in-15mins-using-javascript-react-from-scratch-f6932c77db09
51
- * * https://codepen.io/zellwk/pen/xNpKwp
52
- */
53
- export function GenericCalendar(props: GenericCalendarProps): JSX.Element {
54
- const { calendar, onDayClick, onMonthClick, onYearClick, ...others } = props
55
- const mode = usePickerMode()
56
-
57
- const { Picker } = mode
58
-
59
- return (
60
- <Container space="xs" {...others}>
61
- <Group>
62
- <BorderlessButton
63
- type="button"
64
- aria-label="Navigate to previous month"
65
- aria-hidden={!mode.is('day-picker')}
66
- onClick={() => {
67
- calendar.set({ month: calendar.months[0].month - 1 })
68
- }}
69
- >
70
- <Icon name="caret-left" size={16} />
71
- </BorderlessButton>
72
-
73
- {calendar.months.map((month) => {
74
- return (
75
- <Group key={month.month} space="xs" align="center" justify="center" style={{ flex: 1 }}>
76
- <PickerModeToggle
77
- aria-label="Open month selection"
78
- onClick={() => {
79
- mode.dispatch({ type: 'toggle-mode', payload: 'month-picker' })
80
- }}
81
- expanded={mode.is('month-picker')}
82
- disabled={calendar.mode == 'range'}
83
- >
84
- {MonthHelper(month.month as CalendarMonthAlias).format('long')}
85
- </PickerModeToggle>
86
-
87
- <PickerModeToggle
88
- aria-label="Open year selection"
89
- onClick={() => {
90
- mode.dispatch({ type: 'toggle-mode', payload: 'year-picker' })
91
- }}
92
- expanded={mode.is('year-picker')}
93
- disabled={calendar.mode == 'range'}
94
- >
95
- {month.year}
96
- </PickerModeToggle>
97
- </Group>
98
- )
99
- })}
100
- <BorderlessButton
101
- type="button"
102
- aria-label="Navigate to next month"
103
- aria-hidden={!mode.is('day-picker')}
104
- onClick={() => {
105
- calendar.set({ month: calendar.months[0].month + 1 })
106
- }}
107
- >
108
- <Icon name="caret-right" size={16} />
109
- </BorderlessButton>
110
- </Group>
111
-
112
- <Picker
113
- calendar={calendar}
114
- mode={mode}
115
- onDayClick={onDayClick}
116
- onMonthClick={onMonthClick}
117
- onYearClick={onYearClick}
118
- />
119
- </Container>
120
- )
121
- }
122
-
123
- function Calendar(props: CalendarProps): JSX.Element {
124
- const { year, month, selected, constraints, onSelect, mode, ...rest } = props
125
- const calendar = useCalendar({ year, month, selected, constraints, mode, onSelect })
126
-
127
- return <GenericCalendar calendar={calendar} {...rest} />
128
- }
129
-
130
- export default Calendar
@@ -1,68 +0,0 @@
1
- import type { HTMLAttributes } from 'react'
2
-
3
- import type { CalendarDate, CalendarConstraint } from './Date.helper'
4
-
5
- export type RenderableMonth = {
6
- month: number
7
- year: number
8
- days: CalendarDate[]
9
- }
10
-
11
- export type CalendarMode = 'single' | 'range'
12
- export interface useCalendarProps {
13
- year?: number
14
- month?: number
15
- mode?: CalendarMode
16
- selected?: null | [string | number | null, string | number | null] // doc: timestamp or iso string,as specifified by CalendarDate
17
- onSelect?: (selection: [string | null, string | null]) => void
18
- constraints?: CalendarConstraint | CalendarConstraint[]
19
- }
20
- export interface useCalendarReturn {
21
- mode: CalendarMode
22
- months: RenderableMonth[]
23
- selected: [number | null, number | null]
24
- constraints: CalendarConstraint[]
25
- clear: () => void
26
- set: (args: { month?: number | undefined; year?: number | undefined }) => void
27
- select: (range: useCalendarProps['selected']) => void
28
- }
29
-
30
- export type PickerMode = 'day-picker' | 'month-picker' | 'year-picker'
31
-
32
- export type PickerModeAction =
33
- | { type: 'set-mode'; payload: PickerMode }
34
- | { type: 'toggle-mode'; payload: PickerMode }
35
-
36
- export interface usePickerModeProps {
37
- mode: PickerMode
38
- }
39
-
40
- export interface CalendarPickerProps {
41
- calendar: useCalendarReturn
42
- mode: usePickerModeReturn
43
- onDayClick?: (timestamp: number) => void
44
- onMonthClick?: (month: number) => void
45
- onYearClick?: (year: number) => void
46
- }
47
-
48
- export interface usePickerModeReturn {
49
- get(): PickerMode
50
- is(other: PickerMode): boolean
51
- dispatch: React.Dispatch<PickerModeAction>
52
- Picker: (props: CalendarPickerProps) => JSX.Element
53
- }
54
-
55
- export interface CalendarProps
56
- extends useCalendarProps,
57
- Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {
58
- onDayClick?: CalendarPickerProps['onDayClick']
59
- onMonthClick?: CalendarPickerProps['onMonthClick']
60
- onYearClick?: CalendarPickerProps['onYearClick']
61
- }
62
-
63
- export interface GenericCalendarProps extends HTMLAttributes<HTMLDivElement> {
64
- calendar: useCalendarReturn
65
- onDayClick?: CalendarPickerProps['onDayClick']
66
- onMonthClick?: CalendarPickerProps['onMonthClick']
67
- onYearClick?: CalendarPickerProps['onYearClick']
68
- }