@veeqo/ui 0.0.1 → 0.0.4

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 (777) hide show
  1. package/.eslintrc.json +105 -0
  2. package/.storybook/Intro.mdx +22 -0
  3. package/.storybook/main.ts +1 -1
  4. package/.storybook/preview.ts +7 -0
  5. package/CHANGELOG.md +29 -0
  6. package/README.md +77 -0
  7. package/jest.config.js +16 -0
  8. package/lib/components/Accordion/Accordion.d.ts +12 -0
  9. package/lib/components/Accordion/index.d.ts +1 -0
  10. package/lib/components/Accordion/styled.d.ts +12 -0
  11. package/lib/components/ActionList/ActionList.d.ts +3 -0
  12. package/lib/components/ActionList/index.d.ts +1 -0
  13. package/lib/components/ActionList/styled.d.ts +36 -0
  14. package/lib/components/ActionList/types.d.ts +19 -0
  15. package/lib/components/Anchor/Anchor.d.ts +9 -0
  16. package/lib/components/Anchor/index.d.ts +1 -0
  17. package/lib/components/Anchor/styled.d.ts +1 -0
  18. package/lib/components/AnimatedDropdown/AnimatedDropdown.d.ts +3 -0
  19. package/lib/components/AnimatedDropdown/components/BasicDropdown.d.ts +5 -0
  20. package/lib/components/AnimatedDropdown/components/styled.d.ts +1 -0
  21. package/lib/components/AnimatedDropdown/index.d.ts +1 -0
  22. package/lib/components/AnimatedDropdown/styled.d.ts +10 -0
  23. package/lib/components/AnimatedDropdown/types.d.ts +14 -0
  24. package/lib/components/Avatar/Avatar.d.ts +3 -0
  25. package/lib/components/Avatar/index.d.ts +1 -0
  26. package/lib/components/Avatar/styled.d.ts +2 -0
  27. package/lib/components/Avatar/types.d.ts +11 -0
  28. package/lib/components/Badge/Badge.d.ts +3 -0
  29. package/lib/components/Badge/index.d.ts +1 -0
  30. package/lib/components/Badge/styled.d.ts +7 -0
  31. package/lib/components/Badge/types.d.ts +35 -0
  32. package/lib/components/Banner/Banner.d.ts +6 -0
  33. package/lib/components/Banner/index.d.ts +1 -0
  34. package/lib/components/Banner/styled.d.ts +7 -0
  35. package/lib/components/Banner/types.d.ts +20 -0
  36. package/lib/components/BaseContainer/BaseContainer.d.ts +1 -0
  37. package/lib/components/BaseContainer/index.d.ts +1 -0
  38. package/lib/components/Breadcrumbs/Breadcrumbs.d.ts +3 -0
  39. package/lib/components/Breadcrumbs/components/Breadcrumb.d.ts +3 -0
  40. package/lib/components/Breadcrumbs/components/styled.d.ts +2 -0
  41. package/lib/components/Breadcrumbs/index.d.ts +1 -0
  42. package/lib/components/Breadcrumbs/types.d.ts +22 -0
  43. package/lib/components/Button/Button.d.ts +9 -0
  44. package/lib/components/Button/components/styled.d.ts +20 -0
  45. package/lib/components/Button/index.d.ts +1 -0
  46. package/lib/components/Button/types.d.ts +18 -0
  47. package/lib/components/Card/Card.d.ts +28 -0
  48. package/lib/components/Card/index.d.ts +1 -0
  49. package/lib/components/Card/styled.d.ts +16 -0
  50. package/lib/components/CardHeader/CardHeader.d.ts +19 -0
  51. package/lib/components/CardHeader/index.d.ts +1 -0
  52. package/lib/components/CardHeader/styled.d.ts +2 -0
  53. package/lib/components/Checkbox/Checkbox.d.ts +13 -0
  54. package/lib/components/Checkbox/index.d.ts +1 -0
  55. package/lib/components/Checkbox/styled.d.ts +1 -0
  56. package/lib/components/Choice/Choice.d.ts +17 -0
  57. package/lib/components/Choice/components/styled.d.ts +17 -0
  58. package/lib/components/Choice/index.d.ts +1 -0
  59. package/lib/components/ChoiceList/ChoiceList.d.ts +29 -0
  60. package/lib/components/ChoiceList/index.d.ts +1 -0
  61. package/lib/components/ChoiceList/styled.d.ts +2 -0
  62. package/lib/components/CopyToClipboard/CopyToClipboard.d.ts +10 -0
  63. package/lib/components/CopyToClipboard/index.d.ts +1 -0
  64. package/lib/components/DataTable/DataTable.d.ts +21 -0
  65. package/lib/components/DataTable/SkeletonContent/SkeletonContent.d.ts +7 -0
  66. package/lib/components/DataTable/SkeletonContent/index.d.ts +1 -0
  67. package/lib/components/DataTable/SpecificState/SpecificState.d.ts +7 -0
  68. package/lib/components/DataTable/SpecificState/index.d.ts +1 -0
  69. package/lib/components/DataTable/SpecificState/styled.d.ts +8 -0
  70. package/lib/components/DataTable/StickyHeader.d.ts +10 -0
  71. package/lib/components/DataTable/cells/ClickableCell.d.ts +7 -0
  72. package/lib/components/DataTable/cells/EditableCell.d.ts +7 -0
  73. package/lib/components/DataTable/cells/SkeletonCell.d.ts +11 -0
  74. package/lib/components/DataTable/cells/SkeletonHeaderCell.d.ts +8 -0
  75. package/lib/components/DataTable/cells/index.d.ts +3 -0
  76. package/lib/components/DataTable/cells/styled.d.ts +1 -0
  77. package/lib/components/DataTable/index.d.ts +1 -0
  78. package/lib/components/DataTable/styled.d.ts +46 -0
  79. package/lib/components/DataTable/utils/constants.d.ts +9 -0
  80. package/lib/components/DataTable/utils/hooks.d.ts +4 -0
  81. package/lib/components/DataTable/utils/index.d.ts +2 -0
  82. package/lib/components/DataTable/utils/types.d.ts +106 -0
  83. package/lib/components/DataTableExp/DataTable.d.ts +22 -0
  84. package/lib/components/DataTableExp/components/ActionBar.d.ts +9 -0
  85. package/lib/components/DataTableExp/components/Cell.d.ts +7 -0
  86. package/lib/components/DataTableExp/components/ColumnHeader.d.ts +6 -0
  87. package/lib/components/DataTableExp/components/ColumnMenu.d.ts +8 -0
  88. package/lib/components/DataTableExp/components/EmptyBodyContent.d.ts +5 -0
  89. package/lib/components/DataTableExp/components/Header.d.ts +2 -0
  90. package/lib/components/DataTableExp/components/LoadingCellContent.d.ts +1 -0
  91. package/lib/components/DataTableExp/components/NoWrap.d.ts +1 -0
  92. package/lib/components/DataTableExp/components/Row.d.ts +7 -0
  93. package/lib/components/DataTableExp/components/ScrollContainer.d.ts +1 -0
  94. package/lib/components/DataTableExp/components/SelectionCell.d.ts +11 -0
  95. package/lib/components/DataTableExp/components/SelectionHeader.d.ts +3 -0
  96. package/lib/components/DataTableExp/components/StickyHead.d.ts +9 -0
  97. package/lib/components/DataTableExp/components/TableGrid.d.ts +4 -0
  98. package/lib/components/DataTableExp/components/Truncate.d.ts +1 -0
  99. package/lib/components/DataTableExp/components/Wrapper.d.ts +5 -0
  100. package/lib/components/DataTableExp/constants.d.ts +3 -0
  101. package/lib/components/DataTableExp/hooks/index.d.ts +6 -0
  102. package/lib/components/DataTableExp/hooks/useCellWidths.d.ts +2 -0
  103. package/lib/components/DataTableExp/hooks/useColumns.d.ts +6 -0
  104. package/lib/components/DataTableExp/hooks/useDragToScroll.d.ts +2 -0
  105. package/lib/components/DataTableExp/hooks/useNested.d.ts +7 -0
  106. package/lib/components/DataTableExp/hooks/useScrollPosition.d.ts +6 -0
  107. package/lib/components/DataTableExp/hooks/useSelection.d.ts +12 -0
  108. package/lib/components/DataTableExp/index.d.ts +1 -0
  109. package/lib/components/DataTableExp/renderers/index.d.ts +5 -0
  110. package/lib/components/DataTableExp/renderers/renderCell.d.ts +10 -0
  111. package/lib/components/DataTableExp/renderers/renderFooter.d.ts +13 -0
  112. package/lib/components/DataTableExp/renderers/renderHeader.d.ts +15 -0
  113. package/lib/components/DataTableExp/renderers/renderLoadingCell.d.ts +9 -0
  114. package/lib/components/DataTableExp/renderers/renderNestedCell.d.ts +10 -0
  115. package/lib/components/DataTableExp/types.d.ts +116 -0
  116. package/lib/components/DataTableExp/utils/GetSortIcon.d.ts +9 -0
  117. package/lib/components/DataTableExp/utils/alignmentToFlex.d.ts +2 -0
  118. package/lib/components/DataTableExp/utils/generateTableCss.d.ts +10 -0
  119. package/lib/components/DataTableExp/utils/getNextSortState.d.ts +7 -0
  120. package/lib/components/DataTableExp/utils/getRowState.d.ts +10 -0
  121. package/lib/components/DataTableExp/utils/index.d.ts +6 -0
  122. package/lib/components/DataTableExp/utils/parseWidth.d.ts +1 -0
  123. package/lib/components/DataTableExp/utils/sumAll.d.ts +2 -0
  124. package/lib/components/DescriptionList/DescriptionList.d.ts +11 -0
  125. package/lib/components/DescriptionList/index.d.ts +1 -0
  126. package/lib/components/DetailPage/DetailPage.d.ts +6 -0
  127. package/lib/components/DetailPage/index.d.ts +1 -0
  128. package/lib/components/DetailPage/styled.d.ts +2 -0
  129. package/lib/components/DimensionsInput/DimensionsInput.d.ts +3 -0
  130. package/lib/components/DimensionsInput/index.d.ts +1 -0
  131. package/lib/components/DimensionsInput/styled.d.ts +34 -0
  132. package/lib/components/DimensionsInput/types.d.ts +15 -0
  133. package/lib/components/FilterTag/FilterTag.d.ts +8 -0
  134. package/lib/components/FilterTag/index.d.ts +1 -0
  135. package/lib/components/FilterTag/styled.d.ts +12 -0
  136. package/lib/components/FilterTag/types.d.ts +14 -0
  137. package/lib/components/Grid/index.d.ts +2 -0
  138. package/lib/components/Grid/types.d.ts +8 -0
  139. package/lib/components/Image/Image.d.ts +20 -0
  140. package/lib/components/Image/components/PlaceholderImage.d.ts +2 -0
  141. package/lib/components/Image/components/styled.d.ts +6 -0
  142. package/lib/components/Image/index.d.ts +1 -0
  143. package/lib/components/Image/types.d.ts +6 -0
  144. package/lib/components/Image/utils.d.ts +2 -0
  145. package/lib/components/InputGroup/index.d.ts +1 -0
  146. package/lib/components/Loader/Grid.d.ts +1 -2
  147. package/lib/components/Loader/TailSpin.d.ts +1 -2
  148. package/lib/components/Loader/ThreeDots.d.ts +1 -2
  149. package/lib/components/LoginWithAmazonButton/LoginWithAmazonButton.d.ts +7 -0
  150. package/lib/components/LoginWithAmazonButton/index.d.ts +1 -0
  151. package/lib/components/LoginWithAmazonButton/styled.d.ts +1 -0
  152. package/lib/components/Modal/Modal.d.ts +3 -0
  153. package/lib/components/Modal/components/Dialog/Dialog.d.ts +8 -0
  154. package/lib/components/Modal/components/Dialog/constants.d.ts +44 -0
  155. package/lib/components/Modal/components/Dialog/styled.d.ts +24 -0
  156. package/lib/components/Modal/components/styled.d.ts +5 -0
  157. package/lib/components/Modal/index.d.ts +1 -0
  158. package/lib/components/Modal/types.d.ts +40 -0
  159. package/lib/components/PageHeader/PageHeader.d.ts +29 -0
  160. package/lib/components/PageHeader/index.d.ts +1 -0
  161. package/lib/components/PageHeader/styled.d.ts +23 -0
  162. package/lib/components/Pagination/Pagination.d.ts +3 -0
  163. package/lib/components/Pagination/components.d.ts +4 -0
  164. package/lib/components/Pagination/hooks/usePagination.d.ts +13 -0
  165. package/lib/components/Pagination/index.d.ts +1 -0
  166. package/lib/components/Pagination/styled.d.ts +29 -0
  167. package/lib/components/Pagination/types.d.ts +8 -0
  168. package/lib/components/PaginationRange/Items/Item/Item.d.ts +3 -0
  169. package/lib/components/PaginationRange/Items/Item/index.d.ts +1 -0
  170. package/lib/components/PaginationRange/Items/Item/styled.d.ts +3 -0
  171. package/lib/components/PaginationRange/Items/Item/types.d.ts +5 -0
  172. package/lib/components/PaginationRange/Items/Items.d.ts +7 -0
  173. package/lib/components/PaginationRange/Items/index.d.ts +1 -0
  174. package/lib/components/PaginationRange/PaginationRange.d.ts +9 -0
  175. package/lib/components/PaginationRange/index.d.ts +1 -0
  176. package/lib/components/PaginationRange/styled.d.ts +6 -0
  177. package/lib/components/PaginationRange/types.d.ts +15 -0
  178. package/lib/components/Popover/Popover.d.ts +15 -0
  179. package/lib/components/Popover/PopoverDemo.d.ts +3 -0
  180. package/lib/components/Popover/index.d.ts +1 -0
  181. package/lib/components/Portal/Portal.d.ts +20 -0
  182. package/lib/components/Portal/index.d.ts +1 -0
  183. package/lib/components/PriceInput/PriceInput.d.ts +3 -0
  184. package/lib/components/PriceInput/index.d.ts +1 -0
  185. package/lib/components/PriceInput/styled.d.ts +29 -0
  186. package/lib/components/PriceInput/types.d.ts +12 -0
  187. package/lib/components/Radio/Radio.d.ts +12 -0
  188. package/lib/components/Radio/index.d.ts +1 -0
  189. package/lib/components/Radio/styled.d.ts +1 -0
  190. package/lib/components/Search/Search.d.ts +3 -0
  191. package/lib/components/Search/index.d.ts +1 -0
  192. package/lib/components/Search/styled.d.ts +26 -0
  193. package/lib/components/Search/types.d.ts +9 -0
  194. package/lib/components/SegmentedControl/SegmentedControl.d.ts +3 -0
  195. package/lib/components/SegmentedControl/index.d.ts +1 -0
  196. package/lib/components/SegmentedControl/styled.d.ts +1 -0
  197. package/lib/components/SegmentedControl/types.d.ts +13 -0
  198. package/lib/components/Select/Select.d.ts +17 -0
  199. package/lib/components/Select/index.d.ts +1 -0
  200. package/lib/components/Select/styled.d.ts +1 -0
  201. package/lib/components/SimpleTable/SimpleTable.d.ts +15 -0
  202. package/lib/components/SimpleTable/index.d.ts +1 -0
  203. package/lib/components/SimpleTable/styled.d.ts +15 -0
  204. package/lib/components/SimpleTable/types.d.ts +6 -0
  205. package/lib/components/Slider/Slider.d.ts +3 -0
  206. package/lib/components/Slider/index.d.ts +1 -0
  207. package/lib/components/Slider/styled.d.ts +8 -0
  208. package/lib/components/Slider/types.d.ts +26 -0
  209. package/lib/components/Stack/Alignments.d.ts +1 -2
  210. package/lib/components/Stack/Stack.d.ts +1 -2
  211. package/lib/components/Stack/types.d.ts +1 -1
  212. package/lib/components/Stepper/Stepper.d.ts +9 -0
  213. package/lib/components/Stepper/index.d.ts +1 -0
  214. package/lib/components/Stepper/styled.d.ts +5 -0
  215. package/lib/components/Tag/Tag.d.ts +5 -0
  216. package/lib/components/Tag/index.d.ts +1 -0
  217. package/lib/components/Text/Text.d.ts +2 -0
  218. package/lib/components/Text/index.d.ts +1 -0
  219. package/lib/components/Text/textVariants.d.ts +4 -0
  220. package/lib/components/Text/types.d.ts +14 -0
  221. package/lib/components/Text/utils.d.ts +2 -0
  222. package/lib/components/TextField/TextField.d.ts +3 -0
  223. package/lib/components/TextField/index.d.ts +20 -0
  224. package/lib/components/TextField/styled.d.ts +2 -0
  225. package/lib/components/TextField/types.d.ts +26 -0
  226. package/lib/components/ToastsLayout/ToastsLayout.d.ts +3 -0
  227. package/lib/components/ToastsLayout/components/Toast.d.ts +3 -0
  228. package/lib/components/ToastsLayout/components/styled.d.ts +10 -0
  229. package/lib/components/ToastsLayout/index.d.ts +1 -0
  230. package/lib/components/ToastsLayout/types.d.ts +38 -0
  231. package/lib/components/Toggle/Toggle.d.ts +6 -0
  232. package/lib/components/Toggle/index.d.ts +1 -0
  233. package/lib/components/Toggle/styled.d.ts +11 -0
  234. package/lib/components/Toggle/types.d.ts +9 -0
  235. package/lib/components/ToggleButton/ToggleButton.d.ts +9 -0
  236. package/lib/components/ToggleButton/index.d.ts +1 -0
  237. package/lib/components/ToggleButton/styled.d.ts +1 -0
  238. package/lib/components/Tooltip/Tooltip.d.ts +2 -0
  239. package/lib/components/Tooltip/index.d.ts +1 -0
  240. package/lib/components/Tooltip/styled.d.ts +8 -0
  241. package/lib/components/Tooltip/types.d.ts +36 -0
  242. package/lib/components/VideoModal/VideoModal.d.ts +3 -0
  243. package/lib/components/VideoModal/VideoModalDemo.d.ts +2 -0
  244. package/lib/components/VideoModal/components/Popup.d.ts +8 -0
  245. package/lib/components/VideoModal/components/styled.d.ts +7 -0
  246. package/lib/components/VideoModal/index.d.ts +1 -0
  247. package/lib/components/VideoModal/styled.d.ts +11 -0
  248. package/lib/components/VideoModal/types.d.ts +9 -0
  249. package/lib/components/View/View.d.ts +11 -0
  250. package/lib/components/View/index.d.ts +1 -0
  251. package/lib/components/View/styled.d.ts +13 -0
  252. package/lib/components/View/types.d.ts +30 -0
  253. package/lib/components/WeightInput/WeightInput.d.ts +3 -0
  254. package/lib/components/WeightInput/index.d.ts +1 -0
  255. package/lib/components/WeightInput/styled.d.ts +33 -0
  256. package/lib/components/WeightInput/types.d.ts +21 -0
  257. package/lib/components/index.d.ts +50 -0
  258. package/lib/components/types.d.ts +20 -0
  259. package/lib/hoc/index.d.ts +2 -0
  260. package/lib/hoc/withDeprecated.d.ts +2 -0
  261. package/lib/hoc/withLabels/index.d.ts +1 -0
  262. package/lib/hoc/withLabels/styled.d.ts +5 -0
  263. package/lib/hoc/withLabels/withLabels.d.ts +8 -0
  264. package/lib/hooks/index.d.ts +7 -0
  265. package/lib/hooks/useClickOutside.d.ts +5 -0
  266. package/lib/hooks/useDebounce.d.ts +1 -0
  267. package/lib/hooks/useDropdown.d.ts +6 -0
  268. package/lib/hooks/useFocusVisible.d.ts +11 -0
  269. package/lib/hooks/useHover.d.ts +1 -0
  270. package/lib/hooks/useIsOverflowing.d.ts +9 -0
  271. package/lib/hooks/useTabs.d.ts +6 -0
  272. package/lib/index.d.ts +5 -520
  273. package/lib/index.esm.js +1 -1
  274. package/lib/index.esm.js.map +1 -1
  275. package/lib/index.js +1 -1
  276. package/lib/index.js.map +1 -1
  277. package/lib/tempIcons/ArrowDownIcon.d.ts +2 -0
  278. package/lib/tempIcons/ArrowUpIcon.d.ts +2 -0
  279. package/lib/tempIcons/AttentionIcon.d.ts +2 -0
  280. package/lib/tempIcons/CalendarIcon.d.ts +2 -0
  281. package/lib/tempIcons/ClipboardIcon.d.ts +2 -0
  282. package/lib/tempIcons/CrossIcon.d.ts +2 -0
  283. package/lib/tempIcons/DoubleArrowAscIcon.d.ts +2 -0
  284. package/lib/tempIcons/DoubleArrowDescIcon.d.ts +2 -0
  285. package/lib/tempIcons/DoubleArrowIcon.d.ts +2 -0
  286. package/lib/tempIcons/DoubleArrowIconIcon.d.ts +2 -0
  287. package/lib/tempIcons/DownArrowIcon.d.ts +2 -0
  288. package/lib/tempIcons/DropdownIcon.d.ts +2 -0
  289. package/lib/tempIcons/EditIcon.d.ts +2 -0
  290. package/lib/tempIcons/EndArrowIcon.d.ts +2 -0
  291. package/lib/tempIcons/FailIcon.d.ts +2 -0
  292. package/lib/tempIcons/HelpIcon.d.ts +2 -0
  293. package/lib/tempIcons/InfoIcon.d.ts +2 -0
  294. package/lib/tempIcons/LeftArrowIcon.d.ts +2 -0
  295. package/lib/tempIcons/MergeIcon.d.ts +2 -0
  296. package/lib/tempIcons/MoreHorizIcon.d.ts +2 -0
  297. package/lib/tempIcons/ReorderIcon.d.ts +2 -0
  298. package/lib/tempIcons/RightArrowIcon.d.ts +2 -0
  299. package/lib/tempIcons/SearchIcon.d.ts +2 -0
  300. package/lib/tempIcons/StartArrowIcon.d.ts +2 -0
  301. package/lib/tempIcons/SuccessIcon.d.ts +2 -0
  302. package/lib/tempIcons/UpArrowIcon.d.ts +2 -0
  303. package/lib/tempIcons/VisibilityIcon.d.ts +2 -0
  304. package/lib/tempIcons/VisibilityOffIcon.d.ts +2 -0
  305. package/lib/theme/index.d.ts +2 -2
  306. package/lib/theme/modules/shadows.d.ts +1 -1
  307. package/lib/utils/buildClassnames.d.ts +1 -0
  308. package/lib/utils/color.d.ts +13 -0
  309. package/lib/utils/generateId.d.ts +1 -0
  310. package/lib/utils/index.d.ts +3 -0
  311. package/lib/utils/paginationList.d.ts +4 -0
  312. package/lib/utils/setupIntersectionObserverMock.d.ts +18 -0
  313. package/package.json +68 -14
  314. package/rollup.config.mjs +6 -19
  315. package/setupJestMock.js +5 -0
  316. package/setupTests.js +6 -0
  317. package/src/components/Accordion/Accordion.stories.mdx +41 -0
  318. package/src/components/Accordion/Accordion.stories.tsx +29 -0
  319. package/src/components/Accordion/Accordion.test.tsx +34 -0
  320. package/src/components/Accordion/Accordion.tsx +62 -0
  321. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +152 -0
  322. package/src/components/Accordion/index.ts +1 -0
  323. package/src/components/Accordion/styled.ts +102 -0
  324. package/src/components/ActionList/ActionList.stories.tsx +23 -0
  325. package/src/components/ActionList/ActionList.test.tsx +39 -0
  326. package/src/components/ActionList/ActionList.tsx +72 -0
  327. package/src/components/ActionList/__snapshots__/ActionList.test.tsx.snap +247 -0
  328. package/src/components/ActionList/index.ts +1 -0
  329. package/src/components/ActionList/styled.ts +62 -0
  330. package/src/components/ActionList/types.ts +22 -0
  331. package/src/components/Anchor/Anchor.stories.tsx +35 -0
  332. package/src/components/Anchor/Anchor.test.tsx +10 -0
  333. package/src/components/Anchor/Anchor.tsx +17 -0
  334. package/src/components/Anchor/__snapshots__/Anchor.test.tsx.snap +34 -0
  335. package/src/components/Anchor/index.ts +1 -0
  336. package/src/components/Anchor/styled.ts +22 -0
  337. package/src/components/AnimatedDropdown/AnimatedDropdown.stories.tsx +44 -0
  338. package/src/components/AnimatedDropdown/AnimatedDropdown.test.tsx +14 -0
  339. package/src/components/AnimatedDropdown/AnimatedDropdown.tsx +54 -0
  340. package/src/components/AnimatedDropdown/__snapshots__/AnimatedDropdown.test.tsx.snap +117 -0
  341. package/src/components/AnimatedDropdown/components/BasicDropdown.test.tsx +14 -0
  342. package/src/components/AnimatedDropdown/components/BasicDropdown.tsx +17 -0
  343. package/src/components/AnimatedDropdown/components/__snapshots__/BasicDropdown.test.tsx.snap +31 -0
  344. package/src/components/AnimatedDropdown/components/styled.ts +11 -0
  345. package/src/components/AnimatedDropdown/index.ts +1 -0
  346. package/src/components/AnimatedDropdown/styled.ts +51 -0
  347. package/src/components/AnimatedDropdown/types.ts +16 -0
  348. package/src/components/Avatar/Avatar.stories.tsx +30 -0
  349. package/src/components/Avatar/Avatar.test.tsx +10 -0
  350. package/src/components/Avatar/Avatar.tsx +23 -0
  351. package/src/components/Avatar/__snapshots__/Avatar.test.tsx.snap +47 -0
  352. package/src/components/Avatar/index.ts +1 -0
  353. package/src/components/Avatar/styled.ts +24 -0
  354. package/src/components/Avatar/types.ts +12 -0
  355. package/src/components/Badge/Badge.stories.tsx +29 -0
  356. package/src/components/Badge/Badge.test.tsx +15 -0
  357. package/src/components/Badge/Badge.tsx +33 -0
  358. package/src/components/Badge/__snapshots__/Badge.test.tsx.snap +78 -0
  359. package/src/components/Badge/index.ts +1 -0
  360. package/src/components/Badge/styled.ts +50 -0
  361. package/src/components/Badge/types.ts +43 -0
  362. package/src/components/Banner/Banner.stories.tsx +30 -0
  363. package/src/components/Banner/Banner.test.tsx +10 -0
  364. package/src/components/Banner/Banner.tsx +45 -0
  365. package/src/components/Banner/__snapshots__/Banner.test.tsx.snap +124 -0
  366. package/src/components/Banner/index.ts +1 -0
  367. package/src/components/Banner/styled.ts +49 -0
  368. package/src/components/Banner/types.ts +23 -0
  369. package/src/components/BaseContainer/BaseContainer.test.tsx +10 -0
  370. package/src/components/BaseContainer/BaseContainer.ts +8 -0
  371. package/src/components/BaseContainer/__snapshots__/BaseContainer.test.tsx.snap +18 -0
  372. package/src/components/BaseContainer/index.ts +1 -0
  373. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +43 -0
  374. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +21 -0
  375. package/src/components/Breadcrumbs/Breadcrumbs.tsx +31 -0
  376. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +91 -0
  377. package/src/components/Breadcrumbs/components/Breadcrumb.tsx +20 -0
  378. package/src/components/Breadcrumbs/components/styled.ts +31 -0
  379. package/src/components/Breadcrumbs/index.ts +1 -0
  380. package/src/components/Breadcrumbs/types.ts +23 -0
  381. package/src/components/Button/Button.stories.tsx +111 -0
  382. package/src/components/Button/Button.test.tsx +101 -0
  383. package/src/components/Button/Button.tsx +82 -0
  384. package/src/components/Button/Docs.mdx +19 -0
  385. package/src/components/Button/__snapshots__/Button.test.tsx.snap +1570 -0
  386. package/src/components/Button/components/styled.ts +271 -0
  387. package/src/components/Button/index.ts +1 -0
  388. package/src/components/Button/types.ts +27 -0
  389. package/src/components/Card/Card.stories.tsx +85 -0
  390. package/src/components/Card/Card.test.tsx +26 -0
  391. package/src/components/Card/Card.tsx +88 -0
  392. package/src/components/Card/Docs.mdx +134 -0
  393. package/src/components/Card/__snapshots__/Card.test.tsx.snap +390 -0
  394. package/src/components/Card/index.ts +1 -0
  395. package/src/components/Card/styled.ts +93 -0
  396. package/src/components/CardHeader/CardHeader.stories.tsx +38 -0
  397. package/src/components/CardHeader/CardHeader.test.tsx +12 -0
  398. package/src/components/CardHeader/CardHeader.tsx +63 -0
  399. package/src/components/CardHeader/__snapshots__/CardHeader.test.tsx.snap +218 -0
  400. package/src/components/CardHeader/index.ts +1 -0
  401. package/src/components/CardHeader/styled.ts +30 -0
  402. package/src/components/Checkbox/Checkbox.stories.tsx +64 -0
  403. package/src/components/Checkbox/Checkbox.test.tsx +57 -0
  404. package/src/components/Checkbox/Checkbox.tsx +62 -0
  405. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +129 -0
  406. package/src/components/Checkbox/index.ts +1 -0
  407. package/src/components/Checkbox/styled.ts +67 -0
  408. package/src/components/Choice/Choice.tsx +89 -0
  409. package/src/components/Choice/components/styled.ts +98 -0
  410. package/src/components/Choice/index.ts +1 -0
  411. package/src/components/ChoiceList/ChoiceList.stories.tsx +23 -0
  412. package/src/components/ChoiceList/ChoiceList.test.tsx +39 -0
  413. package/src/components/ChoiceList/ChoiceList.tsx +86 -0
  414. package/src/components/ChoiceList/__snapshots__/ChoiceList.test.tsx.snap +352 -0
  415. package/src/components/ChoiceList/index.ts +1 -0
  416. package/src/components/ChoiceList/styled.ts +23 -0
  417. package/src/components/CopyToClipboard/CopyToClipboard.stories.tsx +18 -0
  418. package/src/components/CopyToClipboard/CopyToClipboard.test.tsx +10 -0
  419. package/src/components/CopyToClipboard/CopyToClipboard.tsx +53 -0
  420. package/src/components/CopyToClipboard/__snapshots__/CopyToClipboard.test.tsx.snap +129 -0
  421. package/src/components/CopyToClipboard/index.ts +1 -0
  422. package/src/components/DataTable/DataTable.stories.tsx +99 -0
  423. package/src/components/DataTable/DataTable.test.tsx +104 -0
  424. package/src/components/DataTable/DataTable.tsx +634 -0
  425. package/src/components/DataTable/DataTableDocs.mdx +625 -0
  426. package/src/components/DataTable/SkeletonContent/SkeletonContent.tsx +46 -0
  427. package/src/components/DataTable/SkeletonContent/index.ts +1 -0
  428. package/src/components/DataTable/SpecificState/SpecificState.tsx +17 -0
  429. package/src/components/DataTable/SpecificState/index.ts +1 -0
  430. package/src/components/DataTable/SpecificState/styled.ts +42 -0
  431. package/src/components/DataTable/StickyHeader.tsx +64 -0
  432. package/src/components/DataTable/__snapshots__/DataTable.test.tsx.snap +439 -0
  433. package/src/components/DataTable/cells/ClickableCell.tsx +21 -0
  434. package/src/components/DataTable/cells/EditableCell.tsx +22 -0
  435. package/src/components/DataTable/cells/SkeletonCell.tsx +17 -0
  436. package/src/components/DataTable/cells/SkeletonHeaderCell.tsx +20 -0
  437. package/src/components/DataTable/cells/index.ts +3 -0
  438. package/src/components/DataTable/cells/styled.ts +25 -0
  439. package/src/components/DataTable/index.ts +1 -0
  440. package/src/components/DataTable/styled.ts +291 -0
  441. package/src/components/DataTable/utils/constants.tsx +25 -0
  442. package/src/components/DataTable/utils/hooks.ts +38 -0
  443. package/src/components/DataTable/utils/index.ts +23 -0
  444. package/src/components/DataTable/utils/types.ts +117 -0
  445. package/src/components/DataTableExp/DataTable.test.tsx +214 -0
  446. package/src/components/DataTableExp/DataTable.tsx +291 -0
  447. package/src/components/DataTableExp/DataTableExp.stories.tsx +329 -0
  448. package/src/components/DataTableExp/Docs.mdx +74 -0
  449. package/src/components/DataTableExp/components/ActionBar.tsx +87 -0
  450. package/src/components/DataTableExp/components/Cell.ts +41 -0
  451. package/src/components/DataTableExp/components/ColumnHeader.tsx +52 -0
  452. package/src/components/DataTableExp/components/ColumnMenu.tsx +96 -0
  453. package/src/components/DataTableExp/components/EmptyBodyContent.ts +23 -0
  454. package/src/components/DataTableExp/components/Header.ts +20 -0
  455. package/src/components/DataTableExp/components/LoadingCellContent.ts +39 -0
  456. package/src/components/DataTableExp/components/NoWrap.ts +5 -0
  457. package/src/components/DataTableExp/components/Row.ts +39 -0
  458. package/src/components/DataTableExp/components/ScrollContainer.ts +8 -0
  459. package/src/components/DataTableExp/components/SelectionCell.tsx +36 -0
  460. package/src/components/DataTableExp/components/SelectionHeader.tsx +20 -0
  461. package/src/components/DataTableExp/components/StickyHead.tsx +134 -0
  462. package/src/components/DataTableExp/components/TableGrid.ts +28 -0
  463. package/src/components/DataTableExp/components/Truncate.ts +7 -0
  464. package/src/components/DataTableExp/components/Wrapper.ts +26 -0
  465. package/src/components/DataTableExp/constants.ts +4 -0
  466. package/src/components/DataTableExp/hooks/index.tsx +6 -0
  467. package/src/components/DataTableExp/hooks/useCellWidths.ts +34 -0
  468. package/src/components/DataTableExp/hooks/useColumns.ts +14 -0
  469. package/src/components/DataTableExp/hooks/useDragToScroll.ts +48 -0
  470. package/src/components/DataTableExp/hooks/useNested.ts +31 -0
  471. package/src/components/DataTableExp/hooks/useScrollPosition.ts +45 -0
  472. package/src/components/DataTableExp/hooks/useSelection.tsx +92 -0
  473. package/src/components/DataTableExp/index.tsx +1 -0
  474. package/src/components/DataTableExp/renderers/index.tsx +5 -0
  475. package/src/components/DataTableExp/renderers/renderCell.ts +31 -0
  476. package/src/components/DataTableExp/renderers/renderFooter.tsx +33 -0
  477. package/src/components/DataTableExp/renderers/renderHeader.tsx +83 -0
  478. package/src/components/DataTableExp/renderers/renderLoadingCell.tsx +29 -0
  479. package/src/components/DataTableExp/renderers/renderNestedCell.tsx +33 -0
  480. package/src/components/DataTableExp/types.ts +168 -0
  481. package/src/components/DataTableExp/utils/GetSortIcon.tsx +24 -0
  482. package/src/components/DataTableExp/utils/alignmentToFlex.ts +14 -0
  483. package/src/components/DataTableExp/utils/generateTableCss.ts +114 -0
  484. package/src/components/DataTableExp/utils/getNextSortState.ts +18 -0
  485. package/src/components/DataTableExp/utils/getRowState.test.ts +33 -0
  486. package/src/components/DataTableExp/utils/getRowState.ts +17 -0
  487. package/src/components/DataTableExp/utils/index.ts +6 -0
  488. package/src/components/DataTableExp/utils/parseWidth.ts +12 -0
  489. package/src/components/DataTableExp/utils/sumAll.ts +7 -0
  490. package/src/components/DescriptionList/DescriptionList.stories.tsx +24 -0
  491. package/src/components/DescriptionList/DescriptionList.test.tsx +16 -0
  492. package/src/components/DescriptionList/DescriptionList.tsx +90 -0
  493. package/src/components/DescriptionList/__snapshots__/DescriptionList.test.tsx.snap +86 -0
  494. package/src/components/DescriptionList/index.ts +1 -0
  495. package/src/components/DetailPage/DetailPage.stories.tsx +45 -0
  496. package/src/components/DetailPage/DetailPage.test.tsx +15 -0
  497. package/src/components/DetailPage/DetailPage.tsx +23 -0
  498. package/src/components/DetailPage/__snapshots__/DetailPage.test.tsx.snap +52 -0
  499. package/src/components/DetailPage/index.ts +1 -0
  500. package/src/components/DetailPage/styled.ts +27 -0
  501. package/src/components/DimensionsInput/DimensionsInput.stories.tsx +33 -0
  502. package/src/components/DimensionsInput/DimensionsInput.test.tsx +98 -0
  503. package/src/components/DimensionsInput/DimensionsInput.tsx +63 -0
  504. package/src/components/DimensionsInput/__snapshots__/DimensionsInput.test.tsx.snap +303 -0
  505. package/src/components/DimensionsInput/index.ts +1 -0
  506. package/src/components/DimensionsInput/styled.ts +66 -0
  507. package/src/components/DimensionsInput/types.ts +16 -0
  508. package/src/components/FilterTag/FilterTag.stories.tsx +32 -0
  509. package/src/components/FilterTag/FilterTag.test.tsx +10 -0
  510. package/src/components/FilterTag/FilterTag.tsx +111 -0
  511. package/src/components/FilterTag/__snapshots__/FilterTag.test.tsx.snap +117 -0
  512. package/src/components/FilterTag/index.ts +1 -0
  513. package/src/components/FilterTag/styled.ts +77 -0
  514. package/src/components/FilterTag/types.ts +15 -0
  515. package/src/components/Grid/Grid.stories.mdx +34 -0
  516. package/src/components/Grid/Grid.test.tsx +14 -0
  517. package/src/components/Grid/__snapshots__/Grid.test.tsx.snap +32 -0
  518. package/src/components/Grid/index.ts +12 -0
  519. package/src/components/Grid/types.ts +10 -0
  520. package/src/components/Image/Image.stories.tsx +20 -0
  521. package/src/components/Image/Image.test.tsx +10 -0
  522. package/src/components/Image/Image.tsx +122 -0
  523. package/src/components/Image/__snapshots__/Image.test.tsx.snap +34 -0
  524. package/src/components/Image/components/PlaceholderImage.tsx +19 -0
  525. package/src/components/Image/components/styled.ts +17 -0
  526. package/src/components/Image/index.ts +1 -0
  527. package/src/components/Image/types.ts +6 -0
  528. package/src/components/Image/utils.ts +8 -0
  529. package/src/components/InputGroup/InputGroup.stories.tsx +33 -0
  530. package/src/components/InputGroup/InputGroup.test.tsx +15 -0
  531. package/src/components/InputGroup/__snapshots__/InputGroup.test.tsx.snap +182 -0
  532. package/src/components/InputGroup/index.ts +46 -0
  533. package/src/components/Loader/Docs.mdx +1 -1
  534. package/src/components/Loader/Grid.tsx +1 -3
  535. package/src/components/Loader/Loader.stories.tsx +1 -1
  536. package/src/components/Loader/Loader.test.tsx +14 -0
  537. package/src/components/Loader/Loader.tsx +5 -5
  538. package/src/components/Loader/TailSpin.tsx +1 -3
  539. package/src/components/Loader/ThreeDots.tsx +1 -3
  540. package/src/components/Loader/__snapshots__/Loader.test.tsx.snap +315 -13
  541. package/src/components/LoginWithAmazonButton/LoginWithAmazonButton.stories.tsx +14 -0
  542. package/src/components/LoginWithAmazonButton/LoginWithAmazonButton.test.tsx +19 -0
  543. package/src/components/LoginWithAmazonButton/LoginWithAmazonButton.tsx +38 -0
  544. package/src/components/LoginWithAmazonButton/index.tsx +1 -0
  545. package/src/components/LoginWithAmazonButton/styled.ts +14 -0
  546. package/src/components/Modal/Modal.stories.tsx +455 -0
  547. package/src/components/Modal/Modal.test.tsx +211 -0
  548. package/src/components/Modal/Modal.tsx +110 -0
  549. package/src/components/Modal/__snapshots__/Modal.test.tsx.snap +1940 -0
  550. package/src/components/Modal/components/Dialog/Dialog.tsx +11 -0
  551. package/src/components/Modal/components/Dialog/constants.ts +48 -0
  552. package/src/components/Modal/components/Dialog/styled.ts +104 -0
  553. package/src/components/Modal/components/styled.ts +24 -0
  554. package/src/components/Modal/index.tsx +1 -0
  555. package/src/components/Modal/types.ts +61 -0
  556. package/src/components/PageHeader/PageHeader.test.tsx +40 -0
  557. package/src/components/PageHeader/PageHeader.tsx +119 -0
  558. package/src/components/PageHeader/PageHeaderDocs.mdx +69 -0
  559. package/src/components/PageHeader/__snapshots__/PageHeader.test.tsx.snap +906 -0
  560. package/src/components/PageHeader/index.ts +1 -0
  561. package/src/components/PageHeader/styled.ts +81 -0
  562. package/src/components/Pagination/Docs.mdx +61 -0
  563. package/src/components/Pagination/Pagination.stories.tsx +27 -0
  564. package/src/components/Pagination/Pagination.test.tsx +102 -0
  565. package/src/components/Pagination/Pagination.tsx +105 -0
  566. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +395 -0
  567. package/src/components/Pagination/components.tsx +16 -0
  568. package/src/components/Pagination/hooks/usePagination.ts +88 -0
  569. package/src/components/Pagination/index.ts +1 -0
  570. package/src/components/Pagination/styled.ts +31 -0
  571. package/src/components/Pagination/types.ts +9 -0
  572. package/src/components/PaginationRange/Items/Item/Item.tsx +14 -0
  573. package/src/components/PaginationRange/Items/Item/index.ts +1 -0
  574. package/src/components/PaginationRange/Items/Item/styled.ts +26 -0
  575. package/src/components/PaginationRange/Items/Item/types.ts +6 -0
  576. package/src/components/PaginationRange/Items/Items.tsx +27 -0
  577. package/src/components/PaginationRange/Items/index.ts +1 -0
  578. package/src/components/PaginationRange/PaginationRange.stories.tsx +14 -0
  579. package/src/components/PaginationRange/PaginationRange.test.tsx +10 -0
  580. package/src/components/PaginationRange/PaginationRange.tsx +69 -0
  581. package/src/components/PaginationRange/__snapshots__/PaginationRange.test.tsx.snap +155 -0
  582. package/src/components/PaginationRange/index.ts +1 -0
  583. package/src/components/PaginationRange/styled.ts +39 -0
  584. package/src/components/PaginationRange/types.ts +17 -0
  585. package/src/components/Popover/Popover.test.tsx +87 -0
  586. package/src/components/Popover/Popover.tsx +82 -0
  587. package/src/components/Popover/PopoverDemo.tsx +53 -0
  588. package/src/components/Popover/PopoverDocs.mdx +64 -0
  589. package/src/components/Popover/__snapshots__/Popover.test.tsx.snap +35 -0
  590. package/src/components/Popover/index.ts +1 -0
  591. package/src/components/Portal/Portal.stories.tsx +18 -0
  592. package/src/components/Portal/Portal.tsx +62 -0
  593. package/src/components/Portal/index.ts +1 -0
  594. package/src/components/PriceInput/PriceInput.stories.tsx +36 -0
  595. package/src/components/PriceInput/PriceInput.test.tsx +22 -0
  596. package/src/components/PriceInput/PriceInput.tsx +101 -0
  597. package/src/components/PriceInput/index.tsx +1 -0
  598. package/src/components/PriceInput/styled.ts +116 -0
  599. package/src/components/PriceInput/types.ts +13 -0
  600. package/src/components/Radio/Radio.stories.tsx +57 -0
  601. package/src/components/Radio/Radio.test.tsx +8 -0
  602. package/src/components/Radio/Radio.tsx +39 -0
  603. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +128 -0
  604. package/src/components/Radio/index.ts +1 -0
  605. package/src/components/Radio/styled.ts +58 -0
  606. package/src/components/Search/Search.stories.mdx +23 -0
  607. package/src/components/Search/Search.stories.tsx +31 -0
  608. package/src/components/Search/Search.test.tsx +12 -0
  609. package/src/components/Search/Search.tsx +87 -0
  610. package/src/components/Search/__snapshots__/Search.test.tsx.snap +162 -0
  611. package/src/components/Search/index.ts +1 -0
  612. package/src/components/Search/styled.ts +46 -0
  613. package/src/components/Search/types.ts +10 -0
  614. package/src/components/SegmentedControl/SegmentedControl.stories.tsx +43 -0
  615. package/src/components/SegmentedControl/SegmentedControl.test.tsx +67 -0
  616. package/src/components/SegmentedControl/SegmentedControl.tsx +27 -0
  617. package/src/components/SegmentedControl/__snapshots__/SegmentedControl.test.tsx.snap +825 -0
  618. package/src/components/SegmentedControl/index.ts +1 -0
  619. package/src/components/SegmentedControl/styled.ts +50 -0
  620. package/src/components/SegmentedControl/types.ts +13 -0
  621. package/src/components/Select/Select.stories.tsx +37 -0
  622. package/src/components/Select/Select.test.tsx +37 -0
  623. package/src/components/Select/Select.tsx +58 -0
  624. package/src/components/Select/__snapshots__/Select.test.tsx.snap +199 -0
  625. package/src/components/Select/index.ts +1 -0
  626. package/src/components/Select/styled.ts +53 -0
  627. package/src/components/SimpleTable/SimpleTable.stories.tsx +60 -0
  628. package/src/components/SimpleTable/SimpleTable.test.tsx +28 -0
  629. package/src/components/SimpleTable/SimpleTable.tsx +18 -0
  630. package/src/components/SimpleTable/__snapshots__/SimpleTable.test.tsx.snap +87 -0
  631. package/src/components/SimpleTable/index.ts +1 -0
  632. package/src/components/SimpleTable/styled.ts +68 -0
  633. package/src/components/SimpleTable/types.ts +7 -0
  634. package/src/components/Slider/Select.stories.tsx +43 -0
  635. package/src/components/Slider/Slider.test.tsx +19 -0
  636. package/src/components/Slider/Slider.tsx +197 -0
  637. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +109 -0
  638. package/src/components/Slider/index.ts +1 -0
  639. package/src/components/Slider/styled.ts +53 -0
  640. package/src/components/Slider/types.ts +30 -0
  641. package/src/components/Stack/Alignments.ts +1 -3
  642. package/src/components/Stack/Stack.test.tsx +46 -0
  643. package/src/components/Stack/Stack.tsx +1 -2
  644. package/src/components/Stack/__snapshots__/Stack.test.tsx.snap +240 -10
  645. package/src/components/Stack/types.ts +1 -1
  646. package/src/components/Stepper/Stepper.stories.tsx +14 -0
  647. package/src/components/Stepper/Stepper.test.tsx +8 -0
  648. package/src/components/Stepper/Stepper.tsx +33 -0
  649. package/src/components/Stepper/__snapshots__/Stepper.test.tsx.snap +142 -0
  650. package/src/components/Stepper/index.ts +1 -0
  651. package/src/components/Stepper/styled.ts +83 -0
  652. package/src/components/Tag/Tag.stories.tsx +43 -0
  653. package/src/components/Tag/Tag.test.tsx +18 -0
  654. package/src/components/Tag/Tag.ts +23 -0
  655. package/src/components/Tag/__snapshots__/Tag.test.tsx.snap +78 -0
  656. package/src/components/Tag/index.ts +1 -0
  657. package/src/components/Text/Docs.mdx +112 -0
  658. package/src/components/Text/Text.stories.tsx +27 -0
  659. package/src/components/Text/Text.test.tsx +38 -0
  660. package/src/components/Text/Text.ts +44 -0
  661. package/src/components/Text/__snapshots__/Text.test.tsx.snap +1158 -0
  662. package/src/components/Text/index.ts +1 -0
  663. package/src/components/Text/textVariants.ts +41 -0
  664. package/src/components/Text/types.ts +33 -0
  665. package/src/components/Text/utils.ts +23 -0
  666. package/src/components/TextField/Docs.mdx +14 -0
  667. package/src/components/TextField/TextField.stories.tsx +38 -0
  668. package/src/components/TextField/TextField.test.tsx +27 -0
  669. package/src/components/TextField/TextField.tsx +92 -0
  670. package/src/components/TextField/__snapshots__/TextField.test.tsx.snap +205 -0
  671. package/src/components/TextField/index.ts +4 -0
  672. package/src/components/TextField/styled.ts +95 -0
  673. package/src/components/TextField/types.ts +41 -0
  674. package/src/components/ToastsLayout/ToastsLayout.stories.tsx +88 -0
  675. package/src/components/ToastsLayout/ToastsLayout.tsx +39 -0
  676. package/src/components/ToastsLayout/components/Toast.tsx +78 -0
  677. package/src/components/ToastsLayout/components/styled.ts +76 -0
  678. package/src/components/ToastsLayout/index.ts +1 -0
  679. package/src/components/ToastsLayout/types.ts +41 -0
  680. package/src/components/Toggle/Toggle.stories.tsx +41 -0
  681. package/src/components/Toggle/Toggle.test.tsx +57 -0
  682. package/src/components/Toggle/Toggle.tsx +31 -0
  683. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +219 -0
  684. package/src/components/Toggle/index.ts +1 -0
  685. package/src/components/Toggle/styled.ts +84 -0
  686. package/src/components/Toggle/types.ts +10 -0
  687. package/src/components/ToggleButton/ToggleButton.stories.tsx +19 -0
  688. package/src/components/ToggleButton/ToggleButton.test.tsx +12 -0
  689. package/src/components/ToggleButton/ToggleButton.tsx +31 -0
  690. package/src/components/ToggleButton/__snapshots__/ToggleButton.test.tsx.snap +83 -0
  691. package/src/components/ToggleButton/index.ts +1 -0
  692. package/src/components/ToggleButton/styled.ts +92 -0
  693. package/src/components/Tooltip/Docs.mdx +14 -0
  694. package/src/components/Tooltip/Tooltip.stories.tsx +26 -0
  695. package/src/components/Tooltip/Tooltip.test.tsx +25 -0
  696. package/src/components/Tooltip/Tooltip.tsx +95 -0
  697. package/src/components/Tooltip/__snapshots__/Tooltip.test.tsx.snap +17 -0
  698. package/src/components/Tooltip/index.ts +1 -0
  699. package/src/components/Tooltip/styled.ts +74 -0
  700. package/src/components/Tooltip/types.ts +44 -0
  701. package/src/components/VideoModal/VideoModal.stories.tsx +36 -0
  702. package/src/components/VideoModal/VideoModal.test.tsx +36 -0
  703. package/src/components/VideoModal/VideoModal.tsx +40 -0
  704. package/src/components/VideoModal/VideoModalDemo.tsx +19 -0
  705. package/src/components/VideoModal/__snapshots__/VideoModal.test.tsx.snap +165 -0
  706. package/src/components/VideoModal/components/Popup.tsx +44 -0
  707. package/src/components/VideoModal/components/styled.ts +34 -0
  708. package/src/components/VideoModal/index.ts +1 -0
  709. package/src/components/VideoModal/styled.ts +24 -0
  710. package/src/components/VideoModal/types.ts +9 -0
  711. package/src/components/View/View.stories.tsx +26 -0
  712. package/src/components/View/View.test.tsx +10 -0
  713. package/src/components/View/View.tsx +120 -0
  714. package/src/components/View/__snapshots__/View.test.tsx.snap +80 -0
  715. package/src/components/View/index.ts +1 -0
  716. package/src/components/View/styled.ts +82 -0
  717. package/src/components/View/types.ts +42 -0
  718. package/src/components/WeightInput/WeightInput.stories.tsx +26 -0
  719. package/src/components/WeightInput/WeightInput.test.tsx +11 -0
  720. package/src/components/WeightInput/WeightInput.tsx +66 -0
  721. package/src/components/WeightInput/__snapshots__/WeightInput.test.tsx.snap +272 -0
  722. package/src/components/WeightInput/index.ts +1 -0
  723. package/src/components/WeightInput/styled.ts +39 -0
  724. package/src/components/WeightInput/types.ts +31 -0
  725. package/src/components/index.ts +50 -0
  726. package/src/components/types.ts +23 -0
  727. package/src/hoc/index.ts +2 -0
  728. package/src/hoc/withDeprecated.tsx +11 -0
  729. package/src/hoc/withLabels/index.ts +1 -0
  730. package/src/hoc/withLabels/styled.ts +54 -0
  731. package/src/hoc/withLabels/withLabels.tsx +46 -0
  732. package/src/hooks/index.ts +7 -0
  733. package/src/hooks/useClickOutside.ts +40 -0
  734. package/src/hooks/useDebounce.ts +15 -0
  735. package/src/hooks/useDropdown.ts +22 -0
  736. package/src/hooks/useFocusVisible.tsx +157 -0
  737. package/src/hooks/useHover.ts +9 -0
  738. package/src/hooks/useIsOverflowing.ts +32 -0
  739. package/src/hooks/useTabs.ts +24 -0
  740. package/src/index.ts +3 -0
  741. package/src/tempIcons/ArrowDownIcon.tsx +12 -0
  742. package/src/tempIcons/ArrowUpIcon.tsx +12 -0
  743. package/src/tempIcons/AttentionIcon.tsx +12 -0
  744. package/src/tempIcons/CalendarIcon.tsx +12 -0
  745. package/src/tempIcons/ClipboardIcon.tsx +10 -0
  746. package/src/tempIcons/CrossIcon.tsx +20 -0
  747. package/src/tempIcons/DoubleArrowAscIcon.tsx +8 -0
  748. package/src/tempIcons/DoubleArrowDescIcon.tsx +8 -0
  749. package/src/tempIcons/DoubleArrowIcon.tsx +8 -0
  750. package/src/tempIcons/DoubleArrowIconIcon.tsx +8 -0
  751. package/src/tempIcons/DownArrowIcon.tsx +20 -0
  752. package/src/tempIcons/DropdownIcon.tsx +14 -0
  753. package/src/tempIcons/EditIcon.tsx +12 -0
  754. package/src/tempIcons/EndArrowIcon.tsx +18 -0
  755. package/src/tempIcons/FailIcon.tsx +12 -0
  756. package/src/tempIcons/HelpIcon.tsx +12 -0
  757. package/src/tempIcons/InfoIcon.tsx +14 -0
  758. package/src/tempIcons/LeftArrowIcon.tsx +12 -0
  759. package/src/tempIcons/MergeIcon.tsx +12 -0
  760. package/src/tempIcons/MoreHorizIcon.tsx +10 -0
  761. package/src/tempIcons/ReorderIcon.tsx +10 -0
  762. package/src/tempIcons/RightArrowIcon.tsx +12 -0
  763. package/src/tempIcons/SearchIcon.tsx +12 -0
  764. package/src/tempIcons/StartArrowIcon.tsx +16 -0
  765. package/src/tempIcons/SuccessIcon.tsx +12 -0
  766. package/src/tempIcons/UpArrowIcon.tsx +20 -0
  767. package/src/tempIcons/VisibilityIcon.tsx +10 -0
  768. package/src/tempIcons/VisibilityOffIcon.tsx +10 -0
  769. package/src/theme/index.ts +2 -2
  770. package/src/theme/modules/shadows.ts +1 -1
  771. package/src/utils/buildClassnames.ts +2 -0
  772. package/src/utils/color.ts +27 -0
  773. package/src/utils/generateId.ts +4 -0
  774. package/src/utils/index.ts +3 -0
  775. package/src/utils/paginationList.ts +6 -0
  776. package/src/utils/setupIntersectionObserverMock.ts +46 -0
  777. package/tsconfig.json +1 -1
@@ -0,0 +1,625 @@
1
+ import { Meta, Primary, Controls, Story } from '@storybook/blocks';
2
+ import { Text } from '../Text';
3
+ import { Button } from '../Button';
4
+ import { Stack } from '../Stack';
5
+ import { DataTable } from '.';
6
+ import * as DataTableStories from './DataTable.stories';
7
+
8
+ <Meta of={DataTableStories} />
9
+
10
+ # DataTable
11
+
12
+ Table are the beating heart of Veeqo ❤️ They help our users understand their orders, manage inventory levels and review reports, so it's important that they're clear, informative and provide obvious affordances for performing actions.
13
+
14
+ > **_Deprecated: Use DataTableExp_**
15
+
16
+ <Primary />
17
+
18
+ <Controls />
19
+
20
+ ## Contents
21
+
22
+ - [Usage](#usage)
23
+ - [Populating the table](#populating-the-table)
24
+ - [Configuring headers](#configuring-headers)
25
+ - [Adding a footer](#adding-a-footer)
26
+ - [Selecting rows](#selecting-rows)
27
+ - [Disable selection input of some rows](#disable-selection-input-of-some-rows)
28
+ - [Sorting](#sorting)
29
+ - [Fixed columns](#fixed-columns)
30
+ - [Nested rows](#nested-rows)
31
+ - [Cell sub-components](#cell-sub-components)
32
+ - [Specific states](#specific-states)
33
+ - [Loading state](#loading-state)
34
+ - [Props](#props)
35
+
36
+ ## Usage
37
+
38
+ ```jsx
39
+ import { VeeqoCommon } from '@veeqo/components';
40
+ const { DataTable } = VeeqoCommon;
41
+
42
+ <DataTable
43
+ rows={[...]}
44
+ renderRow={(row) => (...)}
45
+ />
46
+ ```
47
+
48
+ ## Populating the table
49
+
50
+ To start populating the table, we must assign 2 props - `rows` and `renderRow`.
51
+
52
+ We'll pass an array of data to `rows` and then create a handler for `renderRow` which takes some row data and returns multiple cells wrapped inside a `React.Fragment`.
53
+
54
+ ```jsx
55
+ const ProductTable = () => {
56
+ const rows = [
57
+ {
58
+ id: 1,
59
+ data: {
60
+ name: 'T-Shirt',
61
+ sku: 'TS-1',
62
+ quantity: 12
63
+ },
64
+ nestedRows: [...], // optional
65
+ accentColour: colors.blue.base // optional
66
+ },
67
+ ...
68
+ ];
69
+
70
+ const renderRow = ({ id, data }) => (
71
+ <>
72
+ <DataTable.Cell>
73
+ {data.name}
74
+ </DataTable.Cell>
75
+ <DataTable.Cell>
76
+ {data.sku}
77
+ </DataTable.Cell>
78
+ <DataTable.Cell align="right">
79
+ {data.quantity}
80
+ </DataTable.Cell>
81
+ </>
82
+ );
83
+
84
+ return (
85
+ <DataTable
86
+ rows={rows}
87
+ renderRow={renderRow}
88
+ />
89
+ );
90
+ }
91
+ ```
92
+
93
+ You can also pass optional `e2eClassNames` as part of `data` object with custom class names:
94
+
95
+ ```
96
+ {
97
+ e2eClassNames: {
98
+ body: string
99
+ row: string
100
+ }
101
+ }
102
+ ```
103
+
104
+ ## Configuring headers
105
+
106
+ To configure column headers and other options we need to add the `columns` prop, which is an array of header configuration objects:
107
+
108
+ ```js
109
+ const headers = [
110
+ {
111
+ id: 1, // required
112
+ title: 'Tags',
113
+ icon: 'tags',
114
+ onlyIcon: true, // optional, false by default
115
+ align: 'center',
116
+ sortable: false,
117
+ grow: false,
118
+ tooltip: 'This is tooltip' // optional, tooltip won't be shown if not present
119
+ },
120
+ ...
121
+ ];
122
+ ```
123
+
124
+ The header contents are defined by `title` and `iconName`. If you want an empty header, then simply omit both of those properties.
125
+
126
+ You can use `align` to specify whether you want the header contents to be aligned `left`, `center` or `right`. Be aware that this will only align the header cell. To align row cells you should use the `align` prop on `<DataTable.Cell>`.
127
+
128
+ Each column can be marked as `sortable` which adds sorting icons next to the column title and lets the user click on the header cell to change the active sorting order. You can find out more in the [Sorting](#sorting).
129
+
130
+ Finally you can use the `grow` property to force the column to take up any available space.
131
+
132
+ ```jsx
133
+ const ProductTable = () => {
134
+ const rows = [...];
135
+
136
+ const headers = [
137
+ {
138
+ id: 'name',
139
+ title: 'Product name'
140
+ },
141
+ {
142
+ id: 'sku',
143
+ title: 'SKU',
144
+ grow: true
145
+ },
146
+ {
147
+ id: 'quantity',
148
+ title: 'Stock level',
149
+ align: 'right'
150
+ }
151
+ ];
152
+
153
+ const renderRow = (row) => (...);
154
+
155
+ return (
156
+ <DataTable
157
+ headers={headers}
158
+ rows={rows}
159
+ renderRow={renderRow}
160
+ />
161
+ );
162
+ }
163
+ ```
164
+
165
+ ## Rendering Scrollbars
166
+
167
+ Some browsers may not automatically render a horizontal scrollbar for a table, hiding columns that users may not know they can access.
168
+
169
+ You can use `showScrollbar` to ensure that a scrollbar will be shown whenever one is required.
170
+
171
+ ```jsx
172
+ const ProductTable = () => {
173
+ const rows = [...];
174
+
175
+ const headers = [
176
+ {
177
+ id: 'name',
178
+ title: 'Product name'
179
+ },
180
+ {
181
+ id: 'sku',
182
+ title: 'SKU',
183
+ },
184
+ {
185
+ id: 'quantity',
186
+ title: 'Stock level',
187
+ }
188
+ ];
189
+
190
+ const renderRow = (row) => (...);
191
+
192
+ return (
193
+ <DataTable
194
+ headers={headers}
195
+ rows={rows}
196
+ renderRow={renderRow}
197
+ showScrollbar={true}
198
+ />
199
+ );
200
+ }
201
+ ```
202
+
203
+ ## Adding a footer
204
+
205
+ To add a footer we just need to pass a handler to `renderFooterRow` that returns some cells - exactly the same as using `renderRow`.
206
+
207
+ ```jsx
208
+ const ProductTable = () => {
209
+ const rows = [...];
210
+
211
+ const headers = [...];
212
+
213
+ const renderRow = (row) => (...);
214
+
215
+ const renderFooterRow = (rows) => {
216
+ const totalQuantity = rows.reduce((sum, row) => sum + row.data.quantity, 0);
217
+ return (
218
+ <>
219
+ <DataTable.Cell />
220
+ <DataTable.Cell>
221
+ Total
222
+ </DataTable.Cell>
223
+ <DataTable.Cell>
224
+ {totalQuantity}
225
+ </DataTable.Cell>
226
+ </>
227
+ );
228
+ };
229
+
230
+ return (
231
+ <DataTable
232
+ headers={headers}
233
+ rows={rows}
234
+ renderRow={renderRow}
235
+ renderFooterRow={renderFooterRow}
236
+ />
237
+ );
238
+ }
239
+ ```
240
+
241
+ ## Selecting rows
242
+
243
+ To enable row selection we'll need to keep track of the selected row IDs and implement a handler to get updates when the selection changes.
244
+
245
+ You can switch between `multiple` and `single` selection using the `selectionMode` prop - by default this is set to `multiple`.
246
+
247
+ ```jsx
248
+ const ProductTable = () => {
249
+ const rows = [...];
250
+
251
+ const headers = [...];
252
+
253
+ const renderRow = (row) => (...);
254
+
255
+ const [selectedRowIds, setSelectedRowIds] = React.useState([]);
256
+
257
+ return (
258
+ <DataTable
259
+ headers={headers}
260
+ rows={rows}
261
+ renderRow={renderRow}
262
+ selectedRowIds={selectedRowIds}
263
+ onChangeSelectedRowIds={setSelectedRowIds}
264
+ selectionMode="single"
265
+ />
266
+ );
267
+ }
268
+ ```
269
+
270
+ ## Disable selection input of some rows
271
+
272
+ You can disable the selection of several rows using the `disabledSelectionInputRowIds` prop.
273
+
274
+ When `selectionMode` is set to `multiple`, input in the header will be disabled if `disabledSelectionInputRowIds` have at least one element.
275
+
276
+ ```jsx
277
+ const Table = () => {
278
+ const rows = [
279
+ {
280
+ id: 1,
281
+ ...,
282
+ },
283
+ {
284
+ id: 2,
285
+ ...,
286
+ },
287
+ {
288
+ id: 'some-id',
289
+ ...,
290
+ }
291
+ ];
292
+
293
+ const headers = [...];
294
+
295
+ const renderRow = (row) => (...);
296
+
297
+ const [selectedRowIds, setSelectedRowIds] = React.useState([]);
298
+
299
+ return (
300
+ <DataTable
301
+ headers={headers}
302
+ rows={rows}
303
+ renderRow={renderRow}
304
+ selectedRowIds={selectedRowIds}
305
+ onChangeSelectedRowIds={setSelectedRowIds}
306
+ selectionMode="single"
307
+ disabledSelectionInputRowIds={[1, 'some-id']}
308
+ />
309
+ );
310
+ }
311
+ ```
312
+
313
+ ## Sorting
314
+
315
+ > **Important:** `DataTable` does not actually implement any kind of data sorting. You must handle this yourself before passing data via the `rows` prop. Rows will be rendered in the order that they are passed in the array.
316
+
317
+ To enable sorting, we begin by marking the relevant columns as `sortable`. This adds a sorting icon to the column header and makes it clickable:
318
+
319
+ ```jsx
320
+ const headers = [
321
+ ...
322
+ {
323
+ id: 'name',
324
+ sortable: true,
325
+ ...
326
+ }
327
+ ];
328
+ ```
329
+
330
+ Next we need to specify which column is current being sorted and the direction. To do this we implement `sortColumnId` and `sortDirection`.
331
+
332
+ ```jsx
333
+ const ProductTable = () => {
334
+ const rows = [...];
335
+
336
+ const headers = [
337
+ { id: 'name', title: 'Product name', sortable: true },
338
+ { id: 'sku', title: 'SKU', grow: true },
339
+ { id: 'quantity', title: 'Stock level', align: 'right', sortable: true }
340
+ ];
341
+
342
+ const renderRow = (row) => (...);
343
+
344
+ const [sortColumnId, setSortColumnId] = React.useState('name');
345
+ const [sortDirection, setSortDirection] = React.useState('ascending');
346
+
347
+ return (
348
+ <DataTable
349
+ headers={headers}
350
+ rows={rows}
351
+ renderRow={renderRow}
352
+ sortColumnId={sortColumnId}
353
+ sortColumnDirection={sortDirection}
354
+ />
355
+ );
356
+ }
357
+ ```
358
+
359
+ Finally we need to pass a handler to `onChangeSort` to be notified when the user clicks a column header and changes the sorting options.
360
+
361
+ Here's an example of how we could utilise header `id` properties to implement very simple sorting:
362
+
363
+ ```jsx
364
+ const ProductTable = () => {
365
+ const rows = [...];
366
+
367
+ const headers = [
368
+ { id: 'name', title: 'Product name', sortable: true },
369
+ { id: 'sku', title: 'SKU', grow: true },
370
+ { id: 'quantity', title: 'Stock level', align: 'right', sortable: true }
371
+ ];
372
+
373
+ const renderRow = (row) => (...);
374
+
375
+ const [sortColumnId, setSortColumnId] = React.useState('name');
376
+ const [sortDirection, setSortDirection] = React.useState('ascending');
377
+
378
+ const handleChangeSort = (columnId, direction) => {
379
+ setSortColumnId(columnId);
380
+ setSortDirection(direction);
381
+ };
382
+
383
+ const sortedRows = rows.sort((rowA, rowB) => {
384
+ const a = rowA.data[sortColumnId];
385
+ const b = rowB.data[sortColumnId];
386
+
387
+ if (a > b) return 1;
388
+ if (a < b) return -1;
389
+ return 0;
390
+ });
391
+
392
+ if (sortDirection === 'descending') {
393
+ sortedRows.reverse();
394
+ }
395
+
396
+ return (
397
+ <DataTable
398
+ headers={headers}
399
+ rows={sortedRows}
400
+ renderRow={renderRow}
401
+ sortColumnId={sortColumnId}
402
+ sortDirection={sortDirection}
403
+ onChangeSort={handleChangeSort}
404
+ />
405
+ );
406
+ }
407
+ ```
408
+
409
+ ## Fixed columns
410
+
411
+ You can easily enable fixed columns at the beginning and at the end of the table by using props `startFixedColumnsNumber` and `endFixedColumnsNumber` props respectively.
412
+
413
+ **IMPORTANT:** When you pass these props, [the table layout is changing to fixed](https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout).
414
+
415
+ To work it correctly, you should pass **numeric** `width` in px in each fixed column. The rest of the columns also need to set the width, but it doesn't require numeric value, you can use percentage if you want. `width` works like a `max-width` so you can don't care about the state without overflow.
416
+
417
+ ````jsx
418
+ <DataTable
419
+ rows={rows}
420
+ renderRow={renderRow}
421
+ headers={headers}
422
+ startFixedColumnsNumber={2}
423
+ endFixedColumnsNumber={1}
424
+ isHeaderSticky={false}
425
+ showScrollbar={true}
426
+ />
427
+ ```
428
+
429
+ ## Nested rows
430
+
431
+ Across the Veeqo app it is common that we need to display secondary information that is related to the contents of a table. For example, the inventory page allows customers to break down stock levels by warehouse.
432
+
433
+ For this, we can use nested rows which will render beneath their "parent" row and can be optionally hidden.
434
+
435
+ First, we must add the `nestedRows` property to our `rows` data structure. It has the same basic properties as an ordinary row - an `id` and some `data`.
436
+
437
+ ```js
438
+ const rows = [
439
+ {
440
+ id: 1,
441
+ data: { ... },
442
+ nestedRows: [
443
+ {
444
+ id: 1,
445
+ data: { warehouseName: 'Swansea', quantity: 1 }
446
+ },
447
+ {
448
+ id: 2,
449
+ data: { warehouseName: 'Toronto', quantity: 3 }
450
+ }
451
+ ]
452
+ }
453
+ ];
454
+ ````
455
+
456
+ Next, we define a render method for our nested rows.
457
+
458
+ ```jsx
459
+ const renderNestedRow = ({ id, data }) => (
460
+ <>
461
+ <DataTable.Cell />
462
+ <DataTable.Cell />
463
+ <DataTable.Cell>
464
+ {data.warehouseName}
465
+ </DataTable.Cell>
466
+ <DataTable.Cell>
467
+ {data.quantity}
468
+ </DataTable.Cell>
469
+ </>
470
+ );
471
+
472
+ return (
473
+ <DataTable
474
+ renderNestedRow={renderNestedRow}
475
+ ...
476
+ />
477
+ );
478
+ ```
479
+
480
+ By default all nested rows will be visible, but we can control their visibility by passing an array of row IDs with the `expandedRowIds` prop.
481
+
482
+ ```jsx
483
+ const [expandedRowIds, setExpandedRowIds] = useState([]);
484
+
485
+ const toggleExpandedRow = (rowId) => {
486
+ const newIds = [...expandedRowIds];
487
+ if (newIds.includes(rowId)) {
488
+ const index = newIds.findIndex((id) => id === rowId);
489
+ newIds.splice(index, 1);
490
+ } else {
491
+ newIds.push(rowId);
492
+ }
493
+ setExpandedRowIds(newIds);
494
+ };
495
+
496
+ const renderRow = ({ id, data }) => {
497
+ const isExpanded = expandedRowIds.includes(id);
498
+ return (
499
+ <>
500
+ <DataTable.Cell>
501
+ {data.name}
502
+ </DataTable.Cell>
503
+ <DataTable.Cell>
504
+ {data.sku}
505
+ </DataTable.Cell>
506
+ <DataTable.Cell>
507
+ <Button onClick={() => toggleExpandedRow(id)} variant="link" dropdown>
508
+ {isExpanded ? 'Hide warehouses' : 'Show warehouses'}
509
+ </Button>
510
+ </DataTable.Cell>
511
+ <DataTable.Cell>
512
+ {data.quantity}
513
+ </DataTable.Cell>
514
+ </>
515
+ );
516
+ };
517
+
518
+ return (
519
+ <DataTable
520
+ expandedRowIds={expandedRowIds}
521
+ renderRow={renderRow}
522
+ ...
523
+ />
524
+ );
525
+ ```
526
+
527
+ ## Cell Sub-components
528
+
529
+ The most common cell types are provided as sub-components for you to use when rendering rows:
530
+
531
+ - `DataTable.Cell`
532
+ - `DataTable.ClickableCell`
533
+ - `DataTable.EditableCell`
534
+ - `DataTable.SkeletonCell`
535
+ - `DataTable.SkeletonContent`
536
+
537
+ ## Specific states
538
+
539
+ Specific states appear when you pass `isError` prop or empty array in `rows` prop
540
+
541
+ ### Empty data
542
+
543
+ <Story of={DataTableStories.Empty} />
544
+
545
+ ### Error
546
+
547
+ The error state has a priority higher than empty state. It means that if you pass empty array in `rows` and `isError` prop then error state appear
548
+
549
+ <Story of={DataTableStories.ErrorState} />
550
+
551
+ ### Custom text and icons
552
+
553
+ You can also provide any text and icons you want via `customSpecificState` prop
554
+
555
+ ```jsx
556
+ <DataTable
557
+ rows={[]}
558
+ headers={headers}
559
+ customSpecificState={{
560
+ icon: 'search',
561
+ title: "Oops! We don't find anything",
562
+ }}
563
+ />
564
+ <DataTable
565
+ rows={[]}
566
+ headers={headers}
567
+ customSpecificState={{
568
+ icon: 'calendar',
569
+ title: "Oops! Seems you trying to find something that doesn't exist!",
570
+ subTitle: 'Try again!',
571
+ }}
572
+ />
573
+ <DataTable
574
+ rows={[]}
575
+ headers={headers}
576
+ isError
577
+ customSpecificState={{
578
+ icon: 'fail',
579
+ title: 'Something strange has happened',
580
+ subTitle: 'Try to reload page',
581
+ }}
582
+ />
583
+ ```
584
+
585
+ ### Body height
586
+
587
+ Default body height in specific state is 375, but you can pass different value via `bodyHeightInSpecificStates` prop
588
+
589
+ ```jsx
590
+ <DataTable rows={[]} headers={headers} isError bodyHeightInSpecificStates={250} />
591
+ ```
592
+
593
+ ## Loading state
594
+
595
+ To enable the loading state you can add the `isLoading` prop.
596
+
597
+ By default, rows will be rendered with skeleton content. If you have defined `headers` then each row will contain the same number of cells as there are columns. If `headers` is not defined, then a single cell will be rendered in each row.
598
+
599
+ ```jsx
600
+ <DataTable isLoading={true} />
601
+ ```
602
+
603
+ <Story of={DataTableStories.LoadingState} />
604
+
605
+ To render custom loading rows, you can implement the `renderLoadingRow` prop:
606
+
607
+ ```jsx
608
+ const renderLoadingRow = () => (
609
+ <>
610
+ <DataTable.SkeletonCell />
611
+ <DataTable.Cell>
612
+ <DataTable.SkeletonContent style={{ width: '50%' }} />
613
+ </DataTable.Cell>
614
+ <CustomLoadingCell />
615
+ </>
616
+ );
617
+
618
+ return <DataTable isLoading={true} renderLoadingRow={renderLoadingRow} />;
619
+ ```
620
+
621
+ You can override the number of loading rows shown with `skeletonRowsNumber`:
622
+
623
+ ```jsx
624
+ <DataTable isLoading={true} skeletonRowsNumber={3} />
625
+ ```
@@ -0,0 +1,46 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { theme } from '../../../theme';
4
+
5
+ const { grey } = theme.colors.neutral;
6
+
7
+ const SkeletonContentWrapper = styled.div`
8
+ height: 16px;
9
+ width: 100%;
10
+ `;
11
+
12
+ const SkeletonContentComponent = styled.div<{ isLoading?: boolean }>`
13
+ display: inline-block;
14
+ color: transparent;
15
+ border-radius: 4px;
16
+ animation-duration: ${({ isLoading = true }) => (isLoading ? '1s' : 0)};
17
+ animation-fill-mode: forwards;
18
+ animation-iteration-count: infinite;
19
+ animation-name: placeHolderShimmer;
20
+ animation-timing-function: linear;
21
+ background: linear-gradient(to right, ${grey.base} 8%, ${grey.dark} 15%, ${grey.base} 33%);
22
+ background-size: 800px 104px;
23
+ border: 0;
24
+ width: 100%;
25
+ height: 100%;
26
+
27
+ @keyframes placeHolderShimmer {
28
+ 0% {
29
+ background-position: -380px 0;
30
+ }
31
+ 100% {
32
+ background-position: 380px 0;
33
+ }
34
+ }
35
+ `;
36
+
37
+ type SkeletonContentPropTypes = {
38
+ isLoading?: boolean;
39
+ style?: React.CSSProperties;
40
+ };
41
+
42
+ export const SkeletonContent = ({ isLoading, style }: SkeletonContentPropTypes) => (
43
+ <SkeletonContentWrapper style={style}>
44
+ <SkeletonContentComponent isLoading={isLoading} />
45
+ </SkeletonContentWrapper>
46
+ );
@@ -0,0 +1 @@
1
+ export { SkeletonContent } from './SkeletonContent';
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+
3
+ import { SpecificStateContainer, EllipseContainer, TitleText, SubTitleText } from './styled';
4
+
5
+ import { SpecificStateType } from '../utils/types';
6
+
7
+ type SpecificStatePropTypes = SpecificStateType & {
8
+ height: number;
9
+ };
10
+
11
+ export const SpecificState = ({ height, icon, title, subTitle }: SpecificStatePropTypes) => (
12
+ <SpecificStateContainer height={height}>
13
+ <EllipseContainer>{icon}</EllipseContainer>
14
+ <TitleText variant="headingLarge">{title}</TitleText>
15
+ {subTitle && <SubTitleText variant="subheadingMedium">{subTitle}</SubTitleText>}
16
+ </SpecificStateContainer>
17
+ );
@@ -0,0 +1 @@
1
+ export { SpecificState } from './SpecificState';