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

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