@loadsmart/loadsmart-ui 7.6.0 → 8.0.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 (531) hide show
  1. package/README.md +13 -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/components/Banner/Banner.d.ts +2 -2
  5. package/dist/components/Button/Button.d.ts +1 -1
  6. package/dist/components/Calendar/Pickers/PickerButton.d.ts +4 -2
  7. package/dist/components/Card/Card.d.ts +4 -4
  8. package/dist/components/Card/CardTitle.d.ts +2 -2
  9. package/dist/components/DatePicker/DatePicker.d.ts +1 -1
  10. package/dist/components/DatePicker/useDatePicker.d.ts +8 -9
  11. package/dist/components/DatePicker/useDateRangePicker.d.ts +13 -14
  12. package/dist/components/Dialog/Dialog.d.ts +3 -5
  13. package/dist/components/DragDropFile/styles.d.ts +7 -7
  14. package/dist/components/Dropdown/Dropdown.d.ts +3 -3
  15. package/dist/components/Dropdown/DropdownMenu.d.ts +3 -3
  16. package/dist/components/Layout/Stack.d.ts +2 -2
  17. package/dist/components/Loaders/LoadingBar.d.ts +2 -2
  18. package/dist/components/Loaders/index.d.ts +3 -3
  19. package/dist/components/Modal/Modal.d.ts +1 -3
  20. package/dist/components/SideNavigation/Logo/Logo.d.ts +7 -2
  21. package/dist/components/SideNavigation/Menu/Menu.d.ts +7 -2
  22. package/dist/components/SideNavigation/Menu/MenuLink.d.ts +6 -1
  23. package/dist/components/SideNavigation/SideNavigation.d.ts +14 -4
  24. package/dist/components/Steps/StepsStep.d.ts +2 -2
  25. package/dist/components/Table/Table.d.ts +2 -1
  26. package/dist/components/TablePagination/TablePagination.styles.d.ts +5 -4
  27. package/dist/components/TablePagination/TablePaginationActions.d.ts +2 -5
  28. package/dist/components/Text/Text.d.ts +1 -1
  29. package/dist/components/TextField/TextField.d.ts +6 -2
  30. package/dist/components/ToggleGroup/Toggle.d.ts +2 -1
  31. package/dist/components/ToggleGroup/ToggleGroup.d.ts +2 -1
  32. package/dist/components/TopNavigation/Logo/Logo.d.ts +7 -2
  33. package/dist/components/TopNavigation/Menu/Menu.d.ts +2 -2
  34. package/dist/components/TopNavigation/Menu/MenuItemDropdown.d.ts +4 -4
  35. package/dist/components/TopNavigation/OpenSideNavButton/OpenSideNavButton.d.ts +2 -1
  36. package/dist/components/TopNavigation/TopNavigation.d.ts +8 -3
  37. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  38. package/dist/components/VisuallyHidden/VisuallyHidden.stories.d.ts +2 -1
  39. package/dist/index.js +9100 -253
  40. package/dist/index.js.map +1 -1
  41. package/dist/miranda-compatibility.theme-kYNEZ7mW.js +2528 -0
  42. package/dist/{miranda-compatibility.theme-ChPV-BBw.js.map → miranda-compatibility.theme-kYNEZ7mW.js.map} +1 -1
  43. package/dist/prop-K2Z3EsyG.js +81 -0
  44. package/dist/{prop-BwhJNJHO.js.map → prop-K2Z3EsyG.js.map} +1 -1
  45. package/dist/testing/index.js +282 -1
  46. package/dist/testing/index.js.map +1 -1
  47. package/dist/tests/renderer.d.ts +1 -1
  48. package/dist/theming/index.js +22 -1
  49. package/dist/theming/index.js.map +1 -1
  50. package/dist/toArray-Dxb1kUxx.js +14 -0
  51. package/dist/{toArray-BW3gx_gH.js.map → toArray-Dxb1kUxx.js.map} +1 -1
  52. package/dist/tools/index.js +6 -1
  53. package/dist/tools/index.js.map +1 -1
  54. package/dist/utils/toolset/flatten.d.ts +1 -1
  55. package/dist/utils/toolset/get.d.ts +1 -1
  56. package/dist/utils/toolset/isEmpty.d.ts +1 -1
  57. package/dist/utils/toolset/omit.d.ts +1 -1
  58. package/dist/utils/toolset/range.d.ts +1 -1
  59. package/package.json +46 -79
  60. package/dist/DragDropFile.context-D-EBrXnw.js +0 -2
  61. package/dist/DragDropFile.context-jVTIKfj5.mjs +0 -29
  62. package/dist/DragDropFile.context-jVTIKfj5.mjs.map +0 -1
  63. package/dist/index.mjs +0 -8046
  64. package/dist/index.mjs.map +0 -1
  65. package/dist/miranda-compatibility.theme-ChPV-BBw.js +0 -2
  66. package/dist/miranda-compatibility.theme-DQDHkWzC.mjs +0 -2469
  67. package/dist/miranda-compatibility.theme-DQDHkWzC.mjs.map +0 -1
  68. package/dist/prop-5m3D4883.mjs +0 -54
  69. package/dist/prop-5m3D4883.mjs.map +0 -1
  70. package/dist/prop-BwhJNJHO.js +0 -2
  71. package/dist/testing/index.mjs +0 -228
  72. package/dist/testing/index.mjs.map +0 -1
  73. package/dist/theming/index.mjs +0 -20
  74. package/dist/theming/index.mjs.map +0 -1
  75. package/dist/toArray-BW3gx_gH.js +0 -2
  76. package/dist/toArray-DqgeO2ua.mjs +0 -8
  77. package/dist/toArray-DqgeO2ua.mjs.map +0 -1
  78. package/dist/tools/index.mjs +0 -7
  79. package/dist/tools/index.mjs.map +0 -1
  80. package/src/@types/@loadsmart/utilsFunction.d.ts +0 -5
  81. package/src/@types/@loadsmart/utilsObject.d.ts +0 -5
  82. package/src/@types/svg.d.ts +0 -4
  83. package/src/addons/Theme/register.js +0 -590
  84. package/src/common/BackButton/BackButton.tsx +0 -18
  85. package/src/common/BackButton/index.ts +0 -2
  86. package/src/common/CloseButton/CloseButton.tsx +0 -55
  87. package/src/common/CloseButton/index.ts +0 -2
  88. package/src/common/SelectionWrapper.tsx +0 -130
  89. package/src/components/Accordion/Accordion.context.tsx +0 -36
  90. package/src/components/Accordion/Accordion.stories.tsx +0 -186
  91. package/src/components/Accordion/Accordion.test.tsx +0 -209
  92. package/src/components/Accordion/Accordion.tsx +0 -233
  93. package/src/components/Accordion/index.ts +0 -2
  94. package/src/components/Banner/Banner.stories.tsx +0 -213
  95. package/src/components/Banner/Banner.test.tsx +0 -118
  96. package/src/components/Banner/Banner.tsx +0 -418
  97. package/src/components/Banner/index.tsx +0 -2
  98. package/src/components/Breadcrumbs/Breadbrumbs.test.tsx +0 -125
  99. package/src/components/Breadcrumbs/Breadcrumb.tsx +0 -92
  100. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +0 -21
  101. package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -54
  102. package/src/components/Breadcrumbs/index.ts +0 -4
  103. package/src/components/Button/Button.stories.tsx +0 -174
  104. package/src/components/Button/Button.test.tsx +0 -57
  105. package/src/components/Button/Button.tsx +0 -576
  106. package/src/components/Button/index.tsx +0 -2
  107. package/src/components/Calendar/Calendar.helpers.ts +0 -15
  108. package/src/components/Calendar/Calendar.stories.tsx +0 -168
  109. package/src/components/Calendar/Calendar.test.tsx +0 -316
  110. package/src/components/Calendar/Calendar.tsx +0 -130
  111. package/src/components/Calendar/Calendar.types.ts +0 -68
  112. package/src/components/Calendar/Date.helper.test.ts +0 -847
  113. package/src/components/Calendar/Date.helper.ts +0 -461
  114. package/src/components/Calendar/DateFormat.helper.test.ts +0 -171
  115. package/src/components/Calendar/DateFormat.helper.ts +0 -195
  116. package/src/components/Calendar/Month.helper.test.ts +0 -187
  117. package/src/components/Calendar/Month.helper.ts +0 -172
  118. package/src/components/Calendar/PickerModeToggle.tsx +0 -61
  119. package/src/components/Calendar/Pickers/DayPicker.test.tsx +0 -85
  120. package/src/components/Calendar/Pickers/DayPicker.tsx +0 -127
  121. package/src/components/Calendar/Pickers/MonthPicker.test.tsx +0 -77
  122. package/src/components/Calendar/Pickers/MonthPicker.tsx +0 -51
  123. package/src/components/Calendar/Pickers/PickerButton.tsx +0 -119
  124. package/src/components/Calendar/Pickers/YearPicker.test.tsx +0 -75
  125. package/src/components/Calendar/Pickers/YearPicker.tsx +0 -52
  126. package/src/components/Calendar/index.ts +0 -10
  127. package/src/components/Calendar/useCalendar.ts +0 -190
  128. package/src/components/Calendar/usePickerMode.ts +0 -48
  129. package/src/components/Card/Card.stories.tsx +0 -117
  130. package/src/components/Card/Card.test.tsx +0 -139
  131. package/src/components/Card/Card.tsx +0 -106
  132. package/src/components/Card/CardTitle.tsx +0 -43
  133. package/src/components/Card/index.ts +0 -2
  134. package/src/components/Checkbox/Checkbox.stories.tsx +0 -79
  135. package/src/components/Checkbox/Checkbox.test.tsx +0 -66
  136. package/src/components/Checkbox/Checkbox.tsx +0 -170
  137. package/src/components/Checkbox/index.ts +0 -2
  138. package/src/components/DatePicker/DatePicker.stories.tsx +0 -113
  139. package/src/components/DatePicker/DatePicker.test.tsx +0 -174
  140. package/src/components/DatePicker/DatePicker.tsx +0 -140
  141. package/src/components/DatePicker/DatePicker.types.ts +0 -30
  142. package/src/components/DatePicker/DateRangePicker.stories.tsx +0 -128
  143. package/src/components/DatePicker/DateRangePicker.test.tsx +0 -267
  144. package/src/components/DatePicker/DateRangePicker.tsx +0 -110
  145. package/src/components/DatePicker/index.ts +0 -3
  146. package/src/components/DatePicker/useDatePicker.ts +0 -201
  147. package/src/components/DatePicker/useDateRangePicker.ts +0 -224
  148. package/src/components/Dialog/Dialog.stories.tsx +0 -227
  149. package/src/components/Dialog/Dialog.test.tsx +0 -74
  150. package/src/components/Dialog/Dialog.tsx +0 -139
  151. package/src/components/Dialog/index.tsx +0 -4
  152. package/src/components/Dialog/useDialog.tsx +0 -59
  153. package/src/components/DragDropFile/DragDropFile.context.tsx +0 -39
  154. package/src/components/DragDropFile/DragDropFile.stories.tsx +0 -183
  155. package/src/components/DragDropFile/DragDropFile.tsx +0 -11
  156. package/src/components/DragDropFile/components/DropZone.test.tsx +0 -108
  157. package/src/components/DragDropFile/components/DropZone.tsx +0 -145
  158. package/src/components/DragDropFile/components/FileItem.tsx +0 -117
  159. package/src/components/DragDropFile/components/FileList.test.tsx +0 -119
  160. package/src/components/DragDropFile/components/FileList.tsx +0 -47
  161. package/src/components/DragDropFile/components/Wrapper.tsx +0 -22
  162. package/src/components/DragDropFile/index.ts +0 -9
  163. package/src/components/DragDropFile/mocks.ts +0 -23
  164. package/src/components/DragDropFile/styles.tsx +0 -81
  165. package/src/components/DragDropFile/types.ts +0 -85
  166. package/src/components/Drawer/Drawer.stories.tsx +0 -83
  167. package/src/components/Drawer/Drawer.test.tsx +0 -90
  168. package/src/components/Drawer/Drawer.tsx +0 -225
  169. package/src/components/Drawer/index.ts +0 -4
  170. package/src/components/Dropdown/Dropdown.context.ts +0 -13
  171. package/src/components/Dropdown/Dropdown.fixtures.ts +0 -15
  172. package/src/components/Dropdown/Dropdown.stories.tsx +0 -259
  173. package/src/components/Dropdown/Dropdown.test.tsx +0 -173
  174. package/src/components/Dropdown/Dropdown.tsx +0 -141
  175. package/src/components/Dropdown/Dropdown.types.ts +0 -59
  176. package/src/components/Dropdown/DropdownMenu.tsx +0 -263
  177. package/src/components/Dropdown/DropdownTrigger.tsx +0 -368
  178. package/src/components/Dropdown/index.ts +0 -15
  179. package/src/components/Dropdown/useDropdown.test.ts +0 -96
  180. package/src/components/Dropdown/useDropdown.ts +0 -65
  181. package/src/components/EmptyState/EmptyState.mocks.tsx +0 -60
  182. package/src/components/EmptyState/EmptyState.stories.tsx +0 -239
  183. package/src/components/EmptyState/EmptyState.test.tsx +0 -101
  184. package/src/components/EmptyState/EmptyState.tsx +0 -22
  185. package/src/components/EmptyState/EmptyState.types.ts +0 -59
  186. package/src/components/EmptyState/EmptyStateWithIcon.tsx +0 -42
  187. package/src/components/EmptyState/EmptyStateWithIllustration.tsx +0 -72
  188. package/src/components/EmptyState/Illustration.tsx +0 -29
  189. package/src/components/EmptyState/index.ts +0 -4
  190. package/src/components/ErrorMessage/ErrorMessage.stories.tsx +0 -26
  191. package/src/components/ErrorMessage/ErrorMessage.test.tsx +0 -24
  192. package/src/components/ErrorMessage/ErrorMessage.tsx +0 -19
  193. package/src/components/ErrorMessage/index.ts +0 -2
  194. package/src/components/HighlightMatch/HighlightMatch.stories.tsx +0 -24
  195. package/src/components/HighlightMatch/HighlightMatch.test.tsx +0 -37
  196. package/src/components/HighlightMatch/HighlightMatch.tsx +0 -29
  197. package/src/components/HighlightMatch/index.ts +0 -2
  198. package/src/components/Icon/Icon.tsx +0 -55
  199. package/src/components/Icon/assets/back.svg +0 -4
  200. package/src/components/Icon/assets/burger-menu.svg +0 -3
  201. package/src/components/Icon/assets/calendar.svg +0 -5
  202. package/src/components/Icon/assets/caret-down.svg +0 -4
  203. package/src/components/Icon/assets/caret-left.svg +0 -4
  204. package/src/components/Icon/assets/caret-right-last.svg +0 -4
  205. package/src/components/Icon/assets/caret-right.svg +0 -4
  206. package/src/components/Icon/assets/check.svg +0 -4
  207. package/src/components/Icon/assets/chevron-down.svg +0 -3
  208. package/src/components/Icon/assets/circle.svg +0 -3
  209. package/src/components/Icon/assets/close.svg +0 -4
  210. package/src/components/Icon/assets/dots-horizontal.svg +0 -1
  211. package/src/components/Icon/assets/information.svg +0 -4
  212. package/src/components/Icon/assets/minus.svg +0 -4
  213. package/src/components/Icon/assets/plus.svg +0 -4
  214. package/src/components/Icon/assets/refresh.svg +0 -3
  215. package/src/components/Icon/assets/sort-asc.svg +0 -7
  216. package/src/components/Icon/assets/sort-desc.svg +0 -7
  217. package/src/components/Icon/assets/sort.svg +0 -7
  218. package/src/components/Icon/assets/upload.svg +0 -3
  219. package/src/components/Icon/assets/warning.svg +0 -4
  220. package/src/components/Icon/index.ts +0 -2
  221. package/src/components/IconFactory/IconFactory.fixtures.tsx +0 -31
  222. package/src/components/IconFactory/IconFactory.stories.tsx +0 -120
  223. package/src/components/IconFactory/IconFactory.test.tsx +0 -36
  224. package/src/components/IconFactory/IconFactory.tsx +0 -75
  225. package/src/components/IconFactory/index.ts +0 -2
  226. package/src/components/Label/Label.stories.tsx +0 -47
  227. package/src/components/Label/Label.test.tsx +0 -80
  228. package/src/components/Label/Label.tsx +0 -120
  229. package/src/components/Label/index.ts +0 -2
  230. package/src/components/Layout/Box.tsx +0 -98
  231. package/src/components/Layout/Grid.tsx +0 -42
  232. package/src/components/Layout/Group.tsx +0 -55
  233. package/src/components/Layout/Layout.stories.tsx +0 -412
  234. package/src/components/Layout/Layout.tsx +0 -19
  235. package/src/components/Layout/Layout.types.ts +0 -9
  236. package/src/components/Layout/Layout.utils.ts +0 -20
  237. package/src/components/Layout/Sidebar.tsx +0 -75
  238. package/src/components/Layout/Stack.tsx +0 -63
  239. package/src/components/Layout/Switcher.tsx +0 -48
  240. package/src/components/Layout/index.tsx +0 -8
  241. package/src/components/Link/Link.stories.tsx +0 -22
  242. package/src/components/Link/Link.test.tsx +0 -79
  243. package/src/components/Link/Link.tsx +0 -114
  244. package/src/components/Link/index.ts +0 -3
  245. package/src/components/Link/useSafeLink.ts +0 -49
  246. package/src/components/Loaders/LoadingBar.stories.tsx +0 -36
  247. package/src/components/Loaders/LoadingBar.test.tsx +0 -35
  248. package/src/components/Loaders/LoadingBar.tsx +0 -65
  249. package/src/components/Loaders/LoadingDots.stories.tsx +0 -69
  250. package/src/components/Loaders/LoadingDots.test.tsx +0 -22
  251. package/src/components/Loaders/LoadingDots.tsx +0 -68
  252. package/src/components/Loaders/Spinner.stories.tsx +0 -24
  253. package/src/components/Loaders/Spinner.test.tsx +0 -35
  254. package/src/components/Loaders/Spinner.tsx +0 -68
  255. package/src/components/Loaders/index.tsx +0 -3
  256. package/src/components/Modal/Modal.stories.tsx +0 -121
  257. package/src/components/Modal/Modal.test.tsx +0 -46
  258. package/src/components/Modal/Modal.tsx +0 -163
  259. package/src/components/Modal/index.tsx +0 -2
  260. package/src/components/Pagination/Pagination.constants.ts +0 -7
  261. package/src/components/Pagination/Pagination.helper.ts +0 -88
  262. package/src/components/Pagination/Pagination.stories.tsx +0 -29
  263. package/src/components/Pagination/Pagination.test.tsx +0 -102
  264. package/src/components/Pagination/Pagination.tsx +0 -34
  265. package/src/components/Pagination/Pagination.types.ts +0 -55
  266. package/src/components/Pagination/PaginationItem.tsx +0 -74
  267. package/src/components/Pagination/index.ts +0 -2
  268. package/src/components/Pagination/usePagination.test.ts +0 -188
  269. package/src/components/Pagination/usePagination.ts +0 -87
  270. package/src/components/Popover/Popover.stories.tsx +0 -50
  271. package/src/components/Popover/Popover.test.tsx +0 -22
  272. package/src/components/Popover/Popover.tsx +0 -110
  273. package/src/components/Popover/Popover.types.ts +0 -39
  274. package/src/components/Popover/index.ts +0 -11
  275. package/src/components/ProgressBar/ProgressBar.stories.tsx +0 -47
  276. package/src/components/ProgressBar/ProgressBar.test.tsx +0 -40
  277. package/src/components/ProgressBar/ProgressBar.tsx +0 -89
  278. package/src/components/ProgressBar/index.tsx +0 -2
  279. package/src/components/Radio/Radio.stories.tsx +0 -75
  280. package/src/components/Radio/Radio.test.tsx +0 -66
  281. package/src/components/Radio/Radio.tsx +0 -153
  282. package/src/components/Radio/index.ts +0 -2
  283. package/src/components/Section/Section.test.tsx +0 -35
  284. package/src/components/Section/Section.tsx +0 -66
  285. package/src/components/Section/Sections.stories.tsx +0 -56
  286. package/src/components/Section/index.ts +0 -2
  287. package/src/components/Select/Select.constants.ts +0 -12
  288. package/src/components/Select/Select.context.ts +0 -11
  289. package/src/components/Select/Select.fixtures.ts +0 -167
  290. package/src/components/Select/Select.stories.tsx +0 -780
  291. package/src/components/Select/Select.test.tsx +0 -1109
  292. package/src/components/Select/Select.tsx +0 -271
  293. package/src/components/Select/Select.types.ts +0 -148
  294. package/src/components/Select/SelectCreatableOption.tsx +0 -20
  295. package/src/components/Select/SelectEmpty.test.tsx +0 -15
  296. package/src/components/Select/SelectEmpty.tsx +0 -29
  297. package/src/components/Select/SelectOption.test.tsx +0 -78
  298. package/src/components/Select/SelectOption.tsx +0 -79
  299. package/src/components/Select/SelectTrigger.tsx +0 -83
  300. package/src/components/Select/components.tsx +0 -14
  301. package/src/components/Select/index.ts +0 -12
  302. package/src/components/Select/useSelect.helpers.test.ts +0 -184
  303. package/src/components/Select/useSelect.helpers.ts +0 -63
  304. package/src/components/Select/useSelect.test.ts +0 -207
  305. package/src/components/Select/useSelect.ts +0 -540
  306. package/src/components/Select/useSelectExternal.ts +0 -26
  307. package/src/components/SideNavigation/Logo/Logo.test.tsx +0 -19
  308. package/src/components/SideNavigation/Logo/Logo.tsx +0 -26
  309. package/src/components/SideNavigation/Logo/index.ts +0 -1
  310. package/src/components/SideNavigation/Menu/Menu.test.tsx +0 -65
  311. package/src/components/SideNavigation/Menu/Menu.tsx +0 -53
  312. package/src/components/SideNavigation/Menu/MenuBaseItem.tsx +0 -64
  313. package/src/components/SideNavigation/Menu/MenuExpandable.tsx +0 -107
  314. package/src/components/SideNavigation/Menu/MenuLink.tsx +0 -37
  315. package/src/components/SideNavigation/Menu/index.ts +0 -1
  316. package/src/components/SideNavigation/Separator/Separator.test.tsx +0 -14
  317. package/src/components/SideNavigation/Separator/Separator.tsx +0 -20
  318. package/src/components/SideNavigation/Separator/index.ts +0 -1
  319. package/src/components/SideNavigation/SideNavigation.stories.tsx +0 -69
  320. package/src/components/SideNavigation/SideNavigation.test.tsx +0 -21
  321. package/src/components/SideNavigation/SideNavigation.tsx +0 -47
  322. package/src/components/SideNavigation/index.ts +0 -5
  323. package/src/components/SideNavigation/useSideNavigation.ts +0 -36
  324. package/src/components/Steps/ProgressSteps/ProgressStep.tsx +0 -163
  325. package/src/components/Steps/ProgressSteps/ProgressSteps.tsx +0 -37
  326. package/src/components/Steps/ProgressSteps/index.ts +0 -1
  327. package/src/components/Steps/Steps.fixtures.ts +0 -11
  328. package/src/components/Steps/Steps.helpers.ts +0 -11
  329. package/src/components/Steps/Steps.stories.tsx +0 -65
  330. package/src/components/Steps/Steps.test.tsx +0 -78
  331. package/src/components/Steps/Steps.tsx +0 -53
  332. package/src/components/Steps/Steps.types.ts +0 -5
  333. package/src/components/Steps/StepsContext.ts +0 -5
  334. package/src/components/Steps/StepsStep.tsx +0 -58
  335. package/src/components/Steps/index.ts +0 -6
  336. package/src/components/Steps/useStep.test.tsx +0 -217
  337. package/src/components/Steps/useSteps.ts +0 -131
  338. package/src/components/Switch/Switch.stories.tsx +0 -65
  339. package/src/components/Switch/Switch.test.tsx +0 -60
  340. package/src/components/Switch/Switch.tsx +0 -209
  341. package/src/components/Switch/index.ts +0 -2
  342. package/src/components/Table/Selection.tsx +0 -202
  343. package/src/components/Table/Table.fixtures.ts +0 -101
  344. package/src/components/Table/Table.stories.tsx +0 -568
  345. package/src/components/Table/Table.test.tsx +0 -310
  346. package/src/components/Table/Table.tsx +0 -523
  347. package/src/components/Table/Table.types.ts +0 -93
  348. package/src/components/Table/TableSortHandle.tsx +0 -31
  349. package/src/components/Table/index.tsx +0 -2
  350. package/src/components/Table/useSortBy.test.ts +0 -96
  351. package/src/components/Table/useSortBy.ts +0 -92
  352. package/src/components/Table/useSortBy.types.ts +0 -21
  353. package/src/components/TablePagination/RowsPerPage.tsx +0 -81
  354. package/src/components/TablePagination/TablePagination.stories.tsx +0 -42
  355. package/src/components/TablePagination/TablePagination.styles.ts +0 -13
  356. package/src/components/TablePagination/TablePagination.test.tsx +0 -111
  357. package/src/components/TablePagination/TablePagination.tsx +0 -49
  358. package/src/components/TablePagination/TablePagination.types.ts +0 -69
  359. package/src/components/TablePagination/TablePaginationActions.tsx +0 -144
  360. package/src/components/TablePagination/index.ts +0 -2
  361. package/src/components/Tabs/Tabs.stories.tsx +0 -78
  362. package/src/components/Tabs/Tabs.test.tsx +0 -103
  363. package/src/components/Tabs/Tabs.tsx +0 -287
  364. package/src/components/Tabs/Tabs.types.ts +0 -7
  365. package/src/components/Tabs/TabsContext.ts +0 -10
  366. package/src/components/Tabs/index.ts +0 -2
  367. package/src/components/Tag/Tag.stories.tsx +0 -112
  368. package/src/components/Tag/Tag.test.tsx +0 -19
  369. package/src/components/Tag/Tag.tsx +0 -393
  370. package/src/components/Tag/index.ts +0 -2
  371. package/src/components/Text/Text.stories.tsx +0 -59
  372. package/src/components/Text/Text.test.tsx +0 -48
  373. package/src/components/Text/Text.tsx +0 -14
  374. package/src/components/Text/index.ts +0 -2
  375. package/src/components/TextField/TextField.stories.tsx +0 -90
  376. package/src/components/TextField/TextField.test.tsx +0 -36
  377. package/src/components/TextField/TextField.tsx +0 -244
  378. package/src/components/TextField/index.ts +0 -6
  379. package/src/components/TextField/useTextField.tsx +0 -26
  380. package/src/components/Textarea/Textarea.stories.tsx +0 -101
  381. package/src/components/Textarea/Textarea.test.tsx +0 -14
  382. package/src/components/Textarea/Textarea.tsx +0 -230
  383. package/src/components/Textarea/index.ts +0 -2
  384. package/src/components/Toast/Toast.stories.tsx +0 -50
  385. package/src/components/Toast/Toast.test.tsx +0 -24
  386. package/src/components/Toast/Toast.tsx +0 -141
  387. package/src/components/Toast/icons/close.svg +0 -3
  388. package/src/components/Toast/icons/danger.svg +0 -4
  389. package/src/components/Toast/icons/neutral.svg +0 -4
  390. package/src/components/Toast/icons/success.svg +0 -3
  391. package/src/components/Toast/icons/warning.svg +0 -4
  392. package/src/components/Toast/index.tsx +0 -2
  393. package/src/components/ToggleGroup/Toggle.test.tsx +0 -76
  394. package/src/components/ToggleGroup/Toggle.tsx +0 -158
  395. package/src/components/ToggleGroup/ToggleGroup.constants.ts +0 -16
  396. package/src/components/ToggleGroup/ToggleGroup.stories.tsx +0 -145
  397. package/src/components/ToggleGroup/ToggleGroup.test.tsx +0 -237
  398. package/src/components/ToggleGroup/ToggleGroup.tsx +0 -165
  399. package/src/components/ToggleGroup/ToggleGroup.types.ts +0 -35
  400. package/src/components/ToggleGroup/ToggleGroupContext.ts +0 -13
  401. package/src/components/ToggleGroup/index.ts +0 -3
  402. package/src/components/Tooltip/Tooltip.stories.tsx +0 -82
  403. package/src/components/Tooltip/Tooltip.test.tsx +0 -49
  404. package/src/components/Tooltip/Tooltip.tsx +0 -185
  405. package/src/components/Tooltip/index.ts +0 -2
  406. package/src/components/TopNavigation/Logo/Logo.test.tsx +0 -21
  407. package/src/components/TopNavigation/Logo/Logo.tsx +0 -20
  408. package/src/components/TopNavigation/Logo/index.ts +0 -1
  409. package/src/components/TopNavigation/Menu/Menu.test.tsx +0 -125
  410. package/src/components/TopNavigation/Menu/Menu.tsx +0 -62
  411. package/src/components/TopNavigation/Menu/MenuItemDropdown.tsx +0 -118
  412. package/src/components/TopNavigation/Menu/MenuItemIcon.tsx +0 -50
  413. package/src/components/TopNavigation/Menu/index.ts +0 -1
  414. package/src/components/TopNavigation/OpenSideNavButton/OpenSideNavButton.tsx +0 -28
  415. package/src/components/TopNavigation/OpenSideNavButton/index.ts +0 -1
  416. package/src/components/TopNavigation/TopNavigation.stories.tsx +0 -42
  417. package/src/components/TopNavigation/TopNavigation.tsx +0 -47
  418. package/src/components/TopNavigation/index.ts +0 -2
  419. package/src/components/VisuallyHidden/VisuallyHidden.mdx +0 -26
  420. package/src/components/VisuallyHidden/VisuallyHidden.stories.tsx +0 -32
  421. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +0 -18
  422. package/src/components/VisuallyHidden/VisuallyHidden.tsx +0 -6
  423. package/src/components/VisuallyHidden/index.ts +0 -1
  424. package/src/docs/tools/DatePickerEvent.stories.mdx +0 -108
  425. package/src/docs/tools/DragDropFileEvent.stories.mdx +0 -75
  426. package/src/docs/tools/conditional.stories.mdx +0 -251
  427. package/src/docs/tools/selectEvent.stories.mdx +0 -121
  428. package/src/hooks/useClickOutside/index.ts +0 -1
  429. package/src/hooks/useClickOutside/useClickOutside.test.tsx +0 -116
  430. package/src/hooks/useClickOutside/useClickOutside.ts +0 -65
  431. package/src/hooks/useDidMount/index.ts +0 -1
  432. package/src/hooks/useDidMount/useDidMount.test.tsx +0 -38
  433. package/src/hooks/useDidMount/useDidMount.ts +0 -20
  434. package/src/hooks/useFingerprint/index.ts +0 -1
  435. package/src/hooks/useFingerprint/useFingerprint.test.ts +0 -76
  436. package/src/hooks/useFingerprint/useFingerprint.ts +0 -94
  437. package/src/hooks/useFocusTrap/index.ts +0 -2
  438. package/src/hooks/useFocusTrap/useFocusTrap.stories.tsx +0 -87
  439. package/src/hooks/useFocusTrap/useFocusTrap.test.tsx +0 -129
  440. package/src/hooks/useFocusTrap/useFocusTrap.ts +0 -187
  441. package/src/hooks/useFocusWithin/index.ts +0 -2
  442. package/src/hooks/useFocusWithin/useFocusWithin.test.tsx +0 -71
  443. package/src/hooks/useFocusWithin/useFocusWithin.ts +0 -62
  444. package/src/hooks/useHeightExpansionToggler/index.ts +0 -2
  445. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.test.tsx +0 -85
  446. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.ts +0 -54
  447. package/src/hooks/useID/index.ts +0 -1
  448. package/src/hooks/useID/useID.ts +0 -18
  449. package/src/hooks/useSelectable/SelectableStrategy.test.ts +0 -424
  450. package/src/hooks/useSelectable/SelectableStrategy.ts +0 -143
  451. package/src/hooks/useSelectable/index.ts +0 -8
  452. package/src/hooks/useSelectable/useSelectable.test.ts +0 -221
  453. package/src/hooks/useSelectable/useSelectable.ts +0 -156
  454. package/src/hooks/useSelectable/useSelectable.types.ts +0 -45
  455. package/src/hooks/useWindowResize/index.ts +0 -1
  456. package/src/hooks/useWindowResize/useWindowResize.ts +0 -27
  457. package/src/index.ts +0 -188
  458. package/src/stories/assets/code-brackets.svg +0 -1
  459. package/src/stories/assets/colors.svg +0 -1
  460. package/src/stories/assets/comments.svg +0 -1
  461. package/src/stories/assets/direction.svg +0 -1
  462. package/src/stories/assets/flow.svg +0 -1
  463. package/src/stories/assets/plugin.svg +0 -1
  464. package/src/stories/assets/repo.svg +0 -1
  465. package/src/stories/assets/stackalt.svg +0 -1
  466. package/src/stories/introduction.stories.mdx +0 -57
  467. package/src/stories/startPage.stories.mdx +0 -95
  468. package/src/styles/activatable.tsx +0 -30
  469. package/src/styles/disableable.tsx +0 -45
  470. package/src/styles/ellipsizable.tsx +0 -14
  471. package/src/styles/focusable.tsx +0 -32
  472. package/src/styles/font.test.ts +0 -31
  473. package/src/styles/font.tsx +0 -40
  474. package/src/styles/hidden.tsx +0 -29
  475. package/src/styles/hoverable.tsx +0 -30
  476. package/src/styles/transition.tsx +0 -25
  477. package/src/styles/typography.test.ts +0 -93
  478. package/src/styles/typography.ts +0 -190
  479. package/src/testing/DatePickerEvent/DatePickerEvent.ts +0 -117
  480. package/src/testing/DatePickerEvent/DateRangePickerEvent.ts +0 -83
  481. package/src/testing/DatePickerEvent/index.ts +0 -2
  482. package/src/testing/DragDropFileEvent/DragDropFileEvent.ts +0 -56
  483. package/src/testing/DragDropFileEvent/index.ts +0 -1
  484. package/src/testing/SelectEvent/SelectEvent.test.tsx +0 -192
  485. package/src/testing/SelectEvent/SelectEvent.ts +0 -264
  486. package/src/testing/SelectEvent/index.ts +0 -1
  487. package/src/testing/getInterpolatedStyles/getInterpolatedStyles.ts +0 -25
  488. package/src/testing/getInterpolatedStyles/index.ts +0 -1
  489. package/src/testing/index.ts +0 -6
  490. package/src/testing/renderWithDragDropFileProvider/index.ts +0 -1
  491. package/src/testing/renderWithDragDropFileProvider/renderWithDragDropFileProvider.tsx +0 -28
  492. package/src/tests/generator.ts +0 -127
  493. package/src/tests/renderer.tsx +0 -39
  494. package/src/theming/index.ts +0 -42
  495. package/src/theming/themes/alice.theme.ts +0 -1022
  496. package/src/theming/themes/index.ts +0 -3
  497. package/src/theming/themes/loadsmart.theme.ts +0 -1019
  498. package/src/theming/themes/miranda-compatibility.theme.ts +0 -972
  499. package/src/theming/theming.helpers.ts +0 -95
  500. package/src/tools/conditional.test.ts +0 -166
  501. package/src/tools/conditional.ts +0 -127
  502. package/src/tools/index.ts +0 -2
  503. package/src/tools/prop.test.ts +0 -52
  504. package/src/tools/prop.ts +0 -36
  505. package/src/utils/toolset/awaitTo.ts +0 -24
  506. package/src/utils/toolset/flatten.ts +0 -3
  507. package/src/utils/toolset/formatBytes.test.ts +0 -45
  508. package/src/utils/toolset/formatBytes.ts +0 -18
  509. package/src/utils/toolset/get.ts +0 -2
  510. package/src/utils/toolset/getID.test.ts +0 -57
  511. package/src/utils/toolset/getID.ts +0 -93
  512. package/src/utils/toolset/getOrdinalSuffix.test.ts +0 -27
  513. package/src/utils/toolset/getOrdinalSuffix.ts +0 -15
  514. package/src/utils/toolset/highlightMatch.test.tsx +0 -32
  515. package/src/utils/toolset/highlightMatch.tsx +0 -32
  516. package/src/utils/toolset/interleave.test.ts +0 -40
  517. package/src/utils/toolset/interleave.ts +0 -23
  518. package/src/utils/toolset/isEmpty.ts +0 -2
  519. package/src/utils/toolset/isThenable.test.ts +0 -40
  520. package/src/utils/toolset/isThenable.ts +0 -14
  521. package/src/utils/toolset/keyboard.ts +0 -50
  522. package/src/utils/toolset/omit.ts +0 -2
  523. package/src/utils/toolset/pluralize.ts +0 -16
  524. package/src/utils/toolset/range.ts +0 -2
  525. package/src/utils/toolset/rem.ts +0 -7
  526. package/src/utils/toolset/styledCompounds.ts +0 -22
  527. package/src/utils/toolset/toArray.ts +0 -16
  528. package/src/utils/types/ColorScheme.ts +0 -3
  529. package/src/utils/types/EventLike.ts +0 -11
  530. package/src/utils/types/InterpolatedStyle.ts +0 -3
  531. package/src/utils/types/Status.ts +0 -8
@@ -1,271 +0,0 @@
1
- import React, { Fragment, forwardRef } from 'react'
2
- import styled from 'styled-components'
3
-
4
- import { Dropdown, GenericDropdown } from 'components/Dropdown'
5
- import { getToken as token } from 'theming'
6
- import { SelectableContext, SelectContext } from './Select.context'
7
- import { Tag } from 'components/Tag'
8
- import { Text } from 'components/Text'
9
- import CloseButton from 'common/CloseButton'
10
- import isEmpty from 'utils/toolset/isEmpty'
11
- import omit from 'utils/toolset/omit'
12
- import pluralize from 'utils/toolset/pluralize'
13
- import SelectTrigger from './SelectTrigger'
14
- import toArray from 'utils/toolset/toArray'
15
- import useSelect from './useSelect'
16
- import SelectOption from './SelectOption'
17
- import SelectEmpty from './SelectEmpty'
18
- import SelectCreatableOption from './SelectCreatableOption'
19
- import { getComponents } from './components'
20
-
21
- import type { DropdownMenuProps } from 'components/Dropdown'
22
- import type {
23
- SelectProps,
24
- useSelectReturn,
25
- SelectStatus,
26
- Components,
27
- SelectableOption,
28
- } from './Select.types'
29
-
30
- const OMITTED_PROPS = [
31
- 'id',
32
- 'name',
33
- 'datasources',
34
- 'onChange',
35
- 'onQueryChange',
36
- 'onCreate',
37
- 'options',
38
- 'value',
39
- ]
40
-
41
- const Loading = styled.span`
42
- display: inline-flex;
43
- flex-direction: row;
44
- align-items: center;
45
- justify-content: center;
46
- width: 2em;
47
-
48
- height: 2em;
49
- padding: ${token('space-xs')};
50
-
51
- font-size: ${token('font-size-3')};
52
- `
53
-
54
- function getCommonClearButtonProps() {
55
- return {
56
- 'data-testid': 'select-trigger-clear',
57
- }
58
- }
59
-
60
- const SelectMenu = forwardRef<HTMLDivElement, DropdownMenuProps>(function SelectMenu(
61
- props: DropdownMenuProps,
62
- ref
63
- ): JSX.Element {
64
- return <Dropdown.Menu ref={ref} {...props} role="listbox" />
65
- })
66
-
67
- function ClearMultiple({ select }: { select: useSelectReturn }) {
68
- const { onClick } = select.getClearProps()
69
- const total = toArray(select.value).length
70
-
71
- return (
72
- <div data-testid="select-trigger-clear-counter">
73
- <Tag
74
- removable
75
- size="default"
76
- variant="accent"
77
- onRemove={onClick}
78
- title={`${total} selected option${pluralize(total)}`}
79
- getRemoveButtonProps={getCommonClearButtonProps}
80
- disabled={select.disabled}
81
- >
82
- {total}
83
- </Tag>
84
- </div>
85
- )
86
- }
87
-
88
- const Divider = styled.hr`
89
- width: calc(100% - ${token('space-m')});
90
- height: 1px;
91
- margin: ${token('space-m')} ${token('space-s')};
92
-
93
- background-color: ${token('color-neutral-lighter')};
94
- border: 0;
95
- `
96
-
97
- const DividerText = styled(Text)`
98
- position: absolute;
99
- top: ${token('space-s')};
100
-
101
- padding-right: ${token('space-xs')};
102
- padding-left: ${token('space-m')};
103
-
104
- background-color: ${token('color-neutral-white')};
105
- `
106
-
107
- function isQuerying(status: SelectStatus) {
108
- return ['pending-query', 'querying'].includes(status)
109
- }
110
-
111
- type SeparatorProps = {
112
- status: SelectStatus
113
- after?: unknown[]
114
- before?: unknown[]
115
- }
116
-
117
- function Separator({ status, after = [], before = [] }: SeparatorProps): JSX.Element {
118
- if (!isQuerying(status)) {
119
- if (isEmpty(after) && !isEmpty(before)) return <Divider />
120
- if (isEmpty(after)) return <Fragment />
121
- }
122
-
123
- return (
124
- <div style={{ position: 'relative' }}>
125
- <Divider />
126
- <DividerText variant="caption-bold" color="color-neutral-light">
127
- {isQuerying(status) ? 'Loading...' : `${after.length} option${pluralize(after.length)}`}
128
- </DividerText>
129
- </div>
130
- )
131
- }
132
-
133
- function renderOptionsSingle(select: useSelectReturn, components?: Components): JSX.Element {
134
- const { Option, Empty, CreatableOption } = getComponents(components)
135
- const isCreatable = select.isCreatable()
136
-
137
- if (isQuerying(select.status) && isEmpty(select.options)) {
138
- return <SelectEmpty>Loading...</SelectEmpty>
139
- }
140
-
141
- if (isEmpty(select.options)) {
142
- if (isCreatable) {
143
- return <CreatableOption />
144
- }
145
-
146
- return <Empty>No results found.</Empty>
147
- }
148
-
149
- return (
150
- <>
151
- {select.createOptionPosition === 'first' && isCreatable ? <CreatableOption /> : null}
152
- {select.options.map((option) => {
153
- const { value } = select.getSelectableOption(option)
154
- return <Option key={String(value)} value={value} />
155
- })}
156
- {select.createOptionPosition === 'last' && isCreatable ? <CreatableOption /> : null}
157
- </>
158
- )
159
- }
160
-
161
- function renderOptionsMultiple(select: useSelectReturn, components?: Components): JSX.Element {
162
- const { Option, Empty, CreatableOption } = getComponents(components)
163
- const isCreatable = select.isCreatable()
164
-
165
- const selectedOptions = Array.from(select.selectable.selected.values()).map((selectable) =>
166
- select.getSelectableOption(selectable)
167
- )
168
-
169
- const remainingOptions = select.options.reduce((remaining, selectable) => {
170
- const option = select.getSelectableOption(selectable)
171
-
172
- if (option.checked) {
173
- return remaining
174
- }
175
-
176
- return [...remaining, option]
177
- }, [] as SelectableOption[])
178
-
179
- let remaining = (
180
- <Fragment>
181
- {select.createOptionPosition === 'first' && isCreatable ? <CreatableOption /> : null}
182
- {remainingOptions.map((option) => (
183
- <Option key={String(option.value)} value={option.value} />
184
- ))}
185
- {select.createOptionPosition === 'last' && isCreatable ? <CreatableOption /> : null}
186
- </Fragment>
187
- )
188
-
189
- if (!isQuerying(select.status) && isEmpty(remainingOptions)) {
190
- remaining = isCreatable ? <CreatableOption /> : <Empty>No more options.</Empty>
191
- }
192
-
193
- if (!isQuerying(select.status) && isEmpty(select.options)) {
194
- remaining = isCreatable ? <CreatableOption /> : <Empty>No results found.</Empty>
195
- }
196
-
197
- return (
198
- <Fragment>
199
- {selectedOptions.map((option) => (
200
- <Option key={String(option.value)} value={option.value} />
201
- ))}
202
- <Separator status={select.status} before={selectedOptions} after={remainingOptions} />
203
- {remaining}
204
- </Fragment>
205
- )
206
- }
207
-
208
- function Select(props: SelectProps): JSX.Element {
209
- const { multiple, placeholder, components, hideClear = false, ...others } = props
210
-
211
- const select = useSelect(props)
212
-
213
- function renderOptions() {
214
- if (multiple) {
215
- return renderOptionsMultiple(select, components)
216
- }
217
-
218
- return renderOptionsSingle(select, components)
219
- }
220
-
221
- function getTrailing() {
222
- if (isQuerying(select.status)) {
223
- return <Loading data-testid="select-trigger-loading">&middot;&middot;&middot;</Loading>
224
- }
225
-
226
- if (!select.value) {
227
- return null
228
- }
229
-
230
- if (multiple) {
231
- return <ClearMultiple select={select} />
232
- }
233
-
234
- if (select.disabled || hideClear) {
235
- return null
236
- }
237
-
238
- return (
239
- <CloseButton
240
- size={12}
241
- {...getCommonClearButtonProps()}
242
- {...select.getClearProps()}
243
- type="button"
244
- />
245
- )
246
- }
247
-
248
- return (
249
- <GenericDropdown {...omit(others, OMITTED_PROPS)} {...select.getDropdownProps()}>
250
- <SelectableContext.Provider value={select.selectable}>
251
- <SelectTrigger
252
- {...select.getTriggerProps()}
253
- trailing={getTrailing()}
254
- placeholder={placeholder}
255
- autoComplete="off"
256
- aria-autocomplete="none"
257
- />
258
- <SelectMenu {...select.getMenuProps()}>
259
- <SelectContext.Provider value={select}>{renderOptions()}</SelectContext.Provider>
260
- </SelectMenu>
261
- </SelectableContext.Provider>
262
- </GenericDropdown>
263
- )
264
- }
265
-
266
- Select.Trigger = SelectTrigger
267
- Select.Option = SelectOption
268
- Select.Empty = SelectEmpty
269
- Select.CreatableOption = SelectCreatableOption
270
-
271
- export default Select
@@ -1,148 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import type EventLike from 'utils/types/EventLike'
3
-
4
- import type { DropdownMenuItemProps, DropdownProps } from 'components/Dropdown'
5
- import type { TextFieldProps } from 'components/TextField'
6
- import type {
7
- Selectable,
8
- SelectableAdapter,
9
- SelectableKeyType,
10
- SelectableState,
11
- } from 'hooks/useSelectable'
12
- import type { useSelectableReturn } from 'hooks/useSelectable/useSelectable.types'
13
- import type { ChangeEvent, ComponentType, FocusEvent, HTMLAttributes } from 'react'
14
-
15
- export type Option = Selectable
16
- export interface GenericOption {
17
- label: string
18
- value: SelectableKeyType
19
- }
20
-
21
- export interface SelectableOption extends GenericOption {
22
- checked: boolean
23
- }
24
-
25
- export interface SelectableOptionProps {
26
- role: string
27
- 'aria-selected': boolean
28
- id: string
29
- onClick: () => boolean | undefined
30
- tabIndex: number
31
- }
32
-
33
- export interface CreatableProps {
34
- onClick: () => void
35
- tabIndex: number
36
- }
37
-
38
- export type OptionKeyType = SelectableKeyType
39
-
40
- export type SelectValue = SelectableState<Option>
41
-
42
- export interface SelectAdapter<T> extends SelectableAdapter<T> {
43
- getLabel: (o: T) => string
44
- }
45
-
46
- export type Adapters = Record<string, SelectAdapter<any>>
47
-
48
- export type SelectDatasource<T> = {
49
- type: string
50
- adapter: SelectAdapter<T>
51
- fetch: ({ query, regex }: { query: string; regex: RegExp }) => T[] | Promise<T[]>
52
- }
53
-
54
- export type SelectDatasourceFunction<T> = () => SelectDatasource<T>
55
-
56
- export type SelectComponentsOptionProps = {
57
- value: SelectOptionProps['value']
58
- }
59
- export type SelectComponentsEmptyProps = {
60
- children: SelectEmptyProps['children']
61
- }
62
- export type CreatableOptionType = () => React.ReactElement<any, any> | null
63
-
64
- export type Components = {
65
- Option?: ComponentType<SelectComponentsOptionProps>
66
- Empty?: ComponentType<SelectComponentsEmptyProps>
67
- CreatableOption?: CreatableOptionType
68
- }
69
-
70
- export type CreateOptionPosition = 'first' | 'last'
71
-
72
- export type OnChange = (event: EventLike<Option | Option[] | null>) => void
73
-
74
- export type OnCreate = (query: string) => Promise<void | Option> | void | Option
75
-
76
- export type OnQueryChange = (e: ChangeEvent<HTMLInputElement>) => void
77
-
78
- export interface SelectProps extends DropdownProps {
79
- name: string
80
- placeholder?: string
81
- value?: Option | Option[] | null
82
- multiple?: boolean
83
- autoFocus?: boolean
84
- datasources?: SelectDatasourceFunction<any>[]
85
- options?: GenericOption[]
86
- components?: Components
87
- onChange?: OnChange
88
- onCreate?: OnCreate
89
- onQueryChange?: OnQueryChange
90
- getInputProps?: () => Partial<TextFieldProps>
91
- isValidNewOption?: ((query: string) => boolean) | boolean
92
- createOptionPosition?: CreateOptionPosition
93
- /**
94
- * Hide the clear button on the Single Select.
95
- */
96
- hideClear?: boolean
97
- }
98
-
99
- export type SelectOptionProps = {
100
- value: SelectableKeyType
101
- } & Omit<DropdownMenuItemProps, keyof SelectableOptionProps | 'value'>
102
-
103
- export type SelectEmptyProps = HTMLAttributes<HTMLDivElement>
104
-
105
- export type SelectCreatableOptionProps = Omit<DropdownMenuItemProps, keyof CreatableProps>
106
-
107
- export type SelectStatus = 'idle' | 'querying' | 'pending-query' | 'queried'
108
-
109
- export type SelectTriggerProps = TextFieldProps
110
-
111
- export type useSelectReturn = {
112
- status: SelectStatus
113
- options: Option[]
114
- value: Selectable | Selectable[] | null
115
- query: string
116
- disabled: boolean
117
- selectable: useSelectableReturn<Option>
118
- getMenuProps: () => {
119
- ref: (container: HTMLElement | null) => void
120
- role: string
121
- }
122
- getSelectableOption: (option: Option) => SelectableOption
123
- getOption: (value: SelectableKeyType) => Option | undefined
124
- getOptionProps: ({ option }: { option: Option }) => SelectableOptionProps
125
- getTriggerProps: () => {
126
- ref: (node: HTMLInputElement | null) => void
127
- value: string
128
- onChange: (e: ChangeEvent<HTMLInputElement>) => void
129
- onFocus: (e: FocusEvent<HTMLInputElement>) => void
130
- }
131
- getClearProps: () => {
132
- onClick: () => void
133
- }
134
- getDropdownProps: () => {
135
- toggle: () => void
136
- expanded: boolean
137
- onBlur: (event?: MouseEvent | TouchEvent | KeyboardEvent) => void
138
- }
139
- getCreatebleProps: () => CreatableProps
140
- isCreatable: () => boolean
141
- createOptionPosition?: CreateOptionPosition
142
- }
143
-
144
- export type useSelectExternalReturn = {
145
- getOption: useSelectReturn['getOption']
146
- query: useSelectReturn['query']
147
- isChecked: (option: Option) => boolean
148
- }
@@ -1,20 +0,0 @@
1
- import React, { useContext } from 'react'
2
- import { Dropdown } from 'components/Dropdown'
3
- import { SelectContext } from './Select.context'
4
- import type { SelectCreatableOptionProps } from './Select.types'
5
-
6
- function SelectCreatableOption({ children, ...rest }: SelectCreatableOptionProps): JSX.Element {
7
- const select =
8
- useContext(SelectContext) ||
9
- (() => {
10
- throw new Error('SelectCreatableOption should be wrapped in a SelectContext')
11
- })()
12
-
13
- return (
14
- <Dropdown.Item {...rest} {...select.getCreatebleProps()}>
15
- {children || `Add "${select.query}"`}
16
- </Dropdown.Item>
17
- )
18
- }
19
-
20
- export default SelectCreatableOption
@@ -1,15 +0,0 @@
1
- import { render, screen } from '@testing-library/react'
2
- import React from 'react'
3
-
4
- import type { SelectEmptyProps } from './Select.types'
5
- import SelectEmpty from './SelectEmpty'
6
-
7
- const setup = (overrides: Partial<SelectEmptyProps>) => render(<SelectEmpty {...overrides} />)
8
-
9
- describe('<SelectEmpty />', () => {
10
- it('render correctly', () => {
11
- setup({ children: 'Just some content' })
12
-
13
- screen.getByText('Just some content')
14
- })
15
- })
@@ -1,29 +0,0 @@
1
- import React from 'react'
2
- import styled from 'styled-components'
3
-
4
- import { getToken as token } from 'theming'
5
- import type { SelectEmptyProps } from './Select.types'
6
-
7
- const Wrapper = styled.div`
8
- display: flex;
9
- flex-direction: column;
10
- align-items: flex-start;
11
- justify-content: center;
12
-
13
- box-sizing: border-box;
14
- margin: 0 ${token('space-s')};
15
- padding: ${token('space-s')};
16
-
17
- color: ${token('color-neutral')};
18
-
19
- font-size: 1em;
20
- line-height: ${token('font-height-3')};
21
-
22
- background: ${token('color-transparent')};
23
- `
24
-
25
- function SelectEmpty({ children, ...others }: SelectEmptyProps): JSX.Element {
26
- return <Wrapper {...others}>{children}</Wrapper>
27
- }
28
-
29
- export default SelectEmpty
@@ -1,78 +0,0 @@
1
- import React from 'react'
2
- import { render, screen, waitFor } from '@testing-library/react'
3
- import SelectOption from './SelectOption'
4
- import { SelectContext } from './Select.context'
5
- import useSelect from './useSelect'
6
- import type { Option, SelectOptionProps, SelectProps, useSelectReturn } from './Select.types'
7
-
8
- type Props = {
9
- optionProps: SelectOptionProps
10
- selectProps: SelectProps & { query: string }
11
- }
12
-
13
- const options = [{ value: '1', label: 'Apple' }]
14
- const Setup = ({ optionProps, selectProps }: Props) => {
15
- const select = useSelect({ options, ...selectProps })
16
- const { query } = selectProps
17
- select.query = query
18
-
19
- return (
20
- <SelectContext.Provider value={select as unknown as useSelectReturn}>
21
- <SelectOption {...optionProps} />
22
- </SelectContext.Provider>
23
- )
24
- }
25
-
26
- describe('SelectOption', () => {
27
- const setup = (
28
- optionProps: SelectOptionProps,
29
- selectProps: Partial<Props['selectProps']> = {}
30
- ) => {
31
- render(<Setup selectProps={selectProps as Props['selectProps']} optionProps={optionProps} />)
32
- }
33
-
34
- it.each([{ multiple: false }, { multiple: true }])(
35
- 'renders the children when it is provided - %s',
36
- (props) => {
37
- setup({ children: 'foo', value: '1' }, props)
38
-
39
- expect(screen.getByText('foo')).toBeInTheDocument()
40
- }
41
- )
42
-
43
- it.each([{ multiple: false }, { multiple: true }])(
44
- 'renders option label when value is given with no children - %s',
45
- async (props) => {
46
- setup({ value: '1' }, props)
47
-
48
- await waitFor(() => {
49
- expect(screen.getByText('Apple')).toBeInTheDocument()
50
- })
51
- }
52
- )
53
-
54
- it.each([
55
- { multiple: false },
56
- { multiple: true },
57
- {
58
- value: options[0] as Option,
59
- },
60
- ])('renders option label and highlights the given query - %s', async (props) => {
61
- setup({ value: '1' }, { query: 'App', ...props })
62
-
63
- await waitFor(() => {
64
- expect(screen.getByText(/^app$/i)).toBeInTheDocument()
65
- })
66
- expect(screen.getByTestId('dropdown-menu-item')).toHaveTextContent('Apple')
67
- })
68
-
69
- it('renders option label and does not highlight the given query when the option is checked - multiple', async () => {
70
- const value = options[0] as Option
71
- setup({ value: '1' }, { query: 'App', value, multiple: true })
72
-
73
- expect(screen.getByText('Apple')).toBeInTheDocument()
74
- await waitFor(() => {
75
- expect(screen.queryByText(/^app$/i)).not.toBeInTheDocument()
76
- })
77
- })
78
- })
@@ -1,79 +0,0 @@
1
- import React, { useContext } from 'react'
2
- import styled from 'styled-components'
3
-
4
- import { Checkbox } from 'components/Checkbox'
5
- import { Dropdown } from 'components/Dropdown'
6
- import { HighlightMatch } from 'components/HighlightMatch'
7
- import { Icon as DefaultIcon } from 'components/Icon'
8
- import { Group as DefaultGroup } from 'components/Layout'
9
- import conditional, { whenProps } from 'tools/conditional'
10
- import { getToken as token } from 'theming'
11
-
12
- import { SelectContext } from './Select.context'
13
-
14
- import type { DropdownMenuItemProps } from 'components/Dropdown'
15
- import type { SelectOptionProps } from './Select.types'
16
-
17
- const Group = styled(DefaultGroup).attrs({
18
- as: 'span',
19
- })`
20
- /* placeholder */
21
- `
22
-
23
- const Icon = styled(DefaultIcon)`
24
- color: ${token('select-selected-option-check-color')};
25
- `
26
-
27
- const DefaultSelectOption = styled(Dropdown.Item)<DropdownMenuItemProps>`
28
- background: ${conditional({
29
- 'select-selected-option-background-color': whenProps({ 'aria-selected': true }),
30
- 'color-neutral-white': whenProps({ 'aria-selected': false }),
31
- })};
32
- `
33
-
34
- function SelectOption({
35
- children,
36
- value,
37
- leading,
38
- trailing,
39
- ...rest
40
- }: SelectOptionProps): JSX.Element {
41
- const select =
42
- useContext(SelectContext) ||
43
- (() => {
44
- throw new Error('Options should be wrapped in a SelectContext')
45
- })()
46
-
47
- const type = select.selectable.type()
48
- const option = select.getOption(value) || {}
49
- const { checked, label } = select.getSelectableOption(option)
50
-
51
- function renderContent() {
52
- if (children) return children
53
- if (checked && type === 'multiple') return label
54
-
55
- return <HighlightMatch text={label} match={select.query} />
56
- }
57
-
58
- return (
59
- <DefaultSelectOption
60
- {...rest}
61
- {...select.getOptionProps({ option })}
62
- leading={
63
- type === 'multiple' ? (
64
- <Group align="center" space="s">
65
- <Checkbox scale="small" defaultChecked={checked} />
66
- {leading}
67
- </Group>
68
- ) : (
69
- leading
70
- )
71
- }
72
- trailing={type === 'single' ? checked ? <Icon name="check" /> : null : trailing}
73
- >
74
- {renderContent()}
75
- </DefaultSelectOption>
76
- )
77
- }
78
-
79
- export default SelectOption