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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/README.md +13 -1
  2. package/dist/DragDropFile.context-oKnUu6d3.js +33 -0
  3. package/dist/{DragDropFile.context-D-EBrXnw.js.map → DragDropFile.context-oKnUu6d3.js.map} +1 -1
  4. package/dist/components/Banner/Banner.d.ts +2 -2
  5. package/dist/components/Button/Button.d.ts +1 -1
  6. package/dist/components/Calendar/Pickers/PickerButton.d.ts +4 -2
  7. package/dist/components/Card/Card.d.ts +4 -4
  8. package/dist/components/Card/CardTitle.d.ts +2 -2
  9. package/dist/components/DatePicker/DatePicker.d.ts +1 -1
  10. package/dist/components/DatePicker/useDatePicker.d.ts +8 -9
  11. package/dist/components/DatePicker/useDateRangePicker.d.ts +13 -14
  12. package/dist/components/Dialog/Dialog.d.ts +3 -5
  13. package/dist/components/DragDropFile/styles.d.ts +7 -7
  14. package/dist/components/Dropdown/Dropdown.d.ts +3 -3
  15. package/dist/components/Dropdown/DropdownMenu.d.ts +3 -3
  16. package/dist/components/Layout/Stack.d.ts +2 -2
  17. package/dist/components/Loaders/LoadingBar.d.ts +2 -2
  18. package/dist/components/Loaders/index.d.ts +3 -3
  19. package/dist/components/Modal/Modal.d.ts +1 -3
  20. package/dist/components/SideNavigation/Logo/Logo.d.ts +7 -2
  21. package/dist/components/SideNavigation/Menu/Menu.d.ts +7 -2
  22. package/dist/components/SideNavigation/Menu/MenuLink.d.ts +6 -1
  23. package/dist/components/SideNavigation/SideNavigation.d.ts +14 -4
  24. package/dist/components/Steps/StepsStep.d.ts +2 -2
  25. package/dist/components/Table/Table.d.ts +2 -1
  26. package/dist/components/TablePagination/TablePagination.styles.d.ts +5 -4
  27. package/dist/components/TablePagination/TablePaginationActions.d.ts +2 -5
  28. package/dist/components/Text/Text.d.ts +1 -1
  29. package/dist/components/TextField/TextField.d.ts +6 -2
  30. package/dist/components/ToggleGroup/Toggle.d.ts +2 -1
  31. package/dist/components/ToggleGroup/ToggleGroup.d.ts +2 -1
  32. package/dist/components/TopNavigation/Logo/Logo.d.ts +7 -2
  33. package/dist/components/TopNavigation/Menu/Menu.d.ts +2 -2
  34. package/dist/components/TopNavigation/Menu/MenuItemDropdown.d.ts +4 -4
  35. package/dist/components/TopNavigation/OpenSideNavButton/OpenSideNavButton.d.ts +2 -1
  36. package/dist/components/TopNavigation/TopNavigation.d.ts +8 -3
  37. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  38. package/dist/components/VisuallyHidden/VisuallyHidden.stories.d.ts +2 -1
  39. package/dist/index.js +9100 -253
  40. package/dist/index.js.map +1 -1
  41. package/dist/miranda-compatibility.theme-kYNEZ7mW.js +2528 -0
  42. package/dist/{miranda-compatibility.theme-ChPV-BBw.js.map → miranda-compatibility.theme-kYNEZ7mW.js.map} +1 -1
  43. package/dist/prop-K2Z3EsyG.js +81 -0
  44. package/dist/{prop-BwhJNJHO.js.map → prop-K2Z3EsyG.js.map} +1 -1
  45. package/dist/testing/index.js +282 -1
  46. package/dist/testing/index.js.map +1 -1
  47. package/dist/tests/renderer.d.ts +1 -1
  48. package/dist/theming/index.js +22 -1
  49. package/dist/theming/index.js.map +1 -1
  50. package/dist/toArray-Dxb1kUxx.js +14 -0
  51. package/dist/{toArray-BW3gx_gH.js.map → toArray-Dxb1kUxx.js.map} +1 -1
  52. package/dist/tools/index.js +6 -1
  53. package/dist/tools/index.js.map +1 -1
  54. package/dist/utils/toolset/flatten.d.ts +1 -1
  55. package/dist/utils/toolset/get.d.ts +1 -1
  56. package/dist/utils/toolset/isEmpty.d.ts +1 -1
  57. package/dist/utils/toolset/omit.d.ts +1 -1
  58. package/dist/utils/toolset/range.d.ts +1 -1
  59. package/package.json +46 -79
  60. package/dist/DragDropFile.context-D-EBrXnw.js +0 -2
  61. package/dist/DragDropFile.context-jVTIKfj5.mjs +0 -29
  62. package/dist/DragDropFile.context-jVTIKfj5.mjs.map +0 -1
  63. package/dist/index.mjs +0 -8046
  64. package/dist/index.mjs.map +0 -1
  65. package/dist/miranda-compatibility.theme-ChPV-BBw.js +0 -2
  66. package/dist/miranda-compatibility.theme-DQDHkWzC.mjs +0 -2469
  67. package/dist/miranda-compatibility.theme-DQDHkWzC.mjs.map +0 -1
  68. package/dist/prop-5m3D4883.mjs +0 -54
  69. package/dist/prop-5m3D4883.mjs.map +0 -1
  70. package/dist/prop-BwhJNJHO.js +0 -2
  71. package/dist/testing/index.mjs +0 -228
  72. package/dist/testing/index.mjs.map +0 -1
  73. package/dist/theming/index.mjs +0 -20
  74. package/dist/theming/index.mjs.map +0 -1
  75. package/dist/toArray-BW3gx_gH.js +0 -2
  76. package/dist/toArray-DqgeO2ua.mjs +0 -8
  77. package/dist/toArray-DqgeO2ua.mjs.map +0 -1
  78. package/dist/tools/index.mjs +0 -7
  79. package/dist/tools/index.mjs.map +0 -1
  80. package/src/@types/@loadsmart/utilsFunction.d.ts +0 -5
  81. package/src/@types/@loadsmart/utilsObject.d.ts +0 -5
  82. package/src/@types/svg.d.ts +0 -4
  83. package/src/addons/Theme/register.js +0 -590
  84. package/src/common/BackButton/BackButton.tsx +0 -18
  85. package/src/common/BackButton/index.ts +0 -2
  86. package/src/common/CloseButton/CloseButton.tsx +0 -55
  87. package/src/common/CloseButton/index.ts +0 -2
  88. package/src/common/SelectionWrapper.tsx +0 -130
  89. package/src/components/Accordion/Accordion.context.tsx +0 -36
  90. package/src/components/Accordion/Accordion.stories.tsx +0 -186
  91. package/src/components/Accordion/Accordion.test.tsx +0 -209
  92. package/src/components/Accordion/Accordion.tsx +0 -233
  93. package/src/components/Accordion/index.ts +0 -2
  94. package/src/components/Banner/Banner.stories.tsx +0 -213
  95. package/src/components/Banner/Banner.test.tsx +0 -118
  96. package/src/components/Banner/Banner.tsx +0 -418
  97. package/src/components/Banner/index.tsx +0 -2
  98. package/src/components/Breadcrumbs/Breadbrumbs.test.tsx +0 -125
  99. package/src/components/Breadcrumbs/Breadcrumb.tsx +0 -92
  100. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +0 -21
  101. package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -54
  102. package/src/components/Breadcrumbs/index.ts +0 -4
  103. package/src/components/Button/Button.stories.tsx +0 -174
  104. package/src/components/Button/Button.test.tsx +0 -57
  105. package/src/components/Button/Button.tsx +0 -576
  106. package/src/components/Button/index.tsx +0 -2
  107. package/src/components/Calendar/Calendar.helpers.ts +0 -15
  108. package/src/components/Calendar/Calendar.stories.tsx +0 -168
  109. package/src/components/Calendar/Calendar.test.tsx +0 -316
  110. package/src/components/Calendar/Calendar.tsx +0 -130
  111. package/src/components/Calendar/Calendar.types.ts +0 -68
  112. package/src/components/Calendar/Date.helper.test.ts +0 -847
  113. package/src/components/Calendar/Date.helper.ts +0 -461
  114. package/src/components/Calendar/DateFormat.helper.test.ts +0 -171
  115. package/src/components/Calendar/DateFormat.helper.ts +0 -195
  116. package/src/components/Calendar/Month.helper.test.ts +0 -187
  117. package/src/components/Calendar/Month.helper.ts +0 -172
  118. package/src/components/Calendar/PickerModeToggle.tsx +0 -61
  119. package/src/components/Calendar/Pickers/DayPicker.test.tsx +0 -85
  120. package/src/components/Calendar/Pickers/DayPicker.tsx +0 -127
  121. package/src/components/Calendar/Pickers/MonthPicker.test.tsx +0 -77
  122. package/src/components/Calendar/Pickers/MonthPicker.tsx +0 -51
  123. package/src/components/Calendar/Pickers/PickerButton.tsx +0 -119
  124. package/src/components/Calendar/Pickers/YearPicker.test.tsx +0 -75
  125. package/src/components/Calendar/Pickers/YearPicker.tsx +0 -52
  126. package/src/components/Calendar/index.ts +0 -10
  127. package/src/components/Calendar/useCalendar.ts +0 -190
  128. package/src/components/Calendar/usePickerMode.ts +0 -48
  129. package/src/components/Card/Card.stories.tsx +0 -117
  130. package/src/components/Card/Card.test.tsx +0 -139
  131. package/src/components/Card/Card.tsx +0 -106
  132. package/src/components/Card/CardTitle.tsx +0 -43
  133. package/src/components/Card/index.ts +0 -2
  134. package/src/components/Checkbox/Checkbox.stories.tsx +0 -79
  135. package/src/components/Checkbox/Checkbox.test.tsx +0 -66
  136. package/src/components/Checkbox/Checkbox.tsx +0 -170
  137. package/src/components/Checkbox/index.ts +0 -2
  138. package/src/components/DatePicker/DatePicker.stories.tsx +0 -113
  139. package/src/components/DatePicker/DatePicker.test.tsx +0 -174
  140. package/src/components/DatePicker/DatePicker.tsx +0 -140
  141. package/src/components/DatePicker/DatePicker.types.ts +0 -30
  142. package/src/components/DatePicker/DateRangePicker.stories.tsx +0 -128
  143. package/src/components/DatePicker/DateRangePicker.test.tsx +0 -267
  144. package/src/components/DatePicker/DateRangePicker.tsx +0 -110
  145. package/src/components/DatePicker/index.ts +0 -3
  146. package/src/components/DatePicker/useDatePicker.ts +0 -201
  147. package/src/components/DatePicker/useDateRangePicker.ts +0 -224
  148. package/src/components/Dialog/Dialog.stories.tsx +0 -227
  149. package/src/components/Dialog/Dialog.test.tsx +0 -74
  150. package/src/components/Dialog/Dialog.tsx +0 -139
  151. package/src/components/Dialog/index.tsx +0 -4
  152. package/src/components/Dialog/useDialog.tsx +0 -59
  153. package/src/components/DragDropFile/DragDropFile.context.tsx +0 -39
  154. package/src/components/DragDropFile/DragDropFile.stories.tsx +0 -183
  155. package/src/components/DragDropFile/DragDropFile.tsx +0 -11
  156. package/src/components/DragDropFile/components/DropZone.test.tsx +0 -108
  157. package/src/components/DragDropFile/components/DropZone.tsx +0 -145
  158. package/src/components/DragDropFile/components/FileItem.tsx +0 -117
  159. package/src/components/DragDropFile/components/FileList.test.tsx +0 -119
  160. package/src/components/DragDropFile/components/FileList.tsx +0 -47
  161. package/src/components/DragDropFile/components/Wrapper.tsx +0 -22
  162. package/src/components/DragDropFile/index.ts +0 -9
  163. package/src/components/DragDropFile/mocks.ts +0 -23
  164. package/src/components/DragDropFile/styles.tsx +0 -81
  165. package/src/components/DragDropFile/types.ts +0 -85
  166. package/src/components/Drawer/Drawer.stories.tsx +0 -83
  167. package/src/components/Drawer/Drawer.test.tsx +0 -90
  168. package/src/components/Drawer/Drawer.tsx +0 -225
  169. package/src/components/Drawer/index.ts +0 -4
  170. package/src/components/Dropdown/Dropdown.context.ts +0 -13
  171. package/src/components/Dropdown/Dropdown.fixtures.ts +0 -15
  172. package/src/components/Dropdown/Dropdown.stories.tsx +0 -259
  173. package/src/components/Dropdown/Dropdown.test.tsx +0 -173
  174. package/src/components/Dropdown/Dropdown.tsx +0 -141
  175. package/src/components/Dropdown/Dropdown.types.ts +0 -59
  176. package/src/components/Dropdown/DropdownMenu.tsx +0 -263
  177. package/src/components/Dropdown/DropdownTrigger.tsx +0 -368
  178. package/src/components/Dropdown/index.ts +0 -15
  179. package/src/components/Dropdown/useDropdown.test.ts +0 -96
  180. package/src/components/Dropdown/useDropdown.ts +0 -65
  181. package/src/components/EmptyState/EmptyState.mocks.tsx +0 -60
  182. package/src/components/EmptyState/EmptyState.stories.tsx +0 -239
  183. package/src/components/EmptyState/EmptyState.test.tsx +0 -101
  184. package/src/components/EmptyState/EmptyState.tsx +0 -22
  185. package/src/components/EmptyState/EmptyState.types.ts +0 -59
  186. package/src/components/EmptyState/EmptyStateWithIcon.tsx +0 -42
  187. package/src/components/EmptyState/EmptyStateWithIllustration.tsx +0 -72
  188. package/src/components/EmptyState/Illustration.tsx +0 -29
  189. package/src/components/EmptyState/index.ts +0 -4
  190. package/src/components/ErrorMessage/ErrorMessage.stories.tsx +0 -26
  191. package/src/components/ErrorMessage/ErrorMessage.test.tsx +0 -24
  192. package/src/components/ErrorMessage/ErrorMessage.tsx +0 -19
  193. package/src/components/ErrorMessage/index.ts +0 -2
  194. package/src/components/HighlightMatch/HighlightMatch.stories.tsx +0 -24
  195. package/src/components/HighlightMatch/HighlightMatch.test.tsx +0 -37
  196. package/src/components/HighlightMatch/HighlightMatch.tsx +0 -29
  197. package/src/components/HighlightMatch/index.ts +0 -2
  198. package/src/components/Icon/Icon.tsx +0 -55
  199. package/src/components/Icon/assets/back.svg +0 -4
  200. package/src/components/Icon/assets/burger-menu.svg +0 -3
  201. package/src/components/Icon/assets/calendar.svg +0 -5
  202. package/src/components/Icon/assets/caret-down.svg +0 -4
  203. package/src/components/Icon/assets/caret-left.svg +0 -4
  204. package/src/components/Icon/assets/caret-right-last.svg +0 -4
  205. package/src/components/Icon/assets/caret-right.svg +0 -4
  206. package/src/components/Icon/assets/check.svg +0 -4
  207. package/src/components/Icon/assets/chevron-down.svg +0 -3
  208. package/src/components/Icon/assets/circle.svg +0 -3
  209. package/src/components/Icon/assets/close.svg +0 -4
  210. package/src/components/Icon/assets/dots-horizontal.svg +0 -1
  211. package/src/components/Icon/assets/information.svg +0 -4
  212. package/src/components/Icon/assets/minus.svg +0 -4
  213. package/src/components/Icon/assets/plus.svg +0 -4
  214. package/src/components/Icon/assets/refresh.svg +0 -3
  215. package/src/components/Icon/assets/sort-asc.svg +0 -7
  216. package/src/components/Icon/assets/sort-desc.svg +0 -7
  217. package/src/components/Icon/assets/sort.svg +0 -7
  218. package/src/components/Icon/assets/upload.svg +0 -3
  219. package/src/components/Icon/assets/warning.svg +0 -4
  220. package/src/components/Icon/index.ts +0 -2
  221. package/src/components/IconFactory/IconFactory.fixtures.tsx +0 -31
  222. package/src/components/IconFactory/IconFactory.stories.tsx +0 -120
  223. package/src/components/IconFactory/IconFactory.test.tsx +0 -36
  224. package/src/components/IconFactory/IconFactory.tsx +0 -75
  225. package/src/components/IconFactory/index.ts +0 -2
  226. package/src/components/Label/Label.stories.tsx +0 -47
  227. package/src/components/Label/Label.test.tsx +0 -80
  228. package/src/components/Label/Label.tsx +0 -120
  229. package/src/components/Label/index.ts +0 -2
  230. package/src/components/Layout/Box.tsx +0 -98
  231. package/src/components/Layout/Grid.tsx +0 -42
  232. package/src/components/Layout/Group.tsx +0 -55
  233. package/src/components/Layout/Layout.stories.tsx +0 -412
  234. package/src/components/Layout/Layout.tsx +0 -19
  235. package/src/components/Layout/Layout.types.ts +0 -9
  236. package/src/components/Layout/Layout.utils.ts +0 -20
  237. package/src/components/Layout/Sidebar.tsx +0 -75
  238. package/src/components/Layout/Stack.tsx +0 -63
  239. package/src/components/Layout/Switcher.tsx +0 -48
  240. package/src/components/Layout/index.tsx +0 -8
  241. package/src/components/Link/Link.stories.tsx +0 -22
  242. package/src/components/Link/Link.test.tsx +0 -79
  243. package/src/components/Link/Link.tsx +0 -114
  244. package/src/components/Link/index.ts +0 -3
  245. package/src/components/Link/useSafeLink.ts +0 -49
  246. package/src/components/Loaders/LoadingBar.stories.tsx +0 -36
  247. package/src/components/Loaders/LoadingBar.test.tsx +0 -35
  248. package/src/components/Loaders/LoadingBar.tsx +0 -65
  249. package/src/components/Loaders/LoadingDots.stories.tsx +0 -69
  250. package/src/components/Loaders/LoadingDots.test.tsx +0 -22
  251. package/src/components/Loaders/LoadingDots.tsx +0 -68
  252. package/src/components/Loaders/Spinner.stories.tsx +0 -24
  253. package/src/components/Loaders/Spinner.test.tsx +0 -35
  254. package/src/components/Loaders/Spinner.tsx +0 -68
  255. package/src/components/Loaders/index.tsx +0 -3
  256. package/src/components/Modal/Modal.stories.tsx +0 -121
  257. package/src/components/Modal/Modal.test.tsx +0 -46
  258. package/src/components/Modal/Modal.tsx +0 -163
  259. package/src/components/Modal/index.tsx +0 -2
  260. package/src/components/Pagination/Pagination.constants.ts +0 -7
  261. package/src/components/Pagination/Pagination.helper.ts +0 -88
  262. package/src/components/Pagination/Pagination.stories.tsx +0 -29
  263. package/src/components/Pagination/Pagination.test.tsx +0 -102
  264. package/src/components/Pagination/Pagination.tsx +0 -34
  265. package/src/components/Pagination/Pagination.types.ts +0 -55
  266. package/src/components/Pagination/PaginationItem.tsx +0 -74
  267. package/src/components/Pagination/index.ts +0 -2
  268. package/src/components/Pagination/usePagination.test.ts +0 -188
  269. package/src/components/Pagination/usePagination.ts +0 -87
  270. package/src/components/Popover/Popover.stories.tsx +0 -50
  271. package/src/components/Popover/Popover.test.tsx +0 -22
  272. package/src/components/Popover/Popover.tsx +0 -110
  273. package/src/components/Popover/Popover.types.ts +0 -39
  274. package/src/components/Popover/index.ts +0 -11
  275. package/src/components/ProgressBar/ProgressBar.stories.tsx +0 -47
  276. package/src/components/ProgressBar/ProgressBar.test.tsx +0 -40
  277. package/src/components/ProgressBar/ProgressBar.tsx +0 -89
  278. package/src/components/ProgressBar/index.tsx +0 -2
  279. package/src/components/Radio/Radio.stories.tsx +0 -75
  280. package/src/components/Radio/Radio.test.tsx +0 -66
  281. package/src/components/Radio/Radio.tsx +0 -153
  282. package/src/components/Radio/index.ts +0 -2
  283. package/src/components/Section/Section.test.tsx +0 -35
  284. package/src/components/Section/Section.tsx +0 -66
  285. package/src/components/Section/Sections.stories.tsx +0 -56
  286. package/src/components/Section/index.ts +0 -2
  287. package/src/components/Select/Select.constants.ts +0 -12
  288. package/src/components/Select/Select.context.ts +0 -11
  289. package/src/components/Select/Select.fixtures.ts +0 -167
  290. package/src/components/Select/Select.stories.tsx +0 -780
  291. package/src/components/Select/Select.test.tsx +0 -1109
  292. package/src/components/Select/Select.tsx +0 -271
  293. package/src/components/Select/Select.types.ts +0 -148
  294. package/src/components/Select/SelectCreatableOption.tsx +0 -20
  295. package/src/components/Select/SelectEmpty.test.tsx +0 -15
  296. package/src/components/Select/SelectEmpty.tsx +0 -29
  297. package/src/components/Select/SelectOption.test.tsx +0 -78
  298. package/src/components/Select/SelectOption.tsx +0 -79
  299. package/src/components/Select/SelectTrigger.tsx +0 -83
  300. package/src/components/Select/components.tsx +0 -14
  301. package/src/components/Select/index.ts +0 -12
  302. package/src/components/Select/useSelect.helpers.test.ts +0 -184
  303. package/src/components/Select/useSelect.helpers.ts +0 -63
  304. package/src/components/Select/useSelect.test.ts +0 -207
  305. package/src/components/Select/useSelect.ts +0 -540
  306. package/src/components/Select/useSelectExternal.ts +0 -26
  307. package/src/components/SideNavigation/Logo/Logo.test.tsx +0 -19
  308. package/src/components/SideNavigation/Logo/Logo.tsx +0 -26
  309. package/src/components/SideNavigation/Logo/index.ts +0 -1
  310. package/src/components/SideNavigation/Menu/Menu.test.tsx +0 -65
  311. package/src/components/SideNavigation/Menu/Menu.tsx +0 -53
  312. package/src/components/SideNavigation/Menu/MenuBaseItem.tsx +0 -64
  313. package/src/components/SideNavigation/Menu/MenuExpandable.tsx +0 -107
  314. package/src/components/SideNavigation/Menu/MenuLink.tsx +0 -37
  315. package/src/components/SideNavigation/Menu/index.ts +0 -1
  316. package/src/components/SideNavigation/Separator/Separator.test.tsx +0 -14
  317. package/src/components/SideNavigation/Separator/Separator.tsx +0 -20
  318. package/src/components/SideNavigation/Separator/index.ts +0 -1
  319. package/src/components/SideNavigation/SideNavigation.stories.tsx +0 -69
  320. package/src/components/SideNavigation/SideNavigation.test.tsx +0 -21
  321. package/src/components/SideNavigation/SideNavigation.tsx +0 -47
  322. package/src/components/SideNavigation/index.ts +0 -5
  323. package/src/components/SideNavigation/useSideNavigation.ts +0 -36
  324. package/src/components/Steps/ProgressSteps/ProgressStep.tsx +0 -163
  325. package/src/components/Steps/ProgressSteps/ProgressSteps.tsx +0 -37
  326. package/src/components/Steps/ProgressSteps/index.ts +0 -1
  327. package/src/components/Steps/Steps.fixtures.ts +0 -11
  328. package/src/components/Steps/Steps.helpers.ts +0 -11
  329. package/src/components/Steps/Steps.stories.tsx +0 -65
  330. package/src/components/Steps/Steps.test.tsx +0 -78
  331. package/src/components/Steps/Steps.tsx +0 -53
  332. package/src/components/Steps/Steps.types.ts +0 -5
  333. package/src/components/Steps/StepsContext.ts +0 -5
  334. package/src/components/Steps/StepsStep.tsx +0 -58
  335. package/src/components/Steps/index.ts +0 -6
  336. package/src/components/Steps/useStep.test.tsx +0 -217
  337. package/src/components/Steps/useSteps.ts +0 -131
  338. package/src/components/Switch/Switch.stories.tsx +0 -65
  339. package/src/components/Switch/Switch.test.tsx +0 -60
  340. package/src/components/Switch/Switch.tsx +0 -209
  341. package/src/components/Switch/index.ts +0 -2
  342. package/src/components/Table/Selection.tsx +0 -202
  343. package/src/components/Table/Table.fixtures.ts +0 -101
  344. package/src/components/Table/Table.stories.tsx +0 -568
  345. package/src/components/Table/Table.test.tsx +0 -310
  346. package/src/components/Table/Table.tsx +0 -523
  347. package/src/components/Table/Table.types.ts +0 -93
  348. package/src/components/Table/TableSortHandle.tsx +0 -31
  349. package/src/components/Table/index.tsx +0 -2
  350. package/src/components/Table/useSortBy.test.ts +0 -96
  351. package/src/components/Table/useSortBy.ts +0 -92
  352. package/src/components/Table/useSortBy.types.ts +0 -21
  353. package/src/components/TablePagination/RowsPerPage.tsx +0 -81
  354. package/src/components/TablePagination/TablePagination.stories.tsx +0 -42
  355. package/src/components/TablePagination/TablePagination.styles.ts +0 -13
  356. package/src/components/TablePagination/TablePagination.test.tsx +0 -111
  357. package/src/components/TablePagination/TablePagination.tsx +0 -49
  358. package/src/components/TablePagination/TablePagination.types.ts +0 -69
  359. package/src/components/TablePagination/TablePaginationActions.tsx +0 -144
  360. package/src/components/TablePagination/index.ts +0 -2
  361. package/src/components/Tabs/Tabs.stories.tsx +0 -78
  362. package/src/components/Tabs/Tabs.test.tsx +0 -103
  363. package/src/components/Tabs/Tabs.tsx +0 -287
  364. package/src/components/Tabs/Tabs.types.ts +0 -7
  365. package/src/components/Tabs/TabsContext.ts +0 -10
  366. package/src/components/Tabs/index.ts +0 -2
  367. package/src/components/Tag/Tag.stories.tsx +0 -112
  368. package/src/components/Tag/Tag.test.tsx +0 -19
  369. package/src/components/Tag/Tag.tsx +0 -393
  370. package/src/components/Tag/index.ts +0 -2
  371. package/src/components/Text/Text.stories.tsx +0 -59
  372. package/src/components/Text/Text.test.tsx +0 -48
  373. package/src/components/Text/Text.tsx +0 -14
  374. package/src/components/Text/index.ts +0 -2
  375. package/src/components/TextField/TextField.stories.tsx +0 -90
  376. package/src/components/TextField/TextField.test.tsx +0 -36
  377. package/src/components/TextField/TextField.tsx +0 -244
  378. package/src/components/TextField/index.ts +0 -6
  379. package/src/components/TextField/useTextField.tsx +0 -26
  380. package/src/components/Textarea/Textarea.stories.tsx +0 -101
  381. package/src/components/Textarea/Textarea.test.tsx +0 -14
  382. package/src/components/Textarea/Textarea.tsx +0 -230
  383. package/src/components/Textarea/index.ts +0 -2
  384. package/src/components/Toast/Toast.stories.tsx +0 -50
  385. package/src/components/Toast/Toast.test.tsx +0 -24
  386. package/src/components/Toast/Toast.tsx +0 -141
  387. package/src/components/Toast/icons/close.svg +0 -3
  388. package/src/components/Toast/icons/danger.svg +0 -4
  389. package/src/components/Toast/icons/neutral.svg +0 -4
  390. package/src/components/Toast/icons/success.svg +0 -3
  391. package/src/components/Toast/icons/warning.svg +0 -4
  392. package/src/components/Toast/index.tsx +0 -2
  393. package/src/components/ToggleGroup/Toggle.test.tsx +0 -76
  394. package/src/components/ToggleGroup/Toggle.tsx +0 -158
  395. package/src/components/ToggleGroup/ToggleGroup.constants.ts +0 -16
  396. package/src/components/ToggleGroup/ToggleGroup.stories.tsx +0 -145
  397. package/src/components/ToggleGroup/ToggleGroup.test.tsx +0 -237
  398. package/src/components/ToggleGroup/ToggleGroup.tsx +0 -165
  399. package/src/components/ToggleGroup/ToggleGroup.types.ts +0 -35
  400. package/src/components/ToggleGroup/ToggleGroupContext.ts +0 -13
  401. package/src/components/ToggleGroup/index.ts +0 -3
  402. package/src/components/Tooltip/Tooltip.stories.tsx +0 -82
  403. package/src/components/Tooltip/Tooltip.test.tsx +0 -49
  404. package/src/components/Tooltip/Tooltip.tsx +0 -185
  405. package/src/components/Tooltip/index.ts +0 -2
  406. package/src/components/TopNavigation/Logo/Logo.test.tsx +0 -21
  407. package/src/components/TopNavigation/Logo/Logo.tsx +0 -20
  408. package/src/components/TopNavigation/Logo/index.ts +0 -1
  409. package/src/components/TopNavigation/Menu/Menu.test.tsx +0 -125
  410. package/src/components/TopNavigation/Menu/Menu.tsx +0 -62
  411. package/src/components/TopNavigation/Menu/MenuItemDropdown.tsx +0 -118
  412. package/src/components/TopNavigation/Menu/MenuItemIcon.tsx +0 -50
  413. package/src/components/TopNavigation/Menu/index.ts +0 -1
  414. package/src/components/TopNavigation/OpenSideNavButton/OpenSideNavButton.tsx +0 -28
  415. package/src/components/TopNavigation/OpenSideNavButton/index.ts +0 -1
  416. package/src/components/TopNavigation/TopNavigation.stories.tsx +0 -42
  417. package/src/components/TopNavigation/TopNavigation.tsx +0 -47
  418. package/src/components/TopNavigation/index.ts +0 -2
  419. package/src/components/VisuallyHidden/VisuallyHidden.mdx +0 -26
  420. package/src/components/VisuallyHidden/VisuallyHidden.stories.tsx +0 -32
  421. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +0 -18
  422. package/src/components/VisuallyHidden/VisuallyHidden.tsx +0 -6
  423. package/src/components/VisuallyHidden/index.ts +0 -1
  424. package/src/docs/tools/DatePickerEvent.stories.mdx +0 -108
  425. package/src/docs/tools/DragDropFileEvent.stories.mdx +0 -75
  426. package/src/docs/tools/conditional.stories.mdx +0 -251
  427. package/src/docs/tools/selectEvent.stories.mdx +0 -121
  428. package/src/hooks/useClickOutside/index.ts +0 -1
  429. package/src/hooks/useClickOutside/useClickOutside.test.tsx +0 -116
  430. package/src/hooks/useClickOutside/useClickOutside.ts +0 -65
  431. package/src/hooks/useDidMount/index.ts +0 -1
  432. package/src/hooks/useDidMount/useDidMount.test.tsx +0 -38
  433. package/src/hooks/useDidMount/useDidMount.ts +0 -20
  434. package/src/hooks/useFingerprint/index.ts +0 -1
  435. package/src/hooks/useFingerprint/useFingerprint.test.ts +0 -76
  436. package/src/hooks/useFingerprint/useFingerprint.ts +0 -94
  437. package/src/hooks/useFocusTrap/index.ts +0 -2
  438. package/src/hooks/useFocusTrap/useFocusTrap.stories.tsx +0 -87
  439. package/src/hooks/useFocusTrap/useFocusTrap.test.tsx +0 -129
  440. package/src/hooks/useFocusTrap/useFocusTrap.ts +0 -187
  441. package/src/hooks/useFocusWithin/index.ts +0 -2
  442. package/src/hooks/useFocusWithin/useFocusWithin.test.tsx +0 -71
  443. package/src/hooks/useFocusWithin/useFocusWithin.ts +0 -62
  444. package/src/hooks/useHeightExpansionToggler/index.ts +0 -2
  445. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.test.tsx +0 -85
  446. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.ts +0 -54
  447. package/src/hooks/useID/index.ts +0 -1
  448. package/src/hooks/useID/useID.ts +0 -18
  449. package/src/hooks/useSelectable/SelectableStrategy.test.ts +0 -424
  450. package/src/hooks/useSelectable/SelectableStrategy.ts +0 -143
  451. package/src/hooks/useSelectable/index.ts +0 -8
  452. package/src/hooks/useSelectable/useSelectable.test.ts +0 -221
  453. package/src/hooks/useSelectable/useSelectable.ts +0 -156
  454. package/src/hooks/useSelectable/useSelectable.types.ts +0 -45
  455. package/src/hooks/useWindowResize/index.ts +0 -1
  456. package/src/hooks/useWindowResize/useWindowResize.ts +0 -27
  457. package/src/index.ts +0 -188
  458. package/src/stories/assets/code-brackets.svg +0 -1
  459. package/src/stories/assets/colors.svg +0 -1
  460. package/src/stories/assets/comments.svg +0 -1
  461. package/src/stories/assets/direction.svg +0 -1
  462. package/src/stories/assets/flow.svg +0 -1
  463. package/src/stories/assets/plugin.svg +0 -1
  464. package/src/stories/assets/repo.svg +0 -1
  465. package/src/stories/assets/stackalt.svg +0 -1
  466. package/src/stories/introduction.stories.mdx +0 -57
  467. package/src/stories/startPage.stories.mdx +0 -95
  468. package/src/styles/activatable.tsx +0 -30
  469. package/src/styles/disableable.tsx +0 -45
  470. package/src/styles/ellipsizable.tsx +0 -14
  471. package/src/styles/focusable.tsx +0 -32
  472. package/src/styles/font.test.ts +0 -31
  473. package/src/styles/font.tsx +0 -40
  474. package/src/styles/hidden.tsx +0 -29
  475. package/src/styles/hoverable.tsx +0 -30
  476. package/src/styles/transition.tsx +0 -25
  477. package/src/styles/typography.test.ts +0 -93
  478. package/src/styles/typography.ts +0 -190
  479. package/src/testing/DatePickerEvent/DatePickerEvent.ts +0 -117
  480. package/src/testing/DatePickerEvent/DateRangePickerEvent.ts +0 -83
  481. package/src/testing/DatePickerEvent/index.ts +0 -2
  482. package/src/testing/DragDropFileEvent/DragDropFileEvent.ts +0 -56
  483. package/src/testing/DragDropFileEvent/index.ts +0 -1
  484. package/src/testing/SelectEvent/SelectEvent.test.tsx +0 -192
  485. package/src/testing/SelectEvent/SelectEvent.ts +0 -264
  486. package/src/testing/SelectEvent/index.ts +0 -1
  487. package/src/testing/getInterpolatedStyles/getInterpolatedStyles.ts +0 -25
  488. package/src/testing/getInterpolatedStyles/index.ts +0 -1
  489. package/src/testing/index.ts +0 -6
  490. package/src/testing/renderWithDragDropFileProvider/index.ts +0 -1
  491. package/src/testing/renderWithDragDropFileProvider/renderWithDragDropFileProvider.tsx +0 -28
  492. package/src/tests/generator.ts +0 -127
  493. package/src/tests/renderer.tsx +0 -39
  494. package/src/theming/index.ts +0 -42
  495. package/src/theming/themes/alice.theme.ts +0 -1022
  496. package/src/theming/themes/index.ts +0 -3
  497. package/src/theming/themes/loadsmart.theme.ts +0 -1019
  498. package/src/theming/themes/miranda-compatibility.theme.ts +0 -972
  499. package/src/theming/theming.helpers.ts +0 -95
  500. package/src/tools/conditional.test.ts +0 -166
  501. package/src/tools/conditional.ts +0 -127
  502. package/src/tools/index.ts +0 -2
  503. package/src/tools/prop.test.ts +0 -52
  504. package/src/tools/prop.ts +0 -36
  505. package/src/utils/toolset/awaitTo.ts +0 -24
  506. package/src/utils/toolset/flatten.ts +0 -3
  507. package/src/utils/toolset/formatBytes.test.ts +0 -45
  508. package/src/utils/toolset/formatBytes.ts +0 -18
  509. package/src/utils/toolset/get.ts +0 -2
  510. package/src/utils/toolset/getID.test.ts +0 -57
  511. package/src/utils/toolset/getID.ts +0 -93
  512. package/src/utils/toolset/getOrdinalSuffix.test.ts +0 -27
  513. package/src/utils/toolset/getOrdinalSuffix.ts +0 -15
  514. package/src/utils/toolset/highlightMatch.test.tsx +0 -32
  515. package/src/utils/toolset/highlightMatch.tsx +0 -32
  516. package/src/utils/toolset/interleave.test.ts +0 -40
  517. package/src/utils/toolset/interleave.ts +0 -23
  518. package/src/utils/toolset/isEmpty.ts +0 -2
  519. package/src/utils/toolset/isThenable.test.ts +0 -40
  520. package/src/utils/toolset/isThenable.ts +0 -14
  521. package/src/utils/toolset/keyboard.ts +0 -50
  522. package/src/utils/toolset/omit.ts +0 -2
  523. package/src/utils/toolset/pluralize.ts +0 -16
  524. package/src/utils/toolset/range.ts +0 -2
  525. package/src/utils/toolset/rem.ts +0 -7
  526. package/src/utils/toolset/styledCompounds.ts +0 -22
  527. package/src/utils/toolset/toArray.ts +0 -16
  528. package/src/utils/types/ColorScheme.ts +0 -3
  529. package/src/utils/types/EventLike.ts +0 -11
  530. package/src/utils/types/InterpolatedStyle.ts +0 -3
  531. package/src/utils/types/Status.ts +0 -8
@@ -1,780 +0,0 @@
1
- import React, { useCallback, useState } from 'react'
2
- import type { Story, Meta } from '@storybook/react'
3
- import { omit } from 'lodash'
4
-
5
- import { Label } from 'components/Label'
6
- import { Text } from 'components/Text'
7
- import { HighlightMatch } from 'components/HighlightMatch'
8
- import { Select } from 'components/Select'
9
-
10
- import {
11
- useSyncFruits,
12
- useAsyncUsers,
13
- useAsyncCustomers,
14
- FRUITS,
15
- USERS,
16
- CUSTOMERS,
17
- Fruit,
18
- User,
19
- } from './Select.fixtures'
20
-
21
- import type {
22
- Option,
23
- SelectComponentsOptionProps as SelectOptionProps,
24
- SelectProps,
25
- } from './Select.types'
26
- import { useSelect } from '.'
27
- import generators from '../../tests/generator'
28
-
29
- export default {
30
- title: 'Components/Select',
31
- component: Select,
32
- argTypes: {},
33
- } as Meta
34
-
35
- const OMITTED_PROPS = ['onCreate']
36
-
37
- export const Playground: Story<SelectProps> = (args: SelectProps) => {
38
- return (
39
- <div className="flex flex-col space-y-4">
40
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
41
- <div className="flex-1">
42
- <Label htmlFor="select-playground">Select your favorite fruit</Label>
43
- <Select
44
- options={[...FRUITS]}
45
- placeholder="Select sync"
46
- {...omit(args, OMITTED_PROPS)}
47
- id="select-playground"
48
- name="select-playground"
49
- />
50
- </div>
51
- </div>
52
- <div className="text-sm" style={{ width: 720 }}>
53
- <p>Available options:</p>
54
- <code>{FRUITS.map(({ label }) => label).join(', ')}</code>
55
- </div>
56
- </div>
57
- )
58
- }
59
-
60
- Playground.args = {
61
- multiple: false,
62
- autoFocus: true,
63
- }
64
-
65
- const SINGLE_SYNC_DATASOURCES = [useSyncFruits]
66
- export const SingleSyncDatasource: Story<SelectProps> = (args: SelectProps) => {
67
- return (
68
- <div className="flex flex-col space-y-4">
69
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
70
- <div className="flex-1">
71
- <Label htmlFor="select-single-sync">Select your favorite fruit</Label>
72
- <Select
73
- placeholder="Select sync"
74
- {...omit(args, OMITTED_PROPS)}
75
- id="select-single-sync"
76
- name="select-single-sync"
77
- datasources={SINGLE_SYNC_DATASOURCES}
78
- />
79
- </div>
80
- </div>
81
- <div className="text-sm" style={{ width: 720 }}>
82
- <p>Available options:</p>
83
- <code>{FRUITS.map(({ label }) => label).join(', ')}</code>
84
- </div>
85
- </div>
86
- )
87
- }
88
-
89
- SingleSyncDatasource.args = {
90
- multiple: false,
91
- }
92
-
93
- const CustomOption = ({ value }: SelectOptionProps) => {
94
- const select = useSelect()
95
- const option = select.getOption(value)
96
- const query = select.query
97
- const { label, family } = option as Fruit
98
-
99
- return (
100
- <Select.Option value={value} data-testid="custom-option">
101
- <div>
102
- <HighlightMatch text={label} match={query} />
103
- <Text as="div" color="color-neutral-dark" variant="caption">
104
- family: {family}
105
- </Text>
106
- </div>
107
- </Select.Option>
108
- )
109
- }
110
-
111
- export const SingleCustomOptionRendering: Story<SelectProps> = (args: SelectProps) => {
112
- return (
113
- <div className="flex flex-col space-y-4">
114
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
115
- <div className="flex-1">
116
- <Label htmlFor="select-custom-option">Select your favorite fruit</Label>
117
- <Select
118
- placeholder="Select with custom option"
119
- {...args}
120
- id="select-custom-option"
121
- name="select-custom-option"
122
- datasources={SINGLE_SYNC_DATASOURCES}
123
- />
124
- </div>
125
- </div>
126
- <div className="text-sm" style={{ width: 720 }}>
127
- <p>Available options:</p>
128
- <code>{FRUITS.map(({ label }) => label).join(', ')}</code>
129
- </div>
130
- </div>
131
- )
132
- }
133
-
134
- SingleCustomOptionRendering.args = {
135
- multiple: false,
136
- components: { Option: CustomOption },
137
- }
138
-
139
- SingleCustomOptionRendering.parameters = {
140
- docs: {
141
- description: {
142
- story: `
143
- \`\`\`jsx
144
- const Option = ({ value }: SelectOptionProps) => {
145
- const select = useSelect()
146
- const option = select.getOption(value)
147
- const query = select.query
148
- const { label, family } = option as Fruit
149
-
150
- return (
151
- <Select.Option value={value}>
152
- <div>
153
- <HighlightMatch text={label} match={query} />
154
- <Text as="div" color="color-neutral-dark" variant="caption">
155
- family: {family}
156
- </Text>
157
- </div>
158
- </Select.Option>
159
- )
160
- }
161
- \`\`\`
162
- `,
163
- },
164
- },
165
- }
166
-
167
- const Empty = () => {
168
- return <Select.Empty>No fruit found.</Select.Empty>
169
- }
170
-
171
- export const SingleCustomEmptyRendering: Story<SelectProps> = (args: SelectProps) => {
172
- return (
173
- <div className="flex flex-col space-y-4">
174
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
175
- <div className="flex-1">
176
- <Label htmlFor="select-custom-empty">Select your favorite fruit</Label>
177
- <Select
178
- placeholder="Select with custom empty"
179
- {...omit(args, OMITTED_PROPS)}
180
- id="select-custom-empty"
181
- name="select-custom-empyy"
182
- datasources={SINGLE_SYNC_DATASOURCES}
183
- components={{ Empty }}
184
- />
185
- </div>
186
- </div>
187
- <div className="text-sm" style={{ width: 720 }}>
188
- <p>Available options:</p>
189
- <code>{FRUITS.map(({ label }) => label).join(', ')}</code>
190
- </div>
191
- </div>
192
- )
193
- }
194
-
195
- SingleCustomEmptyRendering.args = {
196
- multiple: false,
197
- }
198
-
199
- SingleCustomEmptyRendering.parameters = {
200
- docs: {
201
- description: {
202
- story: `
203
- \`\`\`jsx
204
- const Empty = () => {
205
- return <Select.Empty>No fruit found.</Select.Empty>
206
- }
207
- \`\`\`
208
- `,
209
- },
210
- },
211
- }
212
-
213
- const SINGLE_ASYNC_DATASOURCES = [useAsyncUsers]
214
- export const SingleAsyncDatasource: Story<SelectProps> = (args: SelectProps) => {
215
- return (
216
- <div className="flex flex-col space-y-4">
217
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
218
- <div className="flex-1">
219
- <Label htmlFor="select-single-async">Select the project manager</Label>
220
- <Select
221
- placeholder="Select async"
222
- {...omit(args, OMITTED_PROPS)}
223
- id="select-single-async"
224
- name="select-single-async"
225
- datasources={SINGLE_ASYNC_DATASOURCES}
226
- />
227
- </div>
228
- </div>
229
- <div className="text-sm" style={{ width: 720 }}>
230
- <p>Available options:</p>
231
- <code>{USERS.map(({ name }) => name).join(', ')}</code>
232
- </div>
233
- </div>
234
- )
235
- }
236
-
237
- SingleAsyncDatasource.args = {
238
- multiple: false,
239
- }
240
-
241
- const SINGLE_MIXED_DATASOURCES = [useSyncFruits, useAsyncUsers]
242
- export const SingleMixedDatasources: Story<SelectProps> = (args: SelectProps) => {
243
- return (
244
- <div className="flex flex-col space-y-4">
245
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
246
- <div className="flex-1">
247
- <Label htmlFor="select-mixed">Select your favorite fruit or the project manager</Label>
248
- <Select
249
- placeholder="Select mixed"
250
- {...omit(args, OMITTED_PROPS)}
251
- id="select-mixed"
252
- name="select-mixed"
253
- datasources={SINGLE_MIXED_DATASOURCES}
254
- />
255
- </div>
256
- </div>
257
- <div className="text-sm" style={{ width: 720 }}>
258
- <p>Available options:</p>
259
- <code>{FRUITS.map(({ label }) => label).join(', ')}</code>
260
- <code>{USERS.map(({ name }) => name).join(', ')}</code>
261
- </div>
262
- </div>
263
- )
264
- }
265
-
266
- SingleMixedDatasources.args = {
267
- multiple: false,
268
- }
269
-
270
- const MULTI_SYNC_DATASOURCES = [useSyncFruits]
271
- export const MultiSyncDatasource: Story<SelectProps> = (args: SelectProps) => {
272
- return (
273
- <div className="flex flex-col space-y-4">
274
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
275
- <div className="flex-1">
276
- <Label htmlFor="select-multi-sync">Select your favorite fruit</Label>
277
- <Select
278
- placeholder="Select multiple sync"
279
- {...omit(args, OMITTED_PROPS)}
280
- id="select-multi-sync"
281
- name="select-multi-sync"
282
- datasources={MULTI_SYNC_DATASOURCES}
283
- />
284
- </div>
285
- </div>
286
- <div className="text-sm" style={{ width: 720 }}>
287
- <p>Available options:</p>
288
- <code>{FRUITS.map(({ label }) => label).join(', ')}</code>
289
- </div>
290
- </div>
291
- )
292
- }
293
-
294
- MultiSyncDatasource.args = {
295
- multiple: true,
296
- }
297
-
298
- const MULTI_ASYNC_DATASOURCES = [useAsyncUsers]
299
- export const MultiAsyncDatasource: Story<SelectProps> = (args: SelectProps) => {
300
- return (
301
- <div className="flex flex-col space-y-4">
302
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
303
- <div className="flex-1">
304
- <Label htmlFor="select-multi-async">Select the project manager</Label>
305
- <Select
306
- placeholder="Select multiple async"
307
- {...omit(args, OMITTED_PROPS)}
308
- id="select-multi-async"
309
- name="select-multi-async"
310
- datasources={MULTI_ASYNC_DATASOURCES}
311
- />
312
- </div>
313
- </div>
314
- <div className="text-sm" style={{ width: 720 }}>
315
- <p>Available options:</p>
316
- <code>{USERS.map(({ name }) => name).join(', ')}</code>
317
- </div>
318
- </div>
319
- )
320
- }
321
-
322
- MultiAsyncDatasource.args = {
323
- multiple: true,
324
- }
325
-
326
- const MULTI_MIXED_DATASOURCES = [useSyncFruits, useAsyncUsers]
327
- export const MultiMixedDatasource: Story<SelectProps> = (args: SelectProps) => {
328
- return (
329
- <div className="flex flex-col space-y-4">
330
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
331
- <div className="flex-1">
332
- <Label htmlFor="select-multi-mixed">
333
- Select your favorite fruit or the project manager
334
- </Label>
335
- <Select
336
- placeholder="Select multiple mixed"
337
- {...omit(args, OMITTED_PROPS)}
338
- id="select-multi-mixed"
339
- name="select-multi-mixed"
340
- datasources={MULTI_MIXED_DATASOURCES}
341
- />
342
- </div>
343
- </div>
344
- <div className="text-sm" style={{ width: 720 }}>
345
- <p>Available options:</p>
346
- <code>{FRUITS.map(({ label }) => label).join(', ')}</code>
347
- <code>{USERS.map(({ name }) => name).join(', ')}</code>
348
- </div>
349
- </div>
350
- )
351
- }
352
-
353
- MultiMixedDatasource.args = {
354
- multiple: true,
355
- }
356
-
357
- const VARIOUS_ASYNC_DATASOURCES = [useAsyncUsers, useAsyncCustomers]
358
- export const VariousAsyncDatasources: Story<SelectProps> = (args: SelectProps) => {
359
- return (
360
- <div className="flex flex-col space-y-4">
361
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
362
- <div className="flex-1">
363
- <Label htmlFor="select-multi-async">Select the beneficiary</Label>
364
- <Select
365
- placeholder="Select async datasources"
366
- {...omit(args, OMITTED_PROPS)}
367
- id="select-multi-async"
368
- name="select-multi-async"
369
- datasources={VARIOUS_ASYNC_DATASOURCES}
370
- />
371
- </div>
372
- </div>
373
- <div className="text-sm" style={{ width: 720 }}>
374
- <p>Available options:</p>
375
- <code>{[...USERS, ...CUSTOMERS].map(({ name }) => name).join(', ')}</code>
376
- </div>
377
- </div>
378
- )
379
- }
380
-
381
- VariousAsyncDatasources.args = {
382
- multiple: false,
383
- }
384
-
385
- const MixedCustomOption = ({ value }: SelectOptionProps) => {
386
- const select = useSelect()
387
- const option = select.getOption(value) || {}
388
- const query = select.query
389
-
390
- let label
391
- if (option._type === 'user') {
392
- label = (option as User).name
393
- } else {
394
- label = (option as Fruit).label
395
- }
396
-
397
- return (
398
- <Select.Option value={value} trailing={option._type === 'user' ? '🙂' : '🍑'}>
399
- <div>
400
- <HighlightMatch text={label} match={query} />
401
- <Text as="div" color="color-neutral-dark" variant="caption">
402
- {option._type}
403
- </Text>
404
- </div>
405
- </Select.Option>
406
- )
407
- }
408
-
409
- const value = [
410
- { _type: 'fruit', ...FRUITS[0] },
411
- { _type: 'user', ...USERS[0] },
412
- ] as Option[]
413
-
414
- export const MultiCustomOptionRendering: Story<SelectProps> = (args: SelectProps) => {
415
- return (
416
- <div className="flex flex-col space-y-4">
417
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
418
- <div className="flex-1">
419
- <Label htmlFor="select-multi-mixed">
420
- Select your favorite fruit or the project manager
421
- </Label>
422
- <Select
423
- placeholder="Select multiple mixed"
424
- {...omit(args, OMITTED_PROPS)}
425
- id="select-multi-mixed"
426
- name="select-multi-mixed"
427
- datasources={MULTI_MIXED_DATASOURCES}
428
- components={{ Option: MixedCustomOption }}
429
- value={value}
430
- />
431
- </div>
432
- </div>
433
- <div className="text-sm" style={{ width: 720 }}>
434
- <p>Available options:</p>
435
- <code>{FRUITS.map(({ label }) => label).join(', ')}</code>
436
- <code>{USERS.map(({ name }) => name).join(', ')}</code>
437
- </div>
438
- </div>
439
- )
440
- }
441
-
442
- MultiCustomOptionRendering.args = {
443
- multiple: true,
444
- }
445
-
446
- MultiCustomOptionRendering.parameters = {
447
- docs: {
448
- description: {
449
- story: `
450
- \`\`\`jsx
451
- const MixedCustomOption = ({ value }: SelectOptionProps) => {
452
- const select = useSelect()
453
- const option = select.getOption(value) || {}
454
- const query = select.query
455
-
456
- let label
457
- if (option._type === 'user') {
458
- label = (option as User).name
459
- } else {
460
- label = (option as Fruit).label
461
- }
462
-
463
- return (
464
- <Select.Option value={value} trailing={option._type === 'user' ? '🙂' : '🍑'}>
465
- <div>
466
- <HighlightMatch text={label} match={query} />
467
- <Text as="div" color="color-neutral-dark" variant="caption">
468
- {option._type}
469
- </Text>
470
- </div>
471
- </Select.Option>
472
- )
473
- }
474
-
475
- \`\`\`
476
- `,
477
- },
478
- },
479
- }
480
-
481
- const fruits = [...FRUITS]
482
-
483
- export const CreatableSync: Story<SelectProps> = (args: SelectProps) => {
484
- const handleCreate = useCallback(function handleCreate(query: string) {
485
- const item: Option = { label: query, value: query } as Option
486
-
487
- fruits.push(item as Fruit)
488
- return item
489
- }, [])
490
-
491
- return (
492
- <div className="flex flex-col space-y-4">
493
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
494
- <div className="flex-1">
495
- <Label htmlFor="select-creatable-sync">Select your favorite fruit</Label>
496
- <Select
497
- onCreate={handleCreate}
498
- datasources={SINGLE_SYNC_DATASOURCES}
499
- placeholder="Select creatable sync"
500
- {...args}
501
- id="select-creatable-sync"
502
- name="select-creatable-sync"
503
- />
504
- </div>
505
- </div>
506
- <div className="text-sm" style={{ width: 720 }}>
507
- <p>Available options:</p>
508
- <code>{fruits.map(({ label }) => label).join(', ')}</code>
509
- </div>
510
- </div>
511
- )
512
- }
513
-
514
- CreatableSync.parameters = {
515
- actions: { argTypesRegex: 'onClick' },
516
- docs: {
517
- description: {
518
- story: `
519
-
520
- Creatable Select allows users to add new items to the options list when the query they typed doesn't match the available options.
521
- When the \`onCreate\` prop is provided, if the entered query does not match any of the available options, a new item can be created based on that query
522
-
523
- \`\`\`jsx
524
- function handleCreate(query: string): Promise<void | Option> | void | Option {
525
- // Create the new item
526
- const item: Option = { label: query, value: query.toLowerCase() }
527
-
528
- // Update options
529
- FRUITS = [...FRUITS, item]
530
-
531
- // When the option is returned it will be selected. onChange will be fired with the new value
532
- return item
533
- }
534
- \`\`\`
535
- `,
536
- },
537
- },
538
- }
539
-
540
- export const CreatableAsync: Story<SelectProps> = (args: SelectProps) => {
541
- const [disabled, setDisabled] = useState(false)
542
-
543
- const handleCreate = useCallback(function handleCreate(query: string) {
544
- return new Promise<Option>((resolve) => {
545
- const item: Option = {
546
- uuid: generators.id(),
547
- name: query,
548
- _type: 'user',
549
- } as Option
550
- setDisabled(true)
551
-
552
- setTimeout(() => {
553
- USERS.push(item as User)
554
-
555
- setDisabled(false)
556
- resolve(item)
557
- }, 2000)
558
- })
559
- }, [])
560
-
561
- return (
562
- <div className="flex flex-col space-y-4">
563
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
564
- <div className="flex-1">
565
- <Label htmlFor="select-creatable-async">Select the project manager</Label>
566
- <Select
567
- datasources={SINGLE_ASYNC_DATASOURCES}
568
- onCreate={handleCreate}
569
- multiple
570
- placeholder="Select creatable async"
571
- {...args}
572
- id="select-creatable-async"
573
- name="select-creatable-async"
574
- disabled={disabled}
575
- />
576
- </div>
577
- </div>
578
- <div className="text-sm" style={{ width: 720 }}>
579
- <p>Available options:</p>
580
- <code>{USERS.map(({ name }) => name).join(', ')}</code>
581
- </div>
582
- </div>
583
- )
584
- }
585
-
586
- CreatableAsync.parameters = {
587
- actions: { argTypesRegex: 'onClick' },
588
- docs: {
589
- description: {
590
- story: `
591
-
592
-
593
- > The asynchronous version is useful when the new item needs to be created in a backend service.
594
-
595
- The callback handler must return a \`Promise\`.
596
-
597
-
598
- \`\`\`jsx
599
- function handleCreate(query: string): Promise<void | Option> | void | Option {
600
- return new Promise<void>((resolve) => {
601
- // Create the new item
602
- const item: Option = {
603
- uuid: generators.id(),
604
- name: query,
605
- _type: 'user',
606
- }
607
-
608
- // Disable the Select to wait until the new item is created. (optional)
609
- setDisabled(true)
610
-
611
- // Run "asynchronous" code
612
- setTimeout(() => {
613
- // Update options
614
- USERS = [...USERS, item]
615
-
616
- // Enable the component
617
- setDisabled(false)
618
-
619
- // When the promise resolves with the new option, it will be selected. onChange will fire with the new value
620
- resolve(item)
621
- }, 2000)
622
- })
623
- }
624
- \`\`\`
625
- `,
626
- },
627
- },
628
- }
629
-
630
- const CreatableOption = () => {
631
- const select = useSelect()
632
-
633
- return <Select.CreatableOption leading="➕">{`Add "${select.query}"`}</Select.CreatableOption>
634
- }
635
-
636
- export const CustomCreatableOption: Story<SelectProps> = ({ onCreate, ...args }: SelectProps) => {
637
- const [value, setValue] = useState<Option | null>(null)
638
-
639
- const handleCreate = useCallback(
640
- function handleCreate(query: string) {
641
- void onCreate?.(query)
642
-
643
- const item: Option = { label: query, value: query } as Option
644
-
645
- setValue(item)
646
- fruits.push(item as Fruit)
647
- },
648
- [onCreate]
649
- )
650
-
651
- return (
652
- <div className="flex flex-col space-y-4">
653
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
654
- <div className="flex-1">
655
- <Label htmlFor="select-custom-creatable-option">Select your favorite fruit</Label>
656
- <Select
657
- placeholder="Select with custom creatable option"
658
- {...args}
659
- id="select-custom-creatable-option"
660
- name="select-custom-creatable-option"
661
- datasources={SINGLE_SYNC_DATASOURCES}
662
- onChange={(event) => setValue(event.target.value as Option)}
663
- onCreate={handleCreate}
664
- value={value as Option}
665
- components={{
666
- CreatableOption,
667
- }}
668
- />
669
- </div>
670
- </div>
671
- <div className="text-sm" style={{ width: 720 }}>
672
- <p>Available options:</p>
673
- <code>{fruits.map(({ label }) => label).join(', ')}</code>
674
- </div>
675
- </div>
676
- )
677
- }
678
-
679
- CustomCreatableOption.parameters = {
680
- docs: {
681
- description: {
682
- story: `
683
- \`\`\`jsx
684
- const CreatableOption = () => {
685
- const select = useSelect()
686
-
687
- return (
688
- <Select.CreatableOption leading="➕">
689
- Add "{select.query}"
690
- </Select.CreatableOption>
691
- )
692
- }
693
- \`\`\`
694
- `,
695
- },
696
- },
697
- }
698
-
699
- const FixedCreatableOption = () => {
700
- return (
701
- <Select.CreatableOption>
702
- <Text variant="body-bold" color="color-accent">
703
- Add new...
704
- </Text>
705
- </Select.CreatableOption>
706
- )
707
- }
708
-
709
- export const SelectWithFixedCreatableOption: Story<SelectProps> = ({
710
- onCreate,
711
- ...args
712
- }: SelectProps) => {
713
- const [value, setValue] = useState<Option | null>(null)
714
-
715
- const handleCreate = useCallback(
716
- function handleCreate(query: string) {
717
- void onCreate?.(query)
718
- },
719
- [onCreate]
720
- )
721
-
722
- return (
723
- <div className="flex flex-col space-y-4">
724
- <div className="flex flex-row space-x-4" style={{ width: 720 }}>
725
- <div className="flex-1">
726
- <Label htmlFor="select-custom-creatable-option">Select your favorite fruit</Label>
727
- <Select
728
- {...args}
729
- id="select-custom-creatable-option"
730
- name="select-custom-creatable-option"
731
- placeholder="Select with custom creatable option"
732
- datasources={SINGLE_SYNC_DATASOURCES}
733
- onChange={(event) => setValue(event.target.value as Option)}
734
- onCreate={handleCreate}
735
- value={value as Option}
736
- components={{
737
- CreatableOption: FixedCreatableOption,
738
- }}
739
- />
740
- </div>
741
- </div>
742
- <div className="text-sm" style={{ width: 720 }}>
743
- <p>Available options:</p>
744
- <code>{FRUITS.map(({ label }) => label).join(', ')}</code>
745
- </div>
746
- </div>
747
- )
748
- }
749
-
750
- SelectWithFixedCreatableOption.args = {
751
- createOptionPosition: 'first',
752
- isValidNewOption: true,
753
- }
754
-
755
- SelectWithFixedCreatableOption.parameters = {
756
- docs: {
757
- description: {
758
- story: `
759
- \`\`\`jsx
760
- const CreatableOption = () => {
761
- return (
762
- <Select.CreatableOption>
763
- Add new...
764
- </Select.CreatableOption>
765
- )
766
- }
767
-
768
- <Select
769
- {...args}
770
- createOptionPosition="first"
771
- isValidNewOption={true}
772
- components={{
773
- CreatableOption,
774
- }}
775
- />
776
- \`\`\`
777
- `,
778
- },
779
- },
780
- }