@loadsmart/loadsmart-ui 7.6.0 → 7.7.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/README.md +15 -1
  2. package/dist/DragDropFile.context-oKnUu6d3.js +33 -0
  3. package/dist/{DragDropFile.context-D-EBrXnw.js.map → DragDropFile.context-oKnUu6d3.js.map} +1 -1
  4. package/dist/index.js +9104 -253
  5. package/dist/index.js.map +1 -1
  6. package/dist/miranda-compatibility.theme-C_FEacSw.js +2528 -0
  7. package/dist/{miranda-compatibility.theme-ChPV-BBw.js.map → miranda-compatibility.theme-C_FEacSw.js.map} +1 -1
  8. package/dist/prop-B8LY6G2g.js +81 -0
  9. package/dist/{prop-BwhJNJHO.js.map → prop-B8LY6G2g.js.map} +1 -1
  10. package/dist/testing/index.js +282 -1
  11. package/dist/testing/index.js.map +1 -1
  12. package/dist/theming/index.js +22 -1
  13. package/dist/theming/index.js.map +1 -1
  14. package/dist/toArray-Dxb1kUxx.js +14 -0
  15. package/dist/{toArray-BW3gx_gH.js.map → toArray-Dxb1kUxx.js.map} +1 -1
  16. package/dist/tools/index.js +6 -1
  17. package/dist/tools/index.js.map +1 -1
  18. package/package.json +24 -54
  19. package/dist/DragDropFile.context-D-EBrXnw.js +0 -2
  20. package/dist/DragDropFile.context-jVTIKfj5.mjs +0 -29
  21. package/dist/DragDropFile.context-jVTIKfj5.mjs.map +0 -1
  22. package/dist/index.mjs +0 -8046
  23. package/dist/index.mjs.map +0 -1
  24. package/dist/miranda-compatibility.theme-ChPV-BBw.js +0 -2
  25. package/dist/miranda-compatibility.theme-DQDHkWzC.mjs +0 -2469
  26. package/dist/miranda-compatibility.theme-DQDHkWzC.mjs.map +0 -1
  27. package/dist/prop-5m3D4883.mjs +0 -54
  28. package/dist/prop-5m3D4883.mjs.map +0 -1
  29. package/dist/prop-BwhJNJHO.js +0 -2
  30. package/dist/testing/index.mjs +0 -228
  31. package/dist/testing/index.mjs.map +0 -1
  32. package/dist/theming/index.mjs +0 -20
  33. package/dist/theming/index.mjs.map +0 -1
  34. package/dist/toArray-BW3gx_gH.js +0 -2
  35. package/dist/toArray-DqgeO2ua.mjs +0 -8
  36. package/dist/toArray-DqgeO2ua.mjs.map +0 -1
  37. package/dist/tools/index.mjs +0 -7
  38. package/dist/tools/index.mjs.map +0 -1
  39. package/src/@types/@loadsmart/utilsFunction.d.ts +0 -5
  40. package/src/@types/@loadsmart/utilsObject.d.ts +0 -5
  41. package/src/@types/svg.d.ts +0 -4
  42. package/src/addons/Theme/register.js +0 -590
  43. package/src/common/BackButton/BackButton.tsx +0 -18
  44. package/src/common/BackButton/index.ts +0 -2
  45. package/src/common/CloseButton/CloseButton.tsx +0 -55
  46. package/src/common/CloseButton/index.ts +0 -2
  47. package/src/common/SelectionWrapper.tsx +0 -130
  48. package/src/components/Accordion/Accordion.context.tsx +0 -36
  49. package/src/components/Accordion/Accordion.stories.tsx +0 -186
  50. package/src/components/Accordion/Accordion.test.tsx +0 -209
  51. package/src/components/Accordion/Accordion.tsx +0 -233
  52. package/src/components/Accordion/index.ts +0 -2
  53. package/src/components/Banner/Banner.stories.tsx +0 -213
  54. package/src/components/Banner/Banner.test.tsx +0 -118
  55. package/src/components/Banner/Banner.tsx +0 -418
  56. package/src/components/Banner/index.tsx +0 -2
  57. package/src/components/Breadcrumbs/Breadbrumbs.test.tsx +0 -125
  58. package/src/components/Breadcrumbs/Breadcrumb.tsx +0 -92
  59. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +0 -21
  60. package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -54
  61. package/src/components/Breadcrumbs/index.ts +0 -4
  62. package/src/components/Button/Button.stories.tsx +0 -174
  63. package/src/components/Button/Button.test.tsx +0 -57
  64. package/src/components/Button/Button.tsx +0 -576
  65. package/src/components/Button/index.tsx +0 -2
  66. package/src/components/Calendar/Calendar.helpers.ts +0 -15
  67. package/src/components/Calendar/Calendar.stories.tsx +0 -168
  68. package/src/components/Calendar/Calendar.test.tsx +0 -316
  69. package/src/components/Calendar/Calendar.tsx +0 -130
  70. package/src/components/Calendar/Calendar.types.ts +0 -68
  71. package/src/components/Calendar/Date.helper.test.ts +0 -847
  72. package/src/components/Calendar/Date.helper.ts +0 -461
  73. package/src/components/Calendar/DateFormat.helper.test.ts +0 -171
  74. package/src/components/Calendar/DateFormat.helper.ts +0 -195
  75. package/src/components/Calendar/Month.helper.test.ts +0 -187
  76. package/src/components/Calendar/Month.helper.ts +0 -172
  77. package/src/components/Calendar/PickerModeToggle.tsx +0 -61
  78. package/src/components/Calendar/Pickers/DayPicker.test.tsx +0 -85
  79. package/src/components/Calendar/Pickers/DayPicker.tsx +0 -127
  80. package/src/components/Calendar/Pickers/MonthPicker.test.tsx +0 -77
  81. package/src/components/Calendar/Pickers/MonthPicker.tsx +0 -51
  82. package/src/components/Calendar/Pickers/PickerButton.tsx +0 -119
  83. package/src/components/Calendar/Pickers/YearPicker.test.tsx +0 -75
  84. package/src/components/Calendar/Pickers/YearPicker.tsx +0 -52
  85. package/src/components/Calendar/index.ts +0 -10
  86. package/src/components/Calendar/useCalendar.ts +0 -190
  87. package/src/components/Calendar/usePickerMode.ts +0 -48
  88. package/src/components/Card/Card.stories.tsx +0 -117
  89. package/src/components/Card/Card.test.tsx +0 -139
  90. package/src/components/Card/Card.tsx +0 -106
  91. package/src/components/Card/CardTitle.tsx +0 -43
  92. package/src/components/Card/index.ts +0 -2
  93. package/src/components/Checkbox/Checkbox.stories.tsx +0 -79
  94. package/src/components/Checkbox/Checkbox.test.tsx +0 -66
  95. package/src/components/Checkbox/Checkbox.tsx +0 -170
  96. package/src/components/Checkbox/index.ts +0 -2
  97. package/src/components/DatePicker/DatePicker.stories.tsx +0 -113
  98. package/src/components/DatePicker/DatePicker.test.tsx +0 -174
  99. package/src/components/DatePicker/DatePicker.tsx +0 -140
  100. package/src/components/DatePicker/DatePicker.types.ts +0 -30
  101. package/src/components/DatePicker/DateRangePicker.stories.tsx +0 -128
  102. package/src/components/DatePicker/DateRangePicker.test.tsx +0 -267
  103. package/src/components/DatePicker/DateRangePicker.tsx +0 -110
  104. package/src/components/DatePicker/index.ts +0 -3
  105. package/src/components/DatePicker/useDatePicker.ts +0 -201
  106. package/src/components/DatePicker/useDateRangePicker.ts +0 -224
  107. package/src/components/Dialog/Dialog.stories.tsx +0 -227
  108. package/src/components/Dialog/Dialog.test.tsx +0 -74
  109. package/src/components/Dialog/Dialog.tsx +0 -139
  110. package/src/components/Dialog/index.tsx +0 -4
  111. package/src/components/Dialog/useDialog.tsx +0 -59
  112. package/src/components/DragDropFile/DragDropFile.context.tsx +0 -39
  113. package/src/components/DragDropFile/DragDropFile.stories.tsx +0 -183
  114. package/src/components/DragDropFile/DragDropFile.tsx +0 -11
  115. package/src/components/DragDropFile/components/DropZone.test.tsx +0 -108
  116. package/src/components/DragDropFile/components/DropZone.tsx +0 -145
  117. package/src/components/DragDropFile/components/FileItem.tsx +0 -117
  118. package/src/components/DragDropFile/components/FileList.test.tsx +0 -119
  119. package/src/components/DragDropFile/components/FileList.tsx +0 -47
  120. package/src/components/DragDropFile/components/Wrapper.tsx +0 -22
  121. package/src/components/DragDropFile/index.ts +0 -9
  122. package/src/components/DragDropFile/mocks.ts +0 -23
  123. package/src/components/DragDropFile/styles.tsx +0 -81
  124. package/src/components/DragDropFile/types.ts +0 -85
  125. package/src/components/Drawer/Drawer.stories.tsx +0 -83
  126. package/src/components/Drawer/Drawer.test.tsx +0 -90
  127. package/src/components/Drawer/Drawer.tsx +0 -225
  128. package/src/components/Drawer/index.ts +0 -4
  129. package/src/components/Dropdown/Dropdown.context.ts +0 -13
  130. package/src/components/Dropdown/Dropdown.fixtures.ts +0 -15
  131. package/src/components/Dropdown/Dropdown.stories.tsx +0 -259
  132. package/src/components/Dropdown/Dropdown.test.tsx +0 -173
  133. package/src/components/Dropdown/Dropdown.tsx +0 -141
  134. package/src/components/Dropdown/Dropdown.types.ts +0 -59
  135. package/src/components/Dropdown/DropdownMenu.tsx +0 -263
  136. package/src/components/Dropdown/DropdownTrigger.tsx +0 -368
  137. package/src/components/Dropdown/index.ts +0 -15
  138. package/src/components/Dropdown/useDropdown.test.ts +0 -96
  139. package/src/components/Dropdown/useDropdown.ts +0 -65
  140. package/src/components/EmptyState/EmptyState.mocks.tsx +0 -60
  141. package/src/components/EmptyState/EmptyState.stories.tsx +0 -239
  142. package/src/components/EmptyState/EmptyState.test.tsx +0 -101
  143. package/src/components/EmptyState/EmptyState.tsx +0 -22
  144. package/src/components/EmptyState/EmptyState.types.ts +0 -59
  145. package/src/components/EmptyState/EmptyStateWithIcon.tsx +0 -42
  146. package/src/components/EmptyState/EmptyStateWithIllustration.tsx +0 -72
  147. package/src/components/EmptyState/Illustration.tsx +0 -29
  148. package/src/components/EmptyState/index.ts +0 -4
  149. package/src/components/ErrorMessage/ErrorMessage.stories.tsx +0 -26
  150. package/src/components/ErrorMessage/ErrorMessage.test.tsx +0 -24
  151. package/src/components/ErrorMessage/ErrorMessage.tsx +0 -19
  152. package/src/components/ErrorMessage/index.ts +0 -2
  153. package/src/components/HighlightMatch/HighlightMatch.stories.tsx +0 -24
  154. package/src/components/HighlightMatch/HighlightMatch.test.tsx +0 -37
  155. package/src/components/HighlightMatch/HighlightMatch.tsx +0 -29
  156. package/src/components/HighlightMatch/index.ts +0 -2
  157. package/src/components/Icon/Icon.tsx +0 -55
  158. package/src/components/Icon/assets/back.svg +0 -4
  159. package/src/components/Icon/assets/burger-menu.svg +0 -3
  160. package/src/components/Icon/assets/calendar.svg +0 -5
  161. package/src/components/Icon/assets/caret-down.svg +0 -4
  162. package/src/components/Icon/assets/caret-left.svg +0 -4
  163. package/src/components/Icon/assets/caret-right-last.svg +0 -4
  164. package/src/components/Icon/assets/caret-right.svg +0 -4
  165. package/src/components/Icon/assets/check.svg +0 -4
  166. package/src/components/Icon/assets/chevron-down.svg +0 -3
  167. package/src/components/Icon/assets/circle.svg +0 -3
  168. package/src/components/Icon/assets/close.svg +0 -4
  169. package/src/components/Icon/assets/dots-horizontal.svg +0 -1
  170. package/src/components/Icon/assets/information.svg +0 -4
  171. package/src/components/Icon/assets/minus.svg +0 -4
  172. package/src/components/Icon/assets/plus.svg +0 -4
  173. package/src/components/Icon/assets/refresh.svg +0 -3
  174. package/src/components/Icon/assets/sort-asc.svg +0 -7
  175. package/src/components/Icon/assets/sort-desc.svg +0 -7
  176. package/src/components/Icon/assets/sort.svg +0 -7
  177. package/src/components/Icon/assets/upload.svg +0 -3
  178. package/src/components/Icon/assets/warning.svg +0 -4
  179. package/src/components/Icon/index.ts +0 -2
  180. package/src/components/IconFactory/IconFactory.fixtures.tsx +0 -31
  181. package/src/components/IconFactory/IconFactory.stories.tsx +0 -120
  182. package/src/components/IconFactory/IconFactory.test.tsx +0 -36
  183. package/src/components/IconFactory/IconFactory.tsx +0 -75
  184. package/src/components/IconFactory/index.ts +0 -2
  185. package/src/components/Label/Label.stories.tsx +0 -47
  186. package/src/components/Label/Label.test.tsx +0 -80
  187. package/src/components/Label/Label.tsx +0 -120
  188. package/src/components/Label/index.ts +0 -2
  189. package/src/components/Layout/Box.tsx +0 -98
  190. package/src/components/Layout/Grid.tsx +0 -42
  191. package/src/components/Layout/Group.tsx +0 -55
  192. package/src/components/Layout/Layout.stories.tsx +0 -412
  193. package/src/components/Layout/Layout.tsx +0 -19
  194. package/src/components/Layout/Layout.types.ts +0 -9
  195. package/src/components/Layout/Layout.utils.ts +0 -20
  196. package/src/components/Layout/Sidebar.tsx +0 -75
  197. package/src/components/Layout/Stack.tsx +0 -63
  198. package/src/components/Layout/Switcher.tsx +0 -48
  199. package/src/components/Layout/index.tsx +0 -8
  200. package/src/components/Link/Link.stories.tsx +0 -22
  201. package/src/components/Link/Link.test.tsx +0 -79
  202. package/src/components/Link/Link.tsx +0 -114
  203. package/src/components/Link/index.ts +0 -3
  204. package/src/components/Link/useSafeLink.ts +0 -49
  205. package/src/components/Loaders/LoadingBar.stories.tsx +0 -36
  206. package/src/components/Loaders/LoadingBar.test.tsx +0 -35
  207. package/src/components/Loaders/LoadingBar.tsx +0 -65
  208. package/src/components/Loaders/LoadingDots.stories.tsx +0 -69
  209. package/src/components/Loaders/LoadingDots.test.tsx +0 -22
  210. package/src/components/Loaders/LoadingDots.tsx +0 -68
  211. package/src/components/Loaders/Spinner.stories.tsx +0 -24
  212. package/src/components/Loaders/Spinner.test.tsx +0 -35
  213. package/src/components/Loaders/Spinner.tsx +0 -68
  214. package/src/components/Loaders/index.tsx +0 -3
  215. package/src/components/Modal/Modal.stories.tsx +0 -121
  216. package/src/components/Modal/Modal.test.tsx +0 -46
  217. package/src/components/Modal/Modal.tsx +0 -163
  218. package/src/components/Modal/index.tsx +0 -2
  219. package/src/components/Pagination/Pagination.constants.ts +0 -7
  220. package/src/components/Pagination/Pagination.helper.ts +0 -88
  221. package/src/components/Pagination/Pagination.stories.tsx +0 -29
  222. package/src/components/Pagination/Pagination.test.tsx +0 -102
  223. package/src/components/Pagination/Pagination.tsx +0 -34
  224. package/src/components/Pagination/Pagination.types.ts +0 -55
  225. package/src/components/Pagination/PaginationItem.tsx +0 -74
  226. package/src/components/Pagination/index.ts +0 -2
  227. package/src/components/Pagination/usePagination.test.ts +0 -188
  228. package/src/components/Pagination/usePagination.ts +0 -87
  229. package/src/components/Popover/Popover.stories.tsx +0 -50
  230. package/src/components/Popover/Popover.test.tsx +0 -22
  231. package/src/components/Popover/Popover.tsx +0 -110
  232. package/src/components/Popover/Popover.types.ts +0 -39
  233. package/src/components/Popover/index.ts +0 -11
  234. package/src/components/ProgressBar/ProgressBar.stories.tsx +0 -47
  235. package/src/components/ProgressBar/ProgressBar.test.tsx +0 -40
  236. package/src/components/ProgressBar/ProgressBar.tsx +0 -89
  237. package/src/components/ProgressBar/index.tsx +0 -2
  238. package/src/components/Radio/Radio.stories.tsx +0 -75
  239. package/src/components/Radio/Radio.test.tsx +0 -66
  240. package/src/components/Radio/Radio.tsx +0 -153
  241. package/src/components/Radio/index.ts +0 -2
  242. package/src/components/Section/Section.test.tsx +0 -35
  243. package/src/components/Section/Section.tsx +0 -66
  244. package/src/components/Section/Sections.stories.tsx +0 -56
  245. package/src/components/Section/index.ts +0 -2
  246. package/src/components/Select/Select.constants.ts +0 -12
  247. package/src/components/Select/Select.context.ts +0 -11
  248. package/src/components/Select/Select.fixtures.ts +0 -167
  249. package/src/components/Select/Select.stories.tsx +0 -780
  250. package/src/components/Select/Select.test.tsx +0 -1109
  251. package/src/components/Select/Select.tsx +0 -271
  252. package/src/components/Select/Select.types.ts +0 -148
  253. package/src/components/Select/SelectCreatableOption.tsx +0 -20
  254. package/src/components/Select/SelectEmpty.test.tsx +0 -15
  255. package/src/components/Select/SelectEmpty.tsx +0 -29
  256. package/src/components/Select/SelectOption.test.tsx +0 -78
  257. package/src/components/Select/SelectOption.tsx +0 -79
  258. package/src/components/Select/SelectTrigger.tsx +0 -83
  259. package/src/components/Select/components.tsx +0 -14
  260. package/src/components/Select/index.ts +0 -12
  261. package/src/components/Select/useSelect.helpers.test.ts +0 -184
  262. package/src/components/Select/useSelect.helpers.ts +0 -63
  263. package/src/components/Select/useSelect.test.ts +0 -207
  264. package/src/components/Select/useSelect.ts +0 -540
  265. package/src/components/Select/useSelectExternal.ts +0 -26
  266. package/src/components/SideNavigation/Logo/Logo.test.tsx +0 -19
  267. package/src/components/SideNavigation/Logo/Logo.tsx +0 -26
  268. package/src/components/SideNavigation/Logo/index.ts +0 -1
  269. package/src/components/SideNavigation/Menu/Menu.test.tsx +0 -65
  270. package/src/components/SideNavigation/Menu/Menu.tsx +0 -53
  271. package/src/components/SideNavigation/Menu/MenuBaseItem.tsx +0 -64
  272. package/src/components/SideNavigation/Menu/MenuExpandable.tsx +0 -107
  273. package/src/components/SideNavigation/Menu/MenuLink.tsx +0 -37
  274. package/src/components/SideNavigation/Menu/index.ts +0 -1
  275. package/src/components/SideNavigation/Separator/Separator.test.tsx +0 -14
  276. package/src/components/SideNavigation/Separator/Separator.tsx +0 -20
  277. package/src/components/SideNavigation/Separator/index.ts +0 -1
  278. package/src/components/SideNavigation/SideNavigation.stories.tsx +0 -69
  279. package/src/components/SideNavigation/SideNavigation.test.tsx +0 -21
  280. package/src/components/SideNavigation/SideNavigation.tsx +0 -47
  281. package/src/components/SideNavigation/index.ts +0 -5
  282. package/src/components/SideNavigation/useSideNavigation.ts +0 -36
  283. package/src/components/Steps/ProgressSteps/ProgressStep.tsx +0 -163
  284. package/src/components/Steps/ProgressSteps/ProgressSteps.tsx +0 -37
  285. package/src/components/Steps/ProgressSteps/index.ts +0 -1
  286. package/src/components/Steps/Steps.fixtures.ts +0 -11
  287. package/src/components/Steps/Steps.helpers.ts +0 -11
  288. package/src/components/Steps/Steps.stories.tsx +0 -65
  289. package/src/components/Steps/Steps.test.tsx +0 -78
  290. package/src/components/Steps/Steps.tsx +0 -53
  291. package/src/components/Steps/Steps.types.ts +0 -5
  292. package/src/components/Steps/StepsContext.ts +0 -5
  293. package/src/components/Steps/StepsStep.tsx +0 -58
  294. package/src/components/Steps/index.ts +0 -6
  295. package/src/components/Steps/useStep.test.tsx +0 -217
  296. package/src/components/Steps/useSteps.ts +0 -131
  297. package/src/components/Switch/Switch.stories.tsx +0 -65
  298. package/src/components/Switch/Switch.test.tsx +0 -60
  299. package/src/components/Switch/Switch.tsx +0 -209
  300. package/src/components/Switch/index.ts +0 -2
  301. package/src/components/Table/Selection.tsx +0 -202
  302. package/src/components/Table/Table.fixtures.ts +0 -101
  303. package/src/components/Table/Table.stories.tsx +0 -568
  304. package/src/components/Table/Table.test.tsx +0 -310
  305. package/src/components/Table/Table.tsx +0 -523
  306. package/src/components/Table/Table.types.ts +0 -93
  307. package/src/components/Table/TableSortHandle.tsx +0 -31
  308. package/src/components/Table/index.tsx +0 -2
  309. package/src/components/Table/useSortBy.test.ts +0 -96
  310. package/src/components/Table/useSortBy.ts +0 -92
  311. package/src/components/Table/useSortBy.types.ts +0 -21
  312. package/src/components/TablePagination/RowsPerPage.tsx +0 -81
  313. package/src/components/TablePagination/TablePagination.stories.tsx +0 -42
  314. package/src/components/TablePagination/TablePagination.styles.ts +0 -13
  315. package/src/components/TablePagination/TablePagination.test.tsx +0 -111
  316. package/src/components/TablePagination/TablePagination.tsx +0 -49
  317. package/src/components/TablePagination/TablePagination.types.ts +0 -69
  318. package/src/components/TablePagination/TablePaginationActions.tsx +0 -144
  319. package/src/components/TablePagination/index.ts +0 -2
  320. package/src/components/Tabs/Tabs.stories.tsx +0 -78
  321. package/src/components/Tabs/Tabs.test.tsx +0 -103
  322. package/src/components/Tabs/Tabs.tsx +0 -287
  323. package/src/components/Tabs/Tabs.types.ts +0 -7
  324. package/src/components/Tabs/TabsContext.ts +0 -10
  325. package/src/components/Tabs/index.ts +0 -2
  326. package/src/components/Tag/Tag.stories.tsx +0 -112
  327. package/src/components/Tag/Tag.test.tsx +0 -19
  328. package/src/components/Tag/Tag.tsx +0 -393
  329. package/src/components/Tag/index.ts +0 -2
  330. package/src/components/Text/Text.stories.tsx +0 -59
  331. package/src/components/Text/Text.test.tsx +0 -48
  332. package/src/components/Text/Text.tsx +0 -14
  333. package/src/components/Text/index.ts +0 -2
  334. package/src/components/TextField/TextField.stories.tsx +0 -90
  335. package/src/components/TextField/TextField.test.tsx +0 -36
  336. package/src/components/TextField/TextField.tsx +0 -244
  337. package/src/components/TextField/index.ts +0 -6
  338. package/src/components/TextField/useTextField.tsx +0 -26
  339. package/src/components/Textarea/Textarea.stories.tsx +0 -101
  340. package/src/components/Textarea/Textarea.test.tsx +0 -14
  341. package/src/components/Textarea/Textarea.tsx +0 -230
  342. package/src/components/Textarea/index.ts +0 -2
  343. package/src/components/Toast/Toast.stories.tsx +0 -50
  344. package/src/components/Toast/Toast.test.tsx +0 -24
  345. package/src/components/Toast/Toast.tsx +0 -141
  346. package/src/components/Toast/icons/close.svg +0 -3
  347. package/src/components/Toast/icons/danger.svg +0 -4
  348. package/src/components/Toast/icons/neutral.svg +0 -4
  349. package/src/components/Toast/icons/success.svg +0 -3
  350. package/src/components/Toast/icons/warning.svg +0 -4
  351. package/src/components/Toast/index.tsx +0 -2
  352. package/src/components/ToggleGroup/Toggle.test.tsx +0 -76
  353. package/src/components/ToggleGroup/Toggle.tsx +0 -158
  354. package/src/components/ToggleGroup/ToggleGroup.constants.ts +0 -16
  355. package/src/components/ToggleGroup/ToggleGroup.stories.tsx +0 -145
  356. package/src/components/ToggleGroup/ToggleGroup.test.tsx +0 -237
  357. package/src/components/ToggleGroup/ToggleGroup.tsx +0 -165
  358. package/src/components/ToggleGroup/ToggleGroup.types.ts +0 -35
  359. package/src/components/ToggleGroup/ToggleGroupContext.ts +0 -13
  360. package/src/components/ToggleGroup/index.ts +0 -3
  361. package/src/components/Tooltip/Tooltip.stories.tsx +0 -82
  362. package/src/components/Tooltip/Tooltip.test.tsx +0 -49
  363. package/src/components/Tooltip/Tooltip.tsx +0 -185
  364. package/src/components/Tooltip/index.ts +0 -2
  365. package/src/components/TopNavigation/Logo/Logo.test.tsx +0 -21
  366. package/src/components/TopNavigation/Logo/Logo.tsx +0 -20
  367. package/src/components/TopNavigation/Logo/index.ts +0 -1
  368. package/src/components/TopNavigation/Menu/Menu.test.tsx +0 -125
  369. package/src/components/TopNavigation/Menu/Menu.tsx +0 -62
  370. package/src/components/TopNavigation/Menu/MenuItemDropdown.tsx +0 -118
  371. package/src/components/TopNavigation/Menu/MenuItemIcon.tsx +0 -50
  372. package/src/components/TopNavigation/Menu/index.ts +0 -1
  373. package/src/components/TopNavigation/OpenSideNavButton/OpenSideNavButton.tsx +0 -28
  374. package/src/components/TopNavigation/OpenSideNavButton/index.ts +0 -1
  375. package/src/components/TopNavigation/TopNavigation.stories.tsx +0 -42
  376. package/src/components/TopNavigation/TopNavigation.tsx +0 -47
  377. package/src/components/TopNavigation/index.ts +0 -2
  378. package/src/components/VisuallyHidden/VisuallyHidden.mdx +0 -26
  379. package/src/components/VisuallyHidden/VisuallyHidden.stories.tsx +0 -32
  380. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +0 -18
  381. package/src/components/VisuallyHidden/VisuallyHidden.tsx +0 -6
  382. package/src/components/VisuallyHidden/index.ts +0 -1
  383. package/src/docs/tools/DatePickerEvent.stories.mdx +0 -108
  384. package/src/docs/tools/DragDropFileEvent.stories.mdx +0 -75
  385. package/src/docs/tools/conditional.stories.mdx +0 -251
  386. package/src/docs/tools/selectEvent.stories.mdx +0 -121
  387. package/src/hooks/useClickOutside/index.ts +0 -1
  388. package/src/hooks/useClickOutside/useClickOutside.test.tsx +0 -116
  389. package/src/hooks/useClickOutside/useClickOutside.ts +0 -65
  390. package/src/hooks/useDidMount/index.ts +0 -1
  391. package/src/hooks/useDidMount/useDidMount.test.tsx +0 -38
  392. package/src/hooks/useDidMount/useDidMount.ts +0 -20
  393. package/src/hooks/useFingerprint/index.ts +0 -1
  394. package/src/hooks/useFingerprint/useFingerprint.test.ts +0 -76
  395. package/src/hooks/useFingerprint/useFingerprint.ts +0 -94
  396. package/src/hooks/useFocusTrap/index.ts +0 -2
  397. package/src/hooks/useFocusTrap/useFocusTrap.stories.tsx +0 -87
  398. package/src/hooks/useFocusTrap/useFocusTrap.test.tsx +0 -129
  399. package/src/hooks/useFocusTrap/useFocusTrap.ts +0 -187
  400. package/src/hooks/useFocusWithin/index.ts +0 -2
  401. package/src/hooks/useFocusWithin/useFocusWithin.test.tsx +0 -71
  402. package/src/hooks/useFocusWithin/useFocusWithin.ts +0 -62
  403. package/src/hooks/useHeightExpansionToggler/index.ts +0 -2
  404. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.test.tsx +0 -85
  405. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.ts +0 -54
  406. package/src/hooks/useID/index.ts +0 -1
  407. package/src/hooks/useID/useID.ts +0 -18
  408. package/src/hooks/useSelectable/SelectableStrategy.test.ts +0 -424
  409. package/src/hooks/useSelectable/SelectableStrategy.ts +0 -143
  410. package/src/hooks/useSelectable/index.ts +0 -8
  411. package/src/hooks/useSelectable/useSelectable.test.ts +0 -221
  412. package/src/hooks/useSelectable/useSelectable.ts +0 -156
  413. package/src/hooks/useSelectable/useSelectable.types.ts +0 -45
  414. package/src/hooks/useWindowResize/index.ts +0 -1
  415. package/src/hooks/useWindowResize/useWindowResize.ts +0 -27
  416. package/src/index.ts +0 -188
  417. package/src/stories/assets/code-brackets.svg +0 -1
  418. package/src/stories/assets/colors.svg +0 -1
  419. package/src/stories/assets/comments.svg +0 -1
  420. package/src/stories/assets/direction.svg +0 -1
  421. package/src/stories/assets/flow.svg +0 -1
  422. package/src/stories/assets/plugin.svg +0 -1
  423. package/src/stories/assets/repo.svg +0 -1
  424. package/src/stories/assets/stackalt.svg +0 -1
  425. package/src/stories/introduction.stories.mdx +0 -57
  426. package/src/stories/startPage.stories.mdx +0 -95
  427. package/src/styles/activatable.tsx +0 -30
  428. package/src/styles/disableable.tsx +0 -45
  429. package/src/styles/ellipsizable.tsx +0 -14
  430. package/src/styles/focusable.tsx +0 -32
  431. package/src/styles/font.test.ts +0 -31
  432. package/src/styles/font.tsx +0 -40
  433. package/src/styles/hidden.tsx +0 -29
  434. package/src/styles/hoverable.tsx +0 -30
  435. package/src/styles/transition.tsx +0 -25
  436. package/src/styles/typography.test.ts +0 -93
  437. package/src/styles/typography.ts +0 -190
  438. package/src/testing/DatePickerEvent/DatePickerEvent.ts +0 -117
  439. package/src/testing/DatePickerEvent/DateRangePickerEvent.ts +0 -83
  440. package/src/testing/DatePickerEvent/index.ts +0 -2
  441. package/src/testing/DragDropFileEvent/DragDropFileEvent.ts +0 -56
  442. package/src/testing/DragDropFileEvent/index.ts +0 -1
  443. package/src/testing/SelectEvent/SelectEvent.test.tsx +0 -192
  444. package/src/testing/SelectEvent/SelectEvent.ts +0 -264
  445. package/src/testing/SelectEvent/index.ts +0 -1
  446. package/src/testing/getInterpolatedStyles/getInterpolatedStyles.ts +0 -25
  447. package/src/testing/getInterpolatedStyles/index.ts +0 -1
  448. package/src/testing/index.ts +0 -6
  449. package/src/testing/renderWithDragDropFileProvider/index.ts +0 -1
  450. package/src/testing/renderWithDragDropFileProvider/renderWithDragDropFileProvider.tsx +0 -28
  451. package/src/tests/generator.ts +0 -127
  452. package/src/tests/renderer.tsx +0 -39
  453. package/src/theming/index.ts +0 -42
  454. package/src/theming/themes/alice.theme.ts +0 -1022
  455. package/src/theming/themes/index.ts +0 -3
  456. package/src/theming/themes/loadsmart.theme.ts +0 -1019
  457. package/src/theming/themes/miranda-compatibility.theme.ts +0 -972
  458. package/src/theming/theming.helpers.ts +0 -95
  459. package/src/tools/conditional.test.ts +0 -166
  460. package/src/tools/conditional.ts +0 -127
  461. package/src/tools/index.ts +0 -2
  462. package/src/tools/prop.test.ts +0 -52
  463. package/src/tools/prop.ts +0 -36
  464. package/src/utils/toolset/awaitTo.ts +0 -24
  465. package/src/utils/toolset/flatten.ts +0 -3
  466. package/src/utils/toolset/formatBytes.test.ts +0 -45
  467. package/src/utils/toolset/formatBytes.ts +0 -18
  468. package/src/utils/toolset/get.ts +0 -2
  469. package/src/utils/toolset/getID.test.ts +0 -57
  470. package/src/utils/toolset/getID.ts +0 -93
  471. package/src/utils/toolset/getOrdinalSuffix.test.ts +0 -27
  472. package/src/utils/toolset/getOrdinalSuffix.ts +0 -15
  473. package/src/utils/toolset/highlightMatch.test.tsx +0 -32
  474. package/src/utils/toolset/highlightMatch.tsx +0 -32
  475. package/src/utils/toolset/interleave.test.ts +0 -40
  476. package/src/utils/toolset/interleave.ts +0 -23
  477. package/src/utils/toolset/isEmpty.ts +0 -2
  478. package/src/utils/toolset/isThenable.test.ts +0 -40
  479. package/src/utils/toolset/isThenable.ts +0 -14
  480. package/src/utils/toolset/keyboard.ts +0 -50
  481. package/src/utils/toolset/omit.ts +0 -2
  482. package/src/utils/toolset/pluralize.ts +0 -16
  483. package/src/utils/toolset/range.ts +0 -2
  484. package/src/utils/toolset/rem.ts +0 -7
  485. package/src/utils/toolset/styledCompounds.ts +0 -22
  486. package/src/utils/toolset/toArray.ts +0 -16
  487. package/src/utils/types/ColorScheme.ts +0 -3
  488. package/src/utils/types/EventLike.ts +0 -11
  489. package/src/utils/types/InterpolatedStyle.ts +0 -3
  490. package/src/utils/types/Status.ts +0 -8
@@ -1,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