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

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