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

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