@innovaccer/design-system 2.5.0 → 2.7.0-0

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 (462) hide show
  1. package/.eslintrc.json +54 -0
  2. package/.github/workflows/chromatic.yml +5 -0
  3. package/.github/workflows/main.yml +2 -2
  4. package/.github/workflows/pull_request.yml +2 -2
  5. package/.github/workflows/test.yml +1 -1
  6. package/.husky/commit-msg +4 -0
  7. package/.prettierrc +2 -2
  8. package/.storybook/main.js +4 -0
  9. package/.vscode/settings.json +11 -0
  10. package/CHANGELOG.md +78 -0
  11. package/CONTRIBUTING.md +180 -98
  12. package/commitlint.config.js +1 -0
  13. package/core/accessibility/utils/index.ts +5 -0
  14. package/core/accessibility/utils/isEnterKey.ts +5 -0
  15. package/core/accessibility/utils/isSpaceKey.ts +5 -0
  16. package/core/accessibility/utils/useAccessibilityProps.ts +33 -0
  17. package/core/common.type.tsx +22 -0
  18. package/core/components/atoms/_chip/__tests__/__snapshots__/_chip.test.tsx.snap +17 -9
  19. package/core/components/atoms/_chip/index.tsx +19 -3
  20. package/core/components/atoms/avatar/Avatar.tsx +4 -14
  21. package/core/components/atoms/avatar/__stories__/variants/Appearance.story.tsx +3 -2
  22. package/core/components/atoms/avatar/__tests__/Avatar.test.tsx +14 -9
  23. package/core/components/atoms/avatarGroup/AvatarGroup.tsx +3 -5
  24. package/core/components/atoms/badge/Badge.tsx +2 -12
  25. package/core/components/atoms/badge/__tests__/Badge.test.tsx +22 -7
  26. package/core/components/atoms/badge/_stories_/variants/Appearance.story.tsx +3 -2
  27. package/core/components/atoms/badge/_stories_/variants/Subtle.story.tsx +3 -2
  28. package/core/components/atoms/button/Button.tsx +10 -7
  29. package/core/components/atoms/button/__stories__/Alert.story.tsx +8 -1
  30. package/core/components/atoms/button/__stories__/Cancel.story.tsx +4 -1
  31. package/core/components/atoms/button/__stories__/IconButtonGroup.story.tsx +12 -3
  32. package/core/components/atoms/button/__stories__/IconButtonSecondary.story.tsx +6 -1
  33. package/core/components/atoms/button/__stories__/IconLeftSecondary.story.tsx +4 -1
  34. package/core/components/atoms/button/__stories__/IconRightSecondary.story.tsx +4 -1
  35. package/core/components/atoms/button/__stories__/IconTransparent.story.tsx +4 -1
  36. package/core/components/atoms/button/__stories__/LabelButtonGroup.story.tsx +14 -3
  37. package/core/components/atoms/button/__stories__/LargeIconExpanded.story.tsx +4 -1
  38. package/core/components/atoms/button/__stories__/LoadingPrimary.story.tsx +4 -1
  39. package/core/components/atoms/button/__stories__/Primary.story.tsx +5 -2
  40. package/core/components/atoms/button/__stories__/SplitButton.story.tsx +6 -1
  41. package/core/components/atoms/button/__stories__/Transparent.story.tsx +8 -1
  42. package/core/components/atoms/button/__stories__/index.story.tsx +12 -2
  43. package/core/components/atoms/button/__stories__/variants/Appearance.story.tsx +6 -2
  44. package/core/components/atoms/button/__stories__/variants/Expanded.story.tsx +6 -2
  45. package/core/components/atoms/button/__stories__/variants/Size.story.tsx +4 -0
  46. package/core/components/atoms/button/__stories__/variants/icon/Icon.story.tsx +15 -0
  47. package/core/components/atoms/button/__stories__/variants/icon/IconLeft.story.tsx +6 -2
  48. package/core/components/atoms/button/__stories__/variants/icon/IconRight.story.tsx +6 -2
  49. package/core/components/atoms/button/__stories__/variants/state/Alert.story.tsx +7 -17
  50. package/core/components/atoms/button/__stories__/variants/state/Basic.story.tsx +9 -17
  51. package/core/components/atoms/button/__stories__/variants/state/Primary.story.tsx +7 -17
  52. package/core/components/atoms/button/__stories__/variants/state/Transparent.story.tsx +13 -17
  53. package/core/components/atoms/button/__tests__/Button.test.tsx +1 -1
  54. package/core/components/atoms/button/__tests__/__snapshots__/Button.test.tsx.snap +0 -137
  55. package/core/components/atoms/card/__stories__/empty.story.tsx +1 -1
  56. package/core/components/atoms/card/__stories__/nested.story.tsx +1 -1
  57. package/core/components/atoms/card/__stories__/scroll.story.tsx +1 -1
  58. package/core/components/atoms/checkbox/Checkbox.tsx +8 -9
  59. package/core/components/atoms/checkbox/__stories__/variants/Size.story.tsx +2 -2
  60. package/core/components/atoms/chip/Chip.tsx +3 -2
  61. package/core/components/atoms/chip/__stories__/variants/Selection.story.tsx +17 -0
  62. package/core/components/atoms/chip/__stories__/variants/Type.story.tsx +2 -2
  63. package/core/components/atoms/chip/__tests__/Chip.test.tsx +7 -0
  64. package/core/components/atoms/chipGroup/__tests__/__snapshots__/chipGroup.test.tsx.snap +11 -5
  65. package/core/components/atoms/chipGroup/__tests__/chipGroup.test.tsx +2 -2
  66. package/core/components/atoms/chipGroup/_stories_/index.story.tsx +2 -2
  67. package/core/components/atoms/collapsible/__tests__/__snapshots__/Collapsible.test.tsx.snap +8 -0
  68. package/core/components/atoms/divider/Divider.tsx +44 -0
  69. package/core/components/atoms/divider/__stories__/BasicDividerInCard.story.tsx +74 -0
  70. package/core/components/atoms/divider/__stories__/HeaderDividerInCard.story.tsx +35 -0
  71. package/core/components/atoms/divider/__stories__/IndentedDivider.story.tsx +49 -0
  72. package/core/components/atoms/divider/__stories__/Vertical.story.tsx +51 -0
  73. package/core/components/atoms/divider/__stories__/index.story.tsx +91 -0
  74. package/core/components/atoms/divider/__stories__/variants/HorizontalDivider.story.tsx +27 -0
  75. package/core/components/atoms/divider/__tests__/Divider.test.tsx +50 -0
  76. package/core/components/atoms/divider/__tests__/__snapshots__/Divider.test.tsx.snap +53 -0
  77. package/core/components/atoms/divider/index.tsx +2 -0
  78. package/core/components/atoms/dropdown/Dropdown.tsx +18 -17
  79. package/core/components/atoms/dropdown/DropdownButton.tsx +2 -2
  80. package/core/components/atoms/dropdown/DropdownList.tsx +18 -7
  81. package/core/components/atoms/dropdown/Loading.tsx +1 -1
  82. package/core/components/atoms/dropdown/__stories__/CustomSearchPlaceholder.story.tsx +45 -0
  83. package/core/components/atoms/dropdown/__stories__/_common_/types.tsx +3 -0
  84. package/core/components/atoms/dropdown/__stories__/variants/Size.story.tsx +2 -2
  85. package/core/components/atoms/dropdown/__stories__/variants/controlledDropdown/MultiSelect.story.tsx +28 -18
  86. package/core/components/atoms/dropdown/__tests__/Dropdown.test.tsx +12 -1
  87. package/core/components/atoms/dropdown/__tests__/Loading.test.tsx +0 -1
  88. package/core/components/atoms/dropdown/option/DefaultOption.tsx +3 -0
  89. package/core/components/atoms/dropdown/option/IconOption.tsx +3 -0
  90. package/core/components/atoms/dropdown/option/IconWithMetaOption.tsx +3 -0
  91. package/core/components/atoms/dropdown/option/MetaOption.tsx +3 -0
  92. package/core/components/atoms/dropdown/option/index.tsx +1 -1
  93. package/core/components/atoms/editable/Editable.tsx +3 -0
  94. package/core/components/atoms/heading/Heading.tsx +4 -4
  95. package/core/components/atoms/heading/__stories__/variants/Appearance.story.tsx +3 -2
  96. package/core/components/atoms/heading/__tests__/Heading.test.tsx +4 -3
  97. package/core/components/atoms/icon/Icon.tsx +16 -5
  98. package/core/components/atoms/icon/__stories__/variants/Image.story.tsx +6 -1
  99. package/core/components/atoms/icon/__tests__/__snapshots__/Icon.test.tsx.snap +74 -0
  100. package/core/components/atoms/input/Input.tsx +17 -7
  101. package/core/components/atoms/input/__stories__/BasicInput.story.tsx +2 -1
  102. package/core/components/atoms/input/__stories__/InputWithCaption.story.tsx +91 -9
  103. package/core/components/atoms/input/__stories__/InputWithLabel.story.tsx +11 -3
  104. package/core/components/atoms/input/__stories__/LabelPosition.story.tsx +46 -4
  105. package/core/components/atoms/input/__stories__/RequiredVsOptional.story.tsx +12 -8
  106. package/core/components/atoms/input/__stories__/variants/controlledInput.story.tsx +46 -0
  107. package/core/components/atoms/input/__stories__/variants/types/BasicInput.story.tsx +2 -2
  108. package/core/components/atoms/input/__stories__/variants/types/IconLeft.story.tsx +2 -10
  109. package/core/components/atoms/input/__stories__/variants/types/WithLabel.story.tsx +1 -9
  110. package/core/components/atoms/input/__tests__/__snapshots__/Input.test.tsx.snap +19 -0
  111. package/core/components/atoms/label/Label.tsx +1 -1
  112. package/core/components/atoms/legend/Legend.tsx +5 -2
  113. package/core/components/atoms/legend/__stories__/variants/labelAppearance.story.tsx +2 -2
  114. package/core/components/atoms/link/Link.tsx +4 -4
  115. package/core/components/atoms/message/Message.tsx +12 -12
  116. package/core/components/atoms/message/__stories__/index.story.tsx +1 -1
  117. package/core/components/atoms/message/__stories__/variants/Appearance.story.tsx +1 -1
  118. package/core/components/atoms/message/__stories__/variants/AppearanceTitle.story.tsx +1 -1
  119. package/core/components/atoms/message/__tests__/Message.test.tsx +1 -6
  120. package/core/components/atoms/message/__tests__/__snapshots__/Message.test.tsx.snap +0 -45
  121. package/core/components/atoms/metaList/__tests__/MetaList.test.tsx +2 -2
  122. package/core/components/atoms/metricInput/MetricInput.tsx +17 -7
  123. package/core/components/atoms/metricInput/__stories__/DefaultMetric.story.tsx +8 -2
  124. package/core/components/atoms/metricInput/__stories__/WithPrefix.story.tsx +6 -2
  125. package/core/components/atoms/metricInput/__stories__/index.story.tsx +1 -0
  126. package/core/components/atoms/metricInput/__stories__/variants/Controlled.story.tsx +2 -0
  127. package/core/components/atoms/metricInput/__stories__/variants/Size.story.tsx +2 -2
  128. package/core/components/atoms/metricInput/__stories__/withSuffix.story.tsx +6 -2
  129. package/core/components/atoms/metricInput/__tests__/__snapshots__/MetricInput.test.tsx.snap +20 -4
  130. package/core/components/atoms/multiSlider/Handle.tsx +3 -0
  131. package/core/components/atoms/multiSlider/SliderUtils.tsx +1 -4
  132. package/core/components/atoms/multiSlider/index.tsx +9 -4
  133. package/core/components/atoms/outsideClick/OutsideClick.tsx +1 -2
  134. package/core/components/atoms/paragraph/Paragraph.tsx +2 -2
  135. package/core/components/atoms/paragraph/__stories__/variants/Appearance.story.tsx +2 -2
  136. package/core/components/atoms/paragraph/__tests__/Paragraph.test.tsx +2 -2
  137. package/core/components/atoms/pills/Pills.tsx +2 -12
  138. package/core/components/atoms/pills/__stories__/variants/Appearance.story.tsx +3 -2
  139. package/core/components/atoms/pills/__stories__/variants/Subtle.story.tsx +3 -2
  140. package/core/components/atoms/pills/__tests__/Pills.test.tsx +3 -2
  141. package/core/components/atoms/placeholderImage/PlaceholderImage.tsx +2 -2
  142. package/core/components/atoms/placeholderImage/__stories__/variants/Size.story.tsx +2 -2
  143. package/core/components/atoms/placeholderParagraph/PlaceholderParagraph.tsx +2 -2
  144. package/core/components/atoms/placeholderParagraph/__stories__/variants/Size.story.tsx +2 -2
  145. package/core/components/atoms/popperWrapper/PopperWrapper.tsx +2 -6
  146. package/core/components/atoms/progressRing/ProgressRing.tsx +2 -2
  147. package/core/components/atoms/progressRing/__stories__/variants/Size.story.tsx +1 -1
  148. package/core/components/atoms/radio/Radio.tsx +4 -5
  149. package/core/components/atoms/rangeSlider/RangeSlider.tsx +1 -2
  150. package/core/components/atoms/rangeSlider/__stories__/index.story.tsx +1 -2
  151. package/core/components/atoms/rangeSlider/__stories__/variants/Controlled.story.tsx +1 -2
  152. package/core/components/atoms/rangeSlider/__stories__/variants/CustomLabels.story.tsx +1 -2
  153. package/core/components/atoms/spinner/Spinner.tsx +4 -4
  154. package/core/components/atoms/spinner/__stories__/variants/Appearance.story.tsx +2 -2
  155. package/core/components/atoms/spinner/__stories__/variants/Size.story.tsx +1 -1
  156. package/core/components/atoms/statusHint/StatusHint.tsx +5 -3
  157. package/core/components/atoms/statusHint/__stories__/variants/Appearance.story.tsx +3 -2
  158. package/core/components/atoms/statusHint/__tests__/StatusHint.test.tsx +3 -2
  159. package/core/components/atoms/subheading/Subheading.tsx +2 -2
  160. package/core/components/atoms/subheading/__stories__/variants/Appearance.story.tsx +3 -2
  161. package/core/components/atoms/subheading/__tests__/Subheading.test.tsx +3 -2
  162. package/core/components/atoms/switchInput/Switch.tsx +14 -9
  163. package/core/components/atoms/switchInput/__stories__/DefaultSwitch.story.tsx +4 -1
  164. package/core/components/atoms/switchInput/__stories__/OffState.story.tsx +4 -1
  165. package/core/components/atoms/switchInput/__stories__/index.story.tsx +26 -3
  166. package/core/components/atoms/switchInput/__stories__/variants/Size.story.tsx +10 -1
  167. package/core/components/atoms/switchInput/__stories__/variants/State.story.tsx +9 -2
  168. package/core/components/atoms/text/Text.tsx +4 -4
  169. package/core/components/atoms/text/__stories__/variants/Appearance.story.tsx +2 -2
  170. package/core/components/atoms/text/__tests__/Text.test.tsx +2 -3
  171. package/core/components/atoms/textarea/__stories__/TextareaWithCaption.story.tsx +9 -3
  172. package/core/components/atoms/textarea/__stories__/defaultTextarea.story.tsx +10 -2
  173. package/core/components/atoms/textarea/__stories__/index.story.tsx +1 -0
  174. package/core/components/atoms/textarea/__stories__/variants/Disable.story.tsx +1 -0
  175. package/core/components/atoms/toast/ActionButton.tsx +2 -2
  176. package/core/components/atoms/toast/Toast.tsx +11 -6
  177. package/core/components/atoms/toast/__stories__/index.story.tsx +2 -6
  178. package/core/components/atoms/toast/__stories__/variants/Appearance.story.tsx +3 -2
  179. package/core/components/atoms/toast/__stories__/variants/ToastMessage.story.tsx +3 -2
  180. package/core/components/atoms/toast/__stories__/variants/ToastWithAction.story.tsx +3 -2
  181. package/core/components/atoms/toast/__tests__/Toast.test.tsx +1 -1
  182. package/core/components/atoms/toast/__tests__/__snapshots__/Toast.test.tsx.snap +24 -125
  183. package/core/components/css-utilities/Schema.tsx +1 -1
  184. package/core/components/css-utilities/Spacing/Schema.tsx +1 -1
  185. package/core/components/molecules/chatMessage/Box.tsx +3 -0
  186. package/core/components/molecules/chipInput/ChipInput.tsx +3 -0
  187. package/core/components/molecules/chipInput/__tests__/__snapshots__/ChipInput.test.tsx.snap +14 -2
  188. package/core/components/molecules/dropzone/Dropzone.tsx +6 -3
  189. package/core/components/molecules/dropzone/DropzoneBase.tsx +22 -38
  190. package/core/components/molecules/dropzone/FileSelectorUtils.tsx +1 -1
  191. package/core/components/molecules/dropzone/__stories__/index.story.tsx +151 -41
  192. package/core/components/molecules/dropzone/__tests__/Dropzone.test.tsx +2 -2
  193. package/core/components/molecules/dropzone/utils.tsx +6 -4
  194. package/core/components/molecules/editableChipInput/EditableChipInput.tsx +9 -5
  195. package/core/components/molecules/editableChipInput/__stories__/Uncontrolled.story.tsx +1 -1
  196. package/core/components/molecules/editableChipInput/__tests__/__snapshots__/EditableChipInput.test.tsx.snap +12 -4
  197. package/core/components/molecules/editableDropdown/EditableDropdown.tsx +2 -2
  198. package/core/components/molecules/editableInput/EditableInput.tsx +13 -4
  199. package/core/components/molecules/emptyState/EmptyState.tsx +9 -5
  200. package/core/components/molecules/emptyState/__stories__/pageNotLoadedWithSVG.story.tsx +26 -26
  201. package/core/components/molecules/fileList/FileListItem.tsx +3 -2
  202. package/core/components/molecules/fileUploader/FileUploaderItem.tsx +3 -2
  203. package/core/components/molecules/fileUploader/FileUploaderStatus.tsx +1 -1
  204. package/core/components/molecules/fileUploader/__stories__/_common_/types.tsx +3 -0
  205. package/core/components/molecules/fileUploader/__stories__/index.story.tsx +3 -222
  206. package/core/components/molecules/fullscreenModal/FullscreenModal.tsx +5 -7
  207. package/core/components/molecules/inputMask/InputMask.tsx +212 -146
  208. package/core/components/molecules/inputMask/__stories__/index.story.tsx +24 -0
  209. package/core/components/molecules/inputMask/__tests__/__snapshots__/InputMask.test.tsx.snap +1 -0
  210. package/core/components/molecules/modal/Modal.tsx +4 -6
  211. package/core/components/molecules/modal/__stories__/Confirmation.story.tsx +1 -1
  212. package/core/components/molecules/pagination/__tests__/__snapshots__/Pagination.test.tsx.snap +5 -1
  213. package/core/components/molecules/placeholder/Placeholder.tsx +2 -2
  214. package/core/components/molecules/popover/Popover.tsx +2 -9
  215. package/core/components/molecules/sidesheet/Sidesheet.tsx +5 -7
  216. package/core/components/molecules/sidesheet/__stories__/variants/CustomHeader.story.tsx +172 -0
  217. package/core/components/molecules/stepper/Step.tsx +2 -0
  218. package/core/components/molecules/tabs/Tabs.tsx +2 -0
  219. package/core/components/molecules/tabs/TabsWrapper.tsx +2 -0
  220. package/core/components/molecules/tabs/__stories__/CustomLabels.story.tsx +1 -1
  221. package/core/components/molecules/tooltip/Tooltip.tsx +4 -4
  222. package/core/components/molecules/verificationCodeInput/VerificationCodeInput.tsx +8 -4
  223. package/core/components/molecules/verificationCodeInput/__stories__/index.story.tsx +3 -1
  224. package/core/components/molecules/verificationCodeInput/__tests__/__snapshots__/VerificationCodeInput.test.tsx.snap +1 -0
  225. package/core/components/organisms/calendar/Calendar.tsx +130 -8
  226. package/core/components/organisms/calendar/__stories__/variants/firstDayOfWeek.story.tsx +2 -2
  227. package/core/components/organisms/calendar/__tests__/Calendar.test.tsx +27 -0
  228. package/core/components/organisms/calendar/utility.ts +3 -3
  229. package/core/components/organisms/choiceList/ChoiceList.tsx +12 -12
  230. package/core/components/organisms/datePicker/DatePicker.tsx +31 -16
  231. package/core/components/organisms/datePicker/Trigger.tsx +1 -5
  232. package/core/components/organisms/datePicker/__tests__/__snapshots__/DatePicker.test.tsx.snap +4518 -4479
  233. package/core/components/organisms/dateRangePicker/DateRangePicker.tsx +9 -10
  234. package/core/components/organisms/dateRangePicker/SingleInputTrigger.tsx +0 -1
  235. package/core/components/organisms/dateRangePicker/Trigger.tsx +2 -2
  236. package/core/components/organisms/dateRangePicker/__stories__/variants/monthsInView.story.tsx +2 -2
  237. package/core/components/organisms/dateRangePicker/__tests__/__snapshots__/DateRangePicker.test.tsx.snap +112 -40
  238. package/core/components/organisms/grid/Cell.tsx +23 -19
  239. package/core/components/organisms/grid/Grid.tsx +3 -4
  240. package/core/components/organisms/grid/GridBody.tsx +0 -1
  241. package/core/components/organisms/grid/GridContext.ts +1 -1
  242. package/core/components/organisms/grid/GridRow.tsx +4 -0
  243. package/core/components/organisms/grid/__stories__/_common_/editableSchema.tsx +1 -3
  244. package/core/components/organisms/grid/__stories__/_common_/fetchData.ts +3 -3
  245. package/core/components/organisms/grid/__stories__/_common_/loaderSchema.ts +0 -2
  246. package/core/components/organisms/grid/__stories__/_common_/schema.tsx +1 -3
  247. package/core/components/organisms/grid/__stories__/_common_/simpleLoaderSchema.ts +0 -2
  248. package/core/components/organisms/grid/__stories__/_common_/statusSchema.ts +0 -2
  249. package/core/components/organisms/horizontalNav/HorizontalNav.tsx +2 -0
  250. package/core/components/organisms/inlineMessage/InlineMessage.tsx +5 -7
  251. package/core/components/organisms/inlineMessage/__tests__/InlineMessage.test.tsx +3 -2
  252. package/core/components/organisms/inlineMessage/__tests__/__snapshots__/InlineMessage.test.tsx.snap +30 -40
  253. package/core/components/organisms/list/__stories__/_common_/types.tsx +3 -0
  254. package/core/components/organisms/list/__stories__/index.story.tsx +0 -16
  255. package/core/components/organisms/navigation/VerticalNavigation.tsx +4 -0
  256. package/core/components/organisms/table/Table.tsx +3 -2
  257. package/core/components/organisms/table/__stories__/CompressedTable.story.tsx +1 -1
  258. package/core/components/organisms/table/__stories__/DataTable.story.tsx +1 -1
  259. package/core/components/organisms/table/__stories__/NestedTableWithNestedCard.story.tsx +1 -1
  260. package/core/components/organisms/table/__stories__/PinnedColumn.story.tsx +1 -1
  261. package/core/components/organisms/table/__stories__/ResourceTable.story.tsx +4 -3
  262. package/core/components/organisms/table/__stories__/Selection.story.tsx +2 -2
  263. package/core/components/organisms/table/__stories__/StandardTable.story.tsx +1 -1
  264. package/core/components/organisms/table/__stories__/TableAsDescriptionList.story.tsx +2 -2
  265. package/core/components/organisms/table/__stories__/TableAsOptionList.story.tsx +2 -2
  266. package/core/components/organisms/table/__stories__/TightStory.story.tsx +1 -1
  267. package/core/components/organisms/table/__stories__/_common_/types.tsx +3 -0
  268. package/core/components/organisms/table/__stories__/syncTable.story.tsx +14 -6
  269. package/core/components/organisms/table/__stories__/variants/showHead.story.tsx +2 -2
  270. package/core/components/organisms/table/__stories__/variants/showMenu.story.tsx +2 -2
  271. package/core/components/organisms/table/__stories__/variants/size.story.tsx +2 -2
  272. package/core/components/organisms/table/__stories__/variants/type.story.tsx +2 -2
  273. package/core/components/organisms/table/__stories__/variants/withCheckbox.story.tsx +2 -2
  274. package/core/components/organisms/table/__stories__/variants/withHeader.story.tsx +0 -2
  275. package/core/components/organisms/table/__stories__/variants/withPagination.story.tsx +2 -2
  276. package/core/components/organisms/timePicker/TimePicker.tsx +4 -8
  277. package/core/components/organisms/timePicker/__tests__/__snapshots__/TimePicker.test.tsx.snap +14 -2
  278. package/core/components/organisms/verticalNav/MenuItem.tsx +2 -0
  279. package/core/components/organisms/verticalNav/__stories__/schema.tsx +0 -2
  280. package/core/components/organisms/verticalNav/__tests__/VerticalNav.test.tsx +1 -2
  281. package/core/components/patterns/datePicker/datePickerWithPresets.story.tsx +126 -0
  282. package/core/components/patterns/dateRangePicker/withCustomPopover.story.tsx +8 -8
  283. package/core/components/patterns/forms/CreatePassword.story.tsx +1 -1
  284. package/core/components/patterns/forms/VerificationCodeInput.story.tsx +2 -2
  285. package/core/components/patterns/table/Table with Header/tableWithHeader.story.jsx +7 -7
  286. package/core/global.d.ts +9 -0
  287. package/core/index.tsx +2 -1
  288. package/core/index.type.tsx +1 -0
  289. package/core/utils/Keys.ts +4 -0
  290. package/core/utils/__tests__/__snapshots__/TS.test.tsx.snap +562 -541
  291. package/core/utils/docPage/generateImports.tsx +2 -3
  292. package/core/utils/docPage/index.tsx +52 -37
  293. package/core/utils/docPage/sandbox.tsx +14 -7
  294. package/core/utils/overlayHelper.ts +7 -3
  295. package/core/utils/testHelper.ts +2 -2
  296. package/core/utils/types.tsx +1 -1
  297. package/core/utils/validators.ts +37 -34
  298. package/css/dist/index.css +1550 -1415
  299. package/css/dist/index.css.map +1 -1
  300. package/css/src/components/Legend.css +7 -7
  301. package/css/src/components/ProgressBar.css +1 -1
  302. package/css/src/components/avatarGroup.css +1 -1
  303. package/css/src/components/backdrop.css +12 -6
  304. package/css/src/components/badge.css +52 -52
  305. package/css/src/components/button.css +95 -94
  306. package/css/src/components/calendar.css +137 -126
  307. package/css/src/components/card.css +0 -1
  308. package/css/src/components/cardSubdued.css +3 -5
  309. package/css/src/components/chat.css +1 -1
  310. package/css/src/components/checkbox.css +71 -70
  311. package/css/src/components/chip.css +20 -17
  312. package/css/src/components/chipGroup.css +5 -5
  313. package/css/src/components/chipInput.css +1 -1
  314. package/css/src/components/choiceList.css +4 -4
  315. package/css/src/components/dateRangePicker.css +13 -13
  316. package/css/src/components/divider.css +20 -0
  317. package/css/src/components/dropdown.css +61 -61
  318. package/css/src/components/dropdownButton.css +36 -36
  319. package/css/src/components/dropzone.css +16 -20
  320. package/css/src/components/editableChipInput.css +10 -9
  321. package/css/src/components/editableDropdown.css +1 -1
  322. package/css/src/components/editableInput.css +1 -1
  323. package/css/src/components/emptyState.css +15 -15
  324. package/css/src/components/fileList.css +44 -45
  325. package/css/src/components/fullscreenModal.css +4 -3
  326. package/css/src/components/grid.css +217 -199
  327. package/css/src/components/horizontalNav.css +0 -1
  328. package/css/src/components/icon.css +1 -7
  329. package/css/src/components/inlineMessage.css +2 -1
  330. package/css/src/components/input.css +62 -62
  331. package/css/src/components/link.css +1 -1
  332. package/css/src/components/list.css +10 -10
  333. package/css/src/components/message.css +64 -70
  334. package/css/src/components/metaList.css +26 -26
  335. package/css/src/components/metricInput.css +3 -4
  336. package/css/src/components/modal.css +1 -1
  337. package/css/src/components/navigation.css +3 -3
  338. package/css/src/components/pageHeader.css +1 -2
  339. package/css/src/components/pagination.css +36 -36
  340. package/css/src/components/pills.css +19 -19
  341. package/css/src/components/placeholder.css +10 -5
  342. package/css/src/components/popover.css +2 -2
  343. package/css/src/components/progressRing.css +1 -1
  344. package/css/src/components/radio.css +74 -74
  345. package/css/src/components/slider.css +5 -5
  346. package/css/src/components/statusHints.css +15 -15
  347. package/css/src/components/switch.css +66 -41
  348. package/css/src/components/table.css +15 -15
  349. package/css/src/components/tabs.css +53 -53
  350. package/css/src/components/textarea.css +1 -1
  351. package/css/src/components/toast.css +51 -56
  352. package/css/src/components/verificationCodeInput.css +5 -6
  353. package/css/src/components/verticalNav.css +1 -2
  354. package/css/src/core/base.css +3 -0
  355. package/css/src/core/typography.css +1 -1
  356. package/css/src/core/utilities.css +1 -1
  357. package/css/src/tokens/index.css +63 -63
  358. package/css/src/utils/align.css +1 -1
  359. package/css/src/utils/background.css +1 -1
  360. package/css/src/utils/cursor.css +1 -1
  361. package/css/src/utils/display.css +1 -1
  362. package/css/src/utils/flex.css +1 -1
  363. package/css/src/utils/grid.css +1 -1
  364. package/css/src/utils/overflow.css +1 -1
  365. package/css/src/utils/position.css +1 -1
  366. package/css/src/utils/spacing.css +1 -1
  367. package/css/src/utils/utility.css +13 -13
  368. package/css/src/variables/index.css +6 -3
  369. package/dist/core/accessibility/utils/index.d.ts +4 -0
  370. package/dist/core/accessibility/utils/isEnterKey.d.ts +3 -0
  371. package/dist/core/accessibility/utils/isSpaceKey.d.ts +3 -0
  372. package/dist/core/accessibility/utils/useAccessibilityProps.d.ts +18 -0
  373. package/dist/core/common.type.d.ts +12 -0
  374. package/dist/core/components/atoms/avatar/Avatar.d.ts +4 -4
  375. package/dist/core/components/atoms/avatarGroup/AvatarGroup.d.ts +2 -3
  376. package/dist/core/components/atoms/badge/Badge.d.ts +2 -2
  377. package/dist/core/components/atoms/button/Button.d.ts +6 -6
  378. package/dist/core/components/atoms/checkbox/Checkbox.d.ts +3 -3
  379. package/dist/core/components/atoms/chip/Chip.d.ts +2 -2
  380. package/dist/core/components/atoms/divider/Divider.d.ts +15 -0
  381. package/dist/core/components/atoms/divider/index.d.ts +2 -0
  382. package/dist/core/components/atoms/dropdown/Dropdown.d.ts +18 -17
  383. package/dist/core/components/atoms/dropdown/DropdownButton.d.ts +2 -2
  384. package/dist/core/components/atoms/dropdown/DropdownList.d.ts +4 -3
  385. package/dist/core/components/atoms/dropdown/option/index.d.ts +1 -1
  386. package/dist/core/components/atoms/heading/Heading.d.ts +4 -4
  387. package/dist/core/components/atoms/icon/Icon.d.ts +5 -3
  388. package/dist/core/components/atoms/input/Input.d.ts +4 -4
  389. package/dist/core/components/atoms/legend/Legend.d.ts +2 -2
  390. package/dist/core/components/atoms/link/Link.d.ts +4 -4
  391. package/dist/core/components/atoms/message/Message.d.ts +2 -2
  392. package/dist/core/components/atoms/metricInput/MetricInput.d.ts +3 -3
  393. package/dist/core/components/atoms/multiSlider/SliderUtils.d.ts +1 -1
  394. package/dist/core/components/atoms/multiSlider/index.d.ts +3 -3
  395. package/dist/core/components/atoms/paragraph/Paragraph.d.ts +2 -2
  396. package/dist/core/components/atoms/pills/Pills.d.ts +2 -2
  397. package/dist/core/components/atoms/placeholderImage/PlaceholderImage.d.ts +2 -2
  398. package/dist/core/components/atoms/placeholderParagraph/PlaceholderParagraph.d.ts +2 -2
  399. package/dist/core/components/atoms/popperWrapper/PopperWrapper.d.ts +51 -51
  400. package/dist/core/components/atoms/progressRing/ProgressRing.d.ts +2 -2
  401. package/dist/core/components/atoms/radio/Radio.d.ts +4 -4
  402. package/dist/core/components/atoms/rangeSlider/RangeSlider.d.ts +1 -1
  403. package/dist/core/components/atoms/spinner/Spinner.d.ts +4 -4
  404. package/dist/core/components/atoms/statusHint/StatusHint.d.ts +2 -2
  405. package/dist/core/components/atoms/subheading/Subheading.d.ts +2 -2
  406. package/dist/core/components/atoms/switchInput/Switch.d.ts +7 -6
  407. package/dist/core/components/atoms/text/Text.d.ts +4 -4
  408. package/dist/core/components/atoms/toast/ActionButton.d.ts +2 -2
  409. package/dist/core/components/atoms/toast/Toast.d.ts +2 -2
  410. package/dist/core/components/molecules/dropzone/Dropzone.d.ts +3 -3
  411. package/dist/core/components/molecules/dropzone/DropzoneBase.d.ts +1 -1
  412. package/dist/core/components/molecules/dropzone/utils.d.ts +5 -3
  413. package/dist/core/components/molecules/emptyState/EmptyState.d.ts +4 -4
  414. package/dist/core/components/molecules/fileList/FileListItem.d.ts +1 -1
  415. package/dist/core/components/molecules/fileUploader/FileUploaderItem.d.ts +1 -1
  416. package/dist/core/components/molecules/fileUploader/FileUploaderStatus.d.ts +1 -1
  417. package/dist/core/components/molecules/fullscreenModal/FullscreenModal.d.ts +4 -7
  418. package/dist/core/components/molecules/inputMask/InputMask.d.ts +10 -2
  419. package/dist/core/components/molecules/modal/Modal.d.ts +3 -6
  420. package/dist/core/components/molecules/placeholder/Placeholder.d.ts +2 -2
  421. package/dist/core/components/molecules/popover/Popover.d.ts +0 -1
  422. package/dist/core/components/molecules/sidesheet/Sidesheet.d.ts +3 -6
  423. package/dist/core/components/molecules/tooltip/Tooltip.d.ts +3 -3
  424. package/dist/core/components/organisms/calendar/Calendar.d.ts +31 -0
  425. package/dist/core/components/organisms/choiceList/ChoiceList.d.ts +5 -6
  426. package/dist/core/components/organisms/datePicker/DatePicker.d.ts +2 -0
  427. package/dist/core/components/organisms/dateRangePicker/DateRangePicker.d.ts +24 -0
  428. package/dist/core/components/organisms/grid/Cell.d.ts +1 -1
  429. package/dist/core/components/organisms/grid/Grid.d.ts +3 -3
  430. package/dist/core/components/organisms/grid/GridContext.d.ts +1 -1
  431. package/dist/core/components/organisms/inlineMessage/InlineMessage.d.ts +2 -2
  432. package/dist/core/components/organisms/table/Table.d.ts +2 -2
  433. package/dist/core/components/patterns/datePicker/datePickerWithPresets.story.d.ts +15 -0
  434. package/dist/core/components/patterns/dateRangePicker/withCustomPopover.story.d.ts +5 -1
  435. package/dist/core/index.d.ts +1 -0
  436. package/dist/core/index.type.d.ts +1 -0
  437. package/dist/core/utils/docPage/generateImports.d.ts +1 -1
  438. package/dist/core/utils/overlayHelper.d.ts +1 -1
  439. package/dist/core/utils/types.d.ts +1 -1
  440. package/dist/index.esm.js +1039 -729
  441. package/dist/index.js +532 -371
  442. package/dist/index.js.map +1 -1
  443. package/dist/index.umd.js +1 -1
  444. package/dist/index.umd.js.br +0 -0
  445. package/dist/index.umd.js.gz +0 -0
  446. package/dts.config.js +11 -2
  447. package/package.json +32 -27
  448. package/tsconfig.json +3 -16
  449. package/tsconfig.type.json +2 -1
  450. package/types/index.d.ts +2217 -0
  451. package/types/{innovaccer-design-system/tsconfig.json → tsconfig.json} +1 -1
  452. package/types/{innovaccer-design-system/tslint.json → tslint.json} +0 -0
  453. package/types/types-tests.tsx +936 -0
  454. package/.husky/prepare-commit-msg +0 -6
  455. package/core/components/atoms/button/__stories__/variants/state/Success.story.tsx +0 -99
  456. package/core/components/atoms/message/__stories__/default.story.tsx +0 -16
  457. package/core/components/atoms/toast/__stories__/DefaultToast.story.tsx +0 -16
  458. package/core/components/molecules/dropzone/__stories__/variants/DropzoneWithFileList.story.tsx +0 -176
  459. package/core/components/molecules/fileUploader/__stories__/variants/FileUploaderList.story.tsx +0 -80
  460. package/tslint.json +0 -30
  461. package/types/innovaccer-design-system/index.d.ts +0 -39
  462. package/types/innovaccer-design-system/innovaccer-design-system-tests.ts +0 -0
@@ -28,40 +28,9 @@ exports[`Toast component
28
28
  </h5>
29
29
  <i
30
30
  class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--alert"
31
+ role="button"
31
32
  style="font-size: 16px; width: 16px;"
32
- >
33
- close_round
34
- </i>
35
- </div>
36
- </div>
37
- </div>
38
- </div>
39
- </body>
40
- `;
41
-
42
- exports[`Toast component
43
- title: "Sample Toast", appearance: "default", onClose: "[Function]"
44
- 1`] = `
45
- <body>
46
- <div>
47
- <div
48
- class="Toast Toast--default"
49
- >
50
- <div
51
- class="Toast-body"
52
- >
53
- <div
54
- class="Toast-title"
55
- >
56
- <h5
57
- class="Heading Heading--s Heading--white Toast-heading Toast-heading--default"
58
- data-test="DesignSystem-Heading"
59
- >
60
- Sample Toast
61
- </h5>
62
- <i
63
- class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--default"
64
- style="font-size: 16px; width: 16px;"
33
+ tabindex="0"
65
34
  >
66
35
  close_round
67
36
  </i>
@@ -100,7 +69,9 @@ exports[`Toast component
100
69
  </h5>
101
70
  <i
102
71
  class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--info"
72
+ role="button"
103
73
  style="font-size: 16px; width: 16px;"
74
+ tabindex="0"
104
75
  >
105
76
  close_round
106
77
  </i>
@@ -139,7 +110,9 @@ exports[`Toast component
139
110
  </h5>
140
111
  <i
141
112
  class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--success"
113
+ role="button"
142
114
  style="font-size: 16px; width: 16px;"
115
+ tabindex="0"
143
116
  >
144
117
  close_round
145
118
  </i>
@@ -178,7 +151,9 @@ exports[`Toast component
178
151
  </h5>
179
152
  <i
180
153
  class="material-icons material-icons-round Icon Icon--default Toast-icon Toast-icon--right Toast-icon--warning"
154
+ role="button"
181
155
  style="font-size: 16px; width: 16px;"
156
+ tabindex="0"
182
157
  >
183
158
  close_round
184
159
  </i>
@@ -217,7 +192,9 @@ exports[`Toast component
217
192
  </h5>
218
193
  <i
219
194
  class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--alert"
195
+ role="button"
220
196
  style="font-size: 16px; width: 16px;"
197
+ tabindex="0"
221
198
  >
222
199
  close_round
223
200
  </i>
@@ -262,7 +239,9 @@ exports[`Toast component
262
239
  </h5>
263
240
  <i
264
241
  class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--alert"
242
+ role="button"
265
243
  style="font-size: 16px; width: 16px;"
244
+ tabindex="0"
266
245
  >
267
246
  close_round
268
247
  </i>
@@ -293,98 +272,6 @@ exports[`Toast component
293
272
  </body>
294
273
  `;
295
274
 
296
- exports[`Toast component
297
- title: "Sample Toast", message: "Sample string", appearance: "default", onClose: "[Function]"
298
- 1`] = `
299
- <body>
300
- <div>
301
- <div
302
- class="Toast Toast--withMessage Toast--default"
303
- >
304
- <div
305
- class="Toast-body"
306
- >
307
- <div
308
- class="Toast-title Toast-title--withMessage"
309
- >
310
- <h5
311
- class="Heading Heading--s Heading--white Toast-heading Toast-heading--default"
312
- data-test="DesignSystem-Heading"
313
- >
314
- Sample Toast
315
- </h5>
316
- <i
317
- class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--default"
318
- style="font-size: 16px; width: 16px;"
319
- >
320
- close_round
321
- </i>
322
- </div>
323
- <span
324
- class="Text Text--white Text--regular Toast-text Toast-text--default"
325
- data-test="DesignSystem-Text"
326
- >
327
- Sample string
328
- </span>
329
- </div>
330
- </div>
331
- </div>
332
- </body>
333
- `;
334
-
335
- exports[`Toast component
336
- title: "Sample Toast", message: "Sample string", appearance: "default", onClose: "[Function]", actions: [{"label":"Action 1","onClick":"[Function]"}]
337
- 1`] = `
338
- <body>
339
- <div>
340
- <div
341
- class="Toast Toast--withMessage Toast--default"
342
- >
343
- <div
344
- class="Toast-body"
345
- >
346
- <div
347
- class="Toast-title Toast-title--withMessage"
348
- >
349
- <h5
350
- class="Heading Heading--s Heading--white Toast-heading Toast-heading--default"
351
- data-test="DesignSystem-Heading"
352
- >
353
- Sample Toast
354
- </h5>
355
- <i
356
- class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--default"
357
- style="font-size: 16px; width: 16px;"
358
- >
359
- close_round
360
- </i>
361
- </div>
362
- <span
363
- class="Text Text--white Text--regular Toast-text Toast-text--default"
364
- data-test="DesignSystem-Text"
365
- >
366
- Sample string
367
- </span>
368
- <div
369
- class="Toast-actions"
370
- >
371
- <button
372
- class="Button Button--tiny Toast-actionButton Toast-actionButton--default"
373
- >
374
- <span
375
- class="Text Text--white Text--regular"
376
- data-test="DesignSystem-Text"
377
- >
378
- Action 1
379
- </span>
380
- </button>
381
- </div>
382
- </div>
383
- </div>
384
- </div>
385
- </body>
386
- `;
387
-
388
275
  exports[`Toast component
389
276
  title: "Sample Toast", message: "Sample string", appearance: "info", onClose: "[Function]"
390
277
  1`] = `
@@ -413,7 +300,9 @@ exports[`Toast component
413
300
  </h5>
414
301
  <i
415
302
  class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--info"
303
+ role="button"
416
304
  style="font-size: 16px; width: 16px;"
305
+ tabindex="0"
417
306
  >
418
307
  close_round
419
308
  </i>
@@ -458,7 +347,9 @@ exports[`Toast component
458
347
  </h5>
459
348
  <i
460
349
  class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--info"
350
+ role="button"
461
351
  style="font-size: 16px; width: 16px;"
352
+ tabindex="0"
462
353
  >
463
354
  close_round
464
355
  </i>
@@ -517,7 +408,9 @@ exports[`Toast component
517
408
  </h5>
518
409
  <i
519
410
  class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--success"
411
+ role="button"
520
412
  style="font-size: 16px; width: 16px;"
413
+ tabindex="0"
521
414
  >
522
415
  close_round
523
416
  </i>
@@ -562,7 +455,9 @@ exports[`Toast component
562
455
  </h5>
563
456
  <i
564
457
  class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--success"
458
+ role="button"
565
459
  style="font-size: 16px; width: 16px;"
460
+ tabindex="0"
566
461
  >
567
462
  close_round
568
463
  </i>
@@ -621,7 +516,9 @@ exports[`Toast component
621
516
  </h5>
622
517
  <i
623
518
  class="material-icons material-icons-round Icon Icon--default Toast-icon Toast-icon--right Toast-icon--warning"
519
+ role="button"
624
520
  style="font-size: 16px; width: 16px;"
521
+ tabindex="0"
625
522
  >
626
523
  close_round
627
524
  </i>
@@ -666,7 +563,9 @@ exports[`Toast component
666
563
  </h5>
667
564
  <i
668
565
  class="material-icons material-icons-round Icon Icon--default Toast-icon Toast-icon--right Toast-icon--warning"
566
+ role="button"
669
567
  style="font-size: 16px; width: 16px;"
568
+ tabindex="0"
670
569
  >
671
570
  close_round
672
571
  </i>
@@ -1,5 +1,5 @@
1
1
  import { Schema } from '../organisms/grid';
2
- import React from 'react';
2
+ import * as React from 'react';
3
3
  import { GridCell, Button } from '@/index';
4
4
 
5
5
  const copyCode = (val: string) => navigator.clipboard.writeText(val);
@@ -1,6 +1,6 @@
1
1
  import { Schema } from '../../organisms/grid';
2
2
  import { GridCell, Button } from '@/index';
3
- import React from 'react';
3
+ import * as React from 'react';
4
4
 
5
5
  const copyCode = (val: string) => navigator.clipboard.writeText(val);
6
6
 
@@ -33,11 +33,14 @@ export const Box = (props: InternalBoxProps) => {
33
33
  className
34
34
  );
35
35
 
36
+ /* TODO(a11y): fix accessibility */
37
+ /* eslint-disable */
36
38
  return (
37
39
  <div {...baseProps} className={MessageClass} onClick={onClick} data-test="DesignSystem-ChatMessage--Box">
38
40
  {children}
39
41
  </div>
40
42
  );
43
+ /* eslint-enable */
41
44
  };
42
45
 
43
46
  Box.displayName = 'Box';
@@ -190,6 +190,8 @@ export const ChipInput = (props: ChipInputProps) => {
190
190
  });
191
191
 
192
192
  return (
193
+ /* TODO(a11y): fix accessibility */
194
+ /* eslint-disable */
193
195
  <div data-test="DesignSystem-ChipInput" {...baseProps} className={ChipInputClass} onClick={onClickHandler}>
194
196
  <div className="ChipInput-wrapper">
195
197
  {chips && chips.length > 0 && chipComponents}
@@ -206,6 +208,7 @@ export const ChipInput = (props: ChipInputProps) => {
206
208
  onChange={onInputChangeHandler}
207
209
  onKeyDown={onKeyDownHandler}
208
210
  />
211
+ {/* eslint-enable */}
209
212
  </div>
210
213
  {chips.length > 0 && (
211
214
  <Icon
@@ -23,9 +23,11 @@ exports[`ChipInput component
23
23
  1020
24
24
  </span>
25
25
  <i
26
- class="material-icons material-icons-round Icon Icon--subtle Chip-icon Chip-icon--right cursor-pointer"
26
+ class="material-icons material-icons-round Icon Chip-icon Chip-icon--right cursor-pointer"
27
27
  data-test="DesignSystem-GenericChip--clearButton"
28
+ role="button"
28
29
  style="font-size: 16px; width: 16px;"
30
+ tabindex="0"
29
31
  >
30
32
  clear_round
31
33
  </i>
@@ -41,9 +43,11 @@ exports[`ChipInput component
41
43
  80
42
44
  </span>
43
45
  <i
44
- class="material-icons material-icons-round Icon Icon--subtle Chip-icon Chip-icon--right cursor-pointer"
46
+ class="material-icons material-icons-round Icon Chip-icon Chip-icon--right cursor-pointer"
45
47
  data-test="DesignSystem-GenericChip--clearButton"
48
+ role="button"
46
49
  style="font-size: 16px; width: 16px;"
50
+ tabindex="0"
47
51
  >
48
52
  clear_round
49
53
  </i>
@@ -58,7 +62,9 @@ exports[`ChipInput component
58
62
  <i
59
63
  class="material-icons material-icons-round Icon Icon--subtle ChipInput-icon"
60
64
  data-test="DesignSystem-ChipInput--Icon"
65
+ role="button"
61
66
  style="font-size: 16px; width: 16px;"
67
+ tabindex="0"
62
68
  >
63
69
  close_round
64
70
  </i>
@@ -92,7 +98,9 @@ exports[`ChipInput component
92
98
  <i
93
99
  class="material-icons material-icons-round Icon Icon--disabled Chip-icon Chip-icon--right"
94
100
  data-test="DesignSystem-GenericChip--clearButton"
101
+ role="button"
95
102
  style="font-size: 16px; width: 16px;"
103
+ tabindex="0"
96
104
  >
97
105
  clear_round
98
106
  </i>
@@ -110,7 +118,9 @@ exports[`ChipInput component
110
118
  <i
111
119
  class="material-icons material-icons-round Icon Icon--disabled Chip-icon Chip-icon--right"
112
120
  data-test="DesignSystem-GenericChip--clearButton"
121
+ role="button"
113
122
  style="font-size: 16px; width: 16px;"
123
+ tabindex="0"
114
124
  >
115
125
  clear_round
116
126
  </i>
@@ -126,7 +136,9 @@ exports[`ChipInput component
126
136
  <i
127
137
  class="material-icons material-icons-round Icon Icon--subtle ChipInput-icon"
128
138
  data-test="DesignSystem-ChipInput--Icon"
139
+ role="button"
129
140
  style="font-size: 16px; width: 16px;"
141
+ tabindex="0"
130
142
  >
131
143
  close_round
132
144
  </i>
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import * as React from 'react';
2
2
  import classNames from 'classnames';
3
3
  import { Icon, Text } from '@/index';
4
4
  import DropzoneBase, { DropzoneBaseProps } from './DropzoneBase';
@@ -7,7 +7,7 @@ import DropzoneError from './DropzoneError';
7
7
  import { BaseProps, extractBaseProps } from '@/utils/types';
8
8
  import { fileErrorMessages } from './FileErrors';
9
9
 
10
- export type Type = 'standard' | 'compressed' | 'tight';
10
+ export type DropZoneType = 'standard' | 'compressed' | 'tight';
11
11
 
12
12
  export interface DropzoneProps extends BaseProps, DropzoneBaseProps {
13
13
  /**
@@ -17,7 +17,7 @@ export interface DropzoneProps extends BaseProps, DropzoneBaseProps {
17
17
  /**
18
18
  * Size of `Dropzone`
19
19
  */
20
- type: Type;
20
+ type: DropZoneType;
21
21
  /**
22
22
  * Description of maximum size in `FileUploader`
23
23
  */
@@ -70,6 +70,8 @@ export const Dropzone = (props: DropzoneProps) => {
70
70
  <Text size="large" weight="strong" className="mr-2" appearance={disabled ? 'disabled' : 'default'}>
71
71
  Drag your files here or
72
72
  </Text>
73
+ {/* TODO(a11y): fix accessibility */}
74
+ {/* eslint-disable */}
73
75
  <span className="cursor-pointer" onClick={open}>
74
76
  <Text size="large" weight="strong" appearance={disabled ? 'disabled' : 'link'}>
75
77
  browse files
@@ -77,6 +79,7 @@ export const Dropzone = (props: DropzoneProps) => {
77
79
  </span>
78
80
  <input {...getInputProps()} />
79
81
  </span>
82
+ {/* eslint-enable */}
80
83
  {formatLabel && <Text appearance={disabled ? 'disabled' : 'subtle'}>{formatLabel}</Text>}
81
84
  {sizeLabel && <Text appearance={disabled ? 'disabled' : 'subtle'}>{sizeLabel}</Text>}
82
85
  {sampleFileLink && <div className="mt-5">{sampleFileLink}</div>}
@@ -106,7 +106,7 @@ export interface DropzoneBaseProps extends BaseProps {
106
106
  * @param {FileRejection[]} fileRejections
107
107
  * @param {(DragEvent|Event)} event
108
108
  */
109
- onDropRejected?: (event: DragEvent | Event, rejectedFiles: FileRejection[]) => any;
109
+ onDropRejected?: (event: DragEvent | Event, rejectedFiles: FileRejection[]) => void;
110
110
 
111
111
  /**
112
112
  * Custom validation function
@@ -149,8 +149,8 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
149
149
  validator,
150
150
  } = props;
151
151
 
152
- const rootRef = useRef(null);
153
- const inputRef = useRef(null);
152
+ const rootRef = useRef<HTMLDivElement>(null);
153
+ const inputRef = useRef<HTMLInputElement>(null);
154
154
 
155
155
  const [state, dispatch] = useReducer(reducer, initialState);
156
156
  const { isFocused, isFileDialogActive, draggedFiles } = state;
@@ -158,9 +158,9 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
158
158
  const openFileDialog = useCallback(() => {
159
159
  if (inputRef.current) {
160
160
  dispatch({ type: 'openDialog' });
161
- // @ts-ignore
162
- inputRef.current.value = null;
163
- // @ts-ignore
161
+
162
+ inputRef.current.value = '';
163
+
164
164
  inputRef.current.click();
165
165
  }
166
166
  }, [dispatch]);
@@ -169,10 +169,9 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
169
169
  if (isFileDialogActive) {
170
170
  setTimeout(() => {
171
171
  if (inputRef.current) {
172
- // @ts-ignore
173
172
  const { files } = inputRef.current;
174
173
 
175
- if (!files.length) {
174
+ if (!files || !files.length) {
176
175
  dispatch({ type: 'closeDialog' });
177
176
 
178
177
  if (typeof onFileDialogCancel === 'function') {
@@ -193,7 +192,6 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
193
192
  // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone
194
193
  const onKeyDownCb = useCallback(
195
194
  (event) => {
196
- // @ts-ignore
197
195
  if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {
198
196
  return;
199
197
  }
@@ -215,11 +213,11 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
215
213
  dispatch({ type: 'blur' });
216
214
  }, []);
217
215
 
218
- const dragTargetsRef = useRef([]);
216
+ const dragTargetsRef = useRef<HTMLElement[]>([]);
219
217
 
220
- const onDocumentDrop = (event: any) => {
221
- // @ts-ignore
222
- if (rootRef.current && rootRef.current.contains(event.target)) {
218
+ const onDocumentDrop = (event: DragEvent) => {
219
+ // Not every event target type is element so we have to check if it is.
220
+ if (event.target instanceof HTMLDivElement && rootRef.current && rootRef.current.contains(event.target)) {
223
221
  return;
224
222
  }
225
223
  event.preventDefault();
@@ -245,7 +243,6 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
245
243
  event.preventDefault();
246
244
  event.persist();
247
245
 
248
- // @ts-ignore
249
246
  dragTargetsRef.current = [...dragTargetsRef.current, event.target];
250
247
 
251
248
  if (isEvtWithFiles(event)) {
@@ -294,11 +291,7 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
294
291
  event.preventDefault();
295
292
  event.persist();
296
293
 
297
- const targets = dragTargetsRef.current.filter(
298
- // @ts-ignore
299
- (target) => rootRef.current && rootRef.current.contains(target)
300
- );
301
- // @ts-ignore
294
+ const targets = dragTargetsRef.current.filter((target) => rootRef.current && rootRef.current.contains(target));
302
295
  const targetIdx = targets.indexOf(event.target);
303
296
  if (targetIdx !== -1) {
304
297
  targets.splice(targetIdx, 1);
@@ -336,7 +329,10 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
336
329
  }
337
330
 
338
331
  const acceptedFiles: File[] = [];
339
- const fileRejections: any[] = [];
332
+ const fileRejections: {
333
+ file: File;
334
+ errors: FileError[];
335
+ }[] = [];
340
336
 
341
337
  files.forEach((file: File) => {
342
338
  const [accepted, acceptError] = fileAccepted(file, accept);
@@ -351,8 +347,8 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
351
347
  if (customErrors) {
352
348
  errors = errors.concat(customErrors);
353
349
  }
354
-
355
- fileRejections.push({ file, errors: errors.filter((e) => e) });
350
+ const filteredErrors = errors.filter((e) => e) as Array<FileError>;
351
+ fileRejections.push({ file, errors: filteredErrors });
356
352
  }
357
353
  });
358
354
 
@@ -380,18 +376,10 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
380
376
  [multiple, accept, minSize, maxSize, getFilesFromEvent, onDrop, onDropAccepted, onDropRejected]
381
377
  );
382
378
 
383
- const composeHandler = (fn: any) => {
379
+ const composeDragHandler = (fn: (event: DragEvent) => void) => {
384
380
  return disabled ? null : fn;
385
381
  };
386
382
 
387
- const composeKeyboardHandler = (_fn: any) => {
388
- return null;
389
- };
390
-
391
- const composeDragHandler = (fn: any) => {
392
- return composeHandler(fn);
393
- };
394
-
395
383
  const getRootProps = useMemo(
396
384
  () =>
397
385
  ({
@@ -406,10 +394,6 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
406
394
  onDropCallback,
407
395
  ...rest
408
396
  }: any = {}) => ({
409
- onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),
410
- onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),
411
- onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),
412
- // onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),
413
397
  onDragEnter: composeDragHandler(composeEventHandlers(onDragEnterCallback, onDragEnterCb)),
414
398
  onDragOver: composeDragHandler(composeEventHandlers(onDragOverCallback, onDragOverCb)),
415
399
  onDragLeave: composeDragHandler(composeEventHandlers(onDragLeaveCallback, onDragLeaveCb)),
@@ -432,8 +416,8 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
432
416
  multiple,
433
417
  type: 'file',
434
418
  style: { display: 'none' },
435
- onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),
436
- onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),
419
+ onChange: composeDragHandler(composeEventHandlers(onChange, onDropCb)),
420
+ onClick: composeDragHandler(composeEventHandlers(onClick, onInputElementClick)),
437
421
  autoComplete: 'off',
438
422
  tabIndex: -1,
439
423
  [refKey]: inputRef,
@@ -463,7 +447,7 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
463
447
  draggedFiles,
464
448
  fileError,
465
449
  isFocused: isFocused && !disabled,
466
- open: composeHandler(openFileDialog),
450
+ open: composeDragHandler(openFileDialog),
467
451
  };
468
452
  };
469
453
 
@@ -16,7 +16,7 @@ export const COMMON_MIME_TYPES = new Map([
16
16
 
17
17
  const FILES_TO_IGNORE = ['.DS_Store', 'Thumbs.db'];
18
18
 
19
- interface FileArray extends Array<FileValue> {}
19
+ type FileArray = Array<FileValue>;
20
20
 
21
21
  type FileValue = FileWithPath | FileArray[];
22
22