@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
@@ -7,9 +7,13 @@ export const defaultMetric = () => {
7
7
 
8
8
  return (
9
9
  <div className="d-flex align-items-center">
10
- <Label className="mr-5">No. of Days</Label>
10
+ <Label htmlFor="metric-input" className="mr-5">
11
+ No. of Days
12
+ </Label>
11
13
  <div style={{ width: 'var(--spacing-6)' }}>
12
14
  <MetricInput
15
+ id="metric-input"
16
+ name="metric-input"
13
17
  size="regular"
14
18
  value={value}
15
19
  onChange={(e) => {
@@ -26,9 +30,11 @@ const customCode = `() => {
26
30
 
27
31
  return (
28
32
  <div className="d-flex align-items-center">
29
- <Label className="mr-5">No. of Days</Label>
33
+ <Label htmlFor="metric-input" className="mr-5">
30
34
  <div style={{ width: 'var(--spacing-6)' }}>
31
35
  <MetricInput
36
+ id="metric-input"
37
+ name="metric-input"
32
38
  size="regular"
33
39
  value={value}
34
40
  onChange={e => { setValue(e.target.value); }}
@@ -7,9 +7,12 @@ export const withPrefix = () => {
7
7
 
8
8
  return (
9
9
  <div className="d-flex align-items-center">
10
- <Label className="mr-5">Cost</Label>
10
+ <Label htmlFor="metric-input" className="mr-5">
11
+ Cost
12
+ </Label>
11
13
  <div style={{ width: 'var(--spacing-7)' }}>
12
14
  <MetricInput
15
+ id="metric-input"
13
16
  prefix="USD"
14
17
  value={value}
15
18
  onChange={(e) => {
@@ -26,9 +29,10 @@ const customCode = `() => {
26
29
 
27
30
  return (
28
31
  <div className="d-flex align-items-center">
29
- <Label className="mr-5">Cost</Label>
32
+ <Label htmlFor="metric-input" className="mr-5">Cost</Label>
30
33
  <div style={{ width: 'var(--spacing-7)' }}>
31
34
  <MetricInput
35
+ id="metric-input"
32
36
  prefix="USD"
33
37
  value={value}
34
38
  onChange={e => { setValue(e.target.value); }}
@@ -30,6 +30,7 @@ export const all = () => {
30
30
  onChange={action('on-change')}
31
31
  onClick={action('on-click')}
32
32
  placeholder={placeholder}
33
+ aria-label="Metric input example"
33
34
  prefix={prefix}
34
35
  suffix={suffix}
35
36
  size={size}
@@ -8,6 +8,7 @@ export const controlledMetricInput = () => {
8
8
  return (
9
9
  <div style={{ width: 'var(--spacing-6)' }}>
10
10
  <MetricInput
11
+ aria-label="Metric Input Label"
11
12
  value={value}
12
13
  onChange={(e) => {
13
14
  setValue(e.target.value);
@@ -23,6 +24,7 @@ const customCode = `() => {
23
24
  return (
24
25
  <div style={{ width: 'var(--spacing-6)' }}>
25
26
  <MetricInput
27
+ aria-label="Metric Input Label"
26
28
  value={value}
27
29
  onChange={(e) => { setValue(e.target.value) }}
28
30
  />
@@ -5,11 +5,11 @@ import { MetricInput, Text } from '@/index';
5
5
  export const size = () => (
6
6
  <div className="d-flex" style={{ width: 'var(--spacing-8)' }}>
7
7
  <div className="d-flex flex-column align-items-center mr-8">
8
- <MetricInput size="regular" className="mb-3" />
8
+ <MetricInput aria-label="Metric input regular size" size="regular" className="mb-3" />
9
9
  <Text>Regular</Text>
10
10
  </div>
11
11
  <div className="d-flex flex-column align-items-center">
12
- <MetricInput size="large" className="mb-3" />
12
+ <MetricInput aria-label="Metric input large size" size="large" className="mb-3" />
13
13
  <Text>Large</Text>
14
14
  </div>
15
15
  </div>
@@ -7,9 +7,12 @@ export const withSuffix = () => {
7
7
 
8
8
  return (
9
9
  <div className="d-flex align-items-center">
10
- <Label className="mr-5">Body Height</Label>
10
+ <Label htmlFor="metric-input" className="mr-5">
11
+ Body Height
12
+ </Label>
11
13
  <div style={{ width: 'var(--spacing-6)' }}>
12
14
  <MetricInput
15
+ id="metric-input"
13
16
  suffix="in"
14
17
  value={value}
15
18
  onChange={(e) => {
@@ -26,9 +29,10 @@ const customCode = `() => {
26
29
 
27
30
  return (
28
31
  <div className="d-flex align-items-center">
29
- <Label className="mr-5">Body Height</Label>
32
+ <Label htmlFor="metric-input" className="mr-5">Body Height</Label>
30
33
  <div style={{ width: 'var(--spacing-6)' }}>
31
34
  <MetricInput
35
+ id="metric-input"
32
36
  suffix="in"
33
37
  value={value}
34
38
  onChange={e => { setValue(e.target.value); }}
@@ -8,6 +8,7 @@ exports[`MetricInput component
8
8
  <div
9
9
  class="MetricInput MetricInput--regular"
10
10
  data-test="DesignSystem-MetricInputWrapper"
11
+ role="presentation"
11
12
  >
12
13
  <i
13
14
  class="material-icons material-icons-round Icon Icon--subtle MetricInput-icon MetricInput-icon--regular"
@@ -24,19 +25,22 @@ exports[`MetricInput component
24
25
  />
25
26
  <div
26
27
  class="MetricInput-arrowIcons"
27
- tabindex="0"
28
28
  >
29
29
  <i
30
30
  class="material-icons material-icons-round Icon MetricInput-arrowIcon MetricInput-arrowIcon--regular MetricInput-arrowIcon--up"
31
31
  data-test="DesignSystem-MetricInput--upIcon"
32
+ role="button"
32
33
  style="font-size: 12px; width: 12px;"
34
+ tabindex="0"
33
35
  >
34
36
  keyboard_arrow_up_round
35
37
  </i>
36
38
  <i
37
39
  class="material-icons material-icons-round Icon MetricInput-arrowIcon MetricInput-arrowIcon--regular MetricInput-arrowIcon--down"
38
40
  data-test="DesignSystem-MetricInput--downIcon"
41
+ role="button"
39
42
  style="font-size: 12px; width: 12px;"
43
+ tabindex="0"
40
44
  >
41
45
  keyboard_arrow_down_round
42
46
  </i>
@@ -54,6 +58,7 @@ exports[`MetricInput component
54
58
  <div
55
59
  class="MetricInput MetricInput--regular MetricInput--error"
56
60
  data-test="DesignSystem-MetricInputWrapper"
61
+ role="presentation"
57
62
  >
58
63
  <i
59
64
  class="material-icons material-icons-round Icon Icon--subtle MetricInput-icon MetricInput-icon--regular"
@@ -70,19 +75,22 @@ exports[`MetricInput component
70
75
  />
71
76
  <div
72
77
  class="MetricInput-arrowIcons"
73
- tabindex="0"
74
78
  >
75
79
  <i
76
80
  class="material-icons material-icons-round Icon MetricInput-arrowIcon MetricInput-arrowIcon--regular MetricInput-arrowIcon--up"
77
81
  data-test="DesignSystem-MetricInput--upIcon"
82
+ role="button"
78
83
  style="font-size: 12px; width: 12px;"
84
+ tabindex="0"
79
85
  >
80
86
  keyboard_arrow_up_round
81
87
  </i>
82
88
  <i
83
89
  class="material-icons material-icons-round Icon MetricInput-arrowIcon MetricInput-arrowIcon--regular MetricInput-arrowIcon--down"
84
90
  data-test="DesignSystem-MetricInput--downIcon"
91
+ role="button"
85
92
  style="font-size: 12px; width: 12px;"
93
+ tabindex="0"
86
94
  >
87
95
  keyboard_arrow_down_round
88
96
  </i>
@@ -100,6 +108,7 @@ exports[`MetricInput component
100
108
  <div
101
109
  class="MetricInput MetricInput--large"
102
110
  data-test="DesignSystem-MetricInputWrapper"
111
+ role="presentation"
103
112
  >
104
113
  <span
105
114
  class="Text Text--subtle Text--large mr-5"
@@ -122,19 +131,22 @@ exports[`MetricInput component
122
131
  </span>
123
132
  <div
124
133
  class="MetricInput-arrowIcons"
125
- tabindex="0"
126
134
  >
127
135
  <i
128
136
  class="material-icons material-icons-round Icon MetricInput-arrowIcon MetricInput-arrowIcon--large MetricInput-arrowIcon--up"
129
137
  data-test="DesignSystem-MetricInput--upIcon"
138
+ role="button"
130
139
  style="font-size: 16px; width: 16px;"
140
+ tabindex="0"
131
141
  >
132
142
  keyboard_arrow_up_round
133
143
  </i>
134
144
  <i
135
145
  class="material-icons material-icons-round Icon MetricInput-arrowIcon MetricInput-arrowIcon--large MetricInput-arrowIcon--down"
136
146
  data-test="DesignSystem-MetricInput--downIcon"
147
+ role="button"
137
148
  style="font-size: 16px; width: 16px;"
149
+ tabindex="0"
138
150
  >
139
151
  keyboard_arrow_down_round
140
152
  </i>
@@ -152,6 +164,7 @@ exports[`MetricInput component
152
164
  <div
153
165
  class="MetricInput MetricInput--regular"
154
166
  data-test="DesignSystem-MetricInputWrapper"
167
+ role="presentation"
155
168
  >
156
169
  <span
157
170
  class="Text Text--subtle Text--regular mr-4"
@@ -174,19 +187,22 @@ exports[`MetricInput component
174
187
  </span>
175
188
  <div
176
189
  class="MetricInput-arrowIcons"
177
- tabindex="0"
178
190
  >
179
191
  <i
180
192
  class="material-icons material-icons-round Icon MetricInput-arrowIcon MetricInput-arrowIcon--regular MetricInput-arrowIcon--up"
181
193
  data-test="DesignSystem-MetricInput--upIcon"
194
+ role="button"
182
195
  style="font-size: 12px; width: 12px;"
196
+ tabindex="0"
183
197
  >
184
198
  keyboard_arrow_up_round
185
199
  </i>
186
200
  <i
187
201
  class="material-icons material-icons-round Icon MetricInput-arrowIcon MetricInput-arrowIcon--regular MetricInput-arrowIcon--down"
188
202
  data-test="DesignSystem-MetricInput--downIcon"
203
+ role="button"
189
204
  style="font-size: 12px; width: 12px;"
205
+ tabindex="0"
190
206
  >
191
207
  keyboard_arrow_down_round
192
208
  </i>
@@ -182,6 +182,8 @@ export class Handle extends React.Component<InternalHandleProps, HandleState> {
182
182
  });
183
183
 
184
184
  return (
185
+ // TODO(a11y): fix accessibility
186
+ /* eslint-disable */
185
187
  <>
186
188
  <div
187
189
  className={className}
@@ -195,6 +197,7 @@ export class Handle extends React.Component<InternalHandleProps, HandleState> {
195
197
  tabIndex={1}
196
198
  data-test="DesignSystem-MultiSlider-Handle"
197
199
  />
200
+ {/* eslint-enable */}
198
201
  <div className={TooltipClass} style={style}>
199
202
  {label}
200
203
  </div>
@@ -59,9 +59,6 @@ export function fillValues<T>(values: T[], startIndex: number, endIndex: number,
59
59
  }
60
60
  }
61
61
 
62
- export function isElementOfType<P = {}>(
63
- element: any,
64
- _ComponentType: React.ComponentType<P>
65
- ): element is React.ReactElement<P> {
62
+ export function isElementOfType(element: React.ReactElement) {
66
63
  return element != null && element.type != null;
67
64
  }
@@ -13,8 +13,7 @@ import {
13
13
  fillValues,
14
14
  isElementOfType,
15
15
  } from './SliderUtils';
16
-
17
- type NumberRange = [number, number];
16
+ import { NumberRange } from '@/common.type';
18
17
 
19
18
  export interface MultiSliderProps extends BaseProps {
20
19
  /**
@@ -130,8 +129,8 @@ export class MultiSlider extends React.Component<InternalMultiSliderProps, Multi
130
129
  };
131
130
 
132
131
  getHandleValues = (props: React.PropsWithChildren<InternalMultiSliderProps>) => {
133
- const maybeHandles = React.Children.map(props.children, (child) =>
134
- isElementOfType(child, MultiSlider.Handle) ? child.props : null
132
+ const maybeHandles = React.Children.map(props.children as React.ReactElement, (child) =>
133
+ isElementOfType(child) ? child.props : null
135
134
  );
136
135
 
137
136
  let handles = maybeHandles != null ? maybeHandles : [];
@@ -322,6 +321,8 @@ export class MultiSlider extends React.Component<InternalMultiSliderProps, Multi
322
321
  }
323
322
  };
324
323
 
324
+ // TODO(a11y): fix accessibility
325
+ /* eslint-disable */
325
326
  labels.push(
326
327
  <div
327
328
  onClick={onClickHandler}
@@ -332,6 +333,7 @@ export class MultiSlider extends React.Component<InternalMultiSliderProps, Multi
332
333
  onMouseLeave={this.handleLabelMouseLeave}
333
334
  data-test="DesignSystem-MultiSlider-Label"
334
335
  >
336
+ {/* eslint-enable */}
335
337
  <span className={'Slider-ticks'} />
336
338
  {labelRenderer !== false && (
337
339
  <Text size="small" appearance={active ? 'default' : 'disabled'}>
@@ -414,12 +416,15 @@ export class MultiSlider extends React.Component<InternalMultiSliderProps, Multi
414
416
  <div {...baseProps} className={SliderClass} data-test="DesignSystem-MultiSlider">
415
417
  {label && <Label withInput={true}>{label}</Label>}
416
418
  <div className={WrapperClass}>
419
+ {/* TODO(a11y): fix accessibility */}
420
+ {/* eslint-disable */}
417
421
  <div
418
422
  className="Slider-track"
419
423
  ref={(ref) => (this.trackElement = ref)}
420
424
  onMouseDown={this.maybeHandleTrackClick}
421
425
  data-test="DesignSystem-MultiSlider-Slider-Track"
422
426
  >
427
+ {/* eslint-enable */}
423
428
  {this.renderTracks()}
424
429
  </div>
425
430
  <div className="Slider-axis">{this.renderLabels()}</div>
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import * as ReactDOM from 'react-dom';
3
2
  import { BaseHtmlProps, BaseProps } from '@/utils/types';
4
3
  import classNames from 'classnames';
5
4
 
@@ -35,7 +34,7 @@ export const OutsideClick = React.forwardRef<HTMLDivElement, OutsideClickProps>(
35
34
  return;
36
35
  }
37
36
 
38
- if (!ReactDOM.findDOMNode(element.current)!.contains(event.target as HTMLElement)) {
37
+ if (!element.current!.contains(event.target as HTMLElement)) {
39
38
  onOutsideClick(event);
40
39
  }
41
40
  }, []);
@@ -3,7 +3,7 @@ import GenericText from '../_text';
3
3
  import classNames from 'classnames';
4
4
  import { BaseHtmlProps, BaseProps } from '@/utils/types';
5
5
 
6
- export type Appearance = 'default' | 'white' | 'destructive' | 'subtle' | 'disabled';
6
+ export type ParagraphAppearance = 'default' | 'white' | 'destructive' | 'subtle' | 'disabled';
7
7
 
8
8
  export interface ParagraphProps extends BaseProps, BaseHtmlProps<HTMLParagraphElement> {
9
9
  /**
@@ -14,7 +14,7 @@ export interface ParagraphProps extends BaseProps, BaseHtmlProps<HTMLParagraphEl
14
14
  /**
15
15
  * Color of `Paragraph`
16
16
  */
17
- appearance: Appearance;
17
+ appearance: ParagraphAppearance;
18
18
  }
19
19
 
20
20
  export const Paragraph = (props: ParagraphProps) => {
@@ -1,10 +1,10 @@
1
1
  import * as React from 'react';
2
- import Paragraph, { Appearance } from '../../index';
2
+ import Paragraph, { ParagraphAppearance } from '../../index';
3
3
  import Text from '@/components/atoms/text';
4
4
 
5
5
  // CSF format story
6
6
  export const appearance = () => {
7
- const appearances: Appearance[] = ['default', 'white', 'destructive', 'subtle', 'disabled'];
7
+ const appearances: ParagraphAppearance[] = ['default', 'white', 'destructive', 'subtle', 'disabled'];
8
8
  return (
9
9
  <div className="d-flex">
10
10
  {appearances.map((appear, ind) => {
@@ -1,9 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import { render } from '@testing-library/react';
3
- import Paragraph, { ParagraphProps as Props, Appearance } from '../Paragraph';
3
+ import Paragraph, { ParagraphProps as Props, ParagraphAppearance } from '../Paragraph';
4
4
  import { testHelper, filterUndefined, valueHelper, testMessageHelper } from '@/utils/testHelper';
5
5
 
6
- const appearance: Appearance[] = ['default', 'white', 'destructive', 'subtle', 'disabled'];
6
+ const appearance: ParagraphAppearance[] = ['default', 'white', 'destructive', 'subtle', 'disabled'];
7
7
 
8
8
  const mapper = {
9
9
  appearance: valueHelper(appearance, { required: true, iterate: true }),
@@ -1,23 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import classNames from 'classnames';
3
3
  import { BaseProps, extractBaseProps } from '@/utils/types';
4
-
5
- export type Appearance =
6
- | 'primary'
7
- | 'secondary'
8
- | 'alert'
9
- | 'warning'
10
- | 'success'
11
- | 'accent1'
12
- | 'accent2'
13
- | 'accent3'
14
- | 'accent4';
4
+ import { AccentAppearance } from '@/common.type';
15
5
 
16
6
  export interface PillsProps extends BaseProps {
17
7
  /**
18
8
  * Color of the `Pills`
19
9
  */
20
- appearance: Appearance;
10
+ appearance: AccentAppearance;
21
11
  /**
22
12
  * Makes `Pills` appearance subtle
23
13
  */
@@ -1,7 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { text } from '@storybook/addon-knobs';
3
- import Pills, { Appearance } from '../../Pills';
3
+ import Pills from '../../Pills';
4
4
  import Text from '@/components/atoms/text';
5
+ import { AccentAppearance } from '@/common.type';
5
6
 
6
7
  // CSF format story
7
8
  export const appearance = () => {
@@ -10,7 +11,7 @@ export const appearance = () => {
10
11
 
11
12
  const children = text('children', 'Pills');
12
13
 
13
- const appearances: Appearance[] = [
14
+ const appearances: AccentAppearance[] = [
14
15
  'primary',
15
16
  'secondary',
16
17
  'alert',
@@ -1,7 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { text } from '@storybook/addon-knobs';
3
- import Pills, { Appearance } from '../../Pills';
3
+ import Pills from '../../Pills';
4
4
  import Text from '@/components/atoms/text';
5
+ import { AccentAppearance } from '@/common.type';
5
6
 
6
7
  // CSF format story
7
8
  export const subtle = () => {
@@ -10,7 +11,7 @@ export const subtle = () => {
10
11
 
11
12
  const children = text('children', 'Pills');
12
13
 
13
- const appearances: Appearance[] = [
14
+ const appearances: AccentAppearance[] = [
14
15
  'primary',
15
16
  'secondary',
16
17
  'alert',
@@ -1,9 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { render } from '@testing-library/react';
3
- import Pills, { PillsProps as Props, Appearance } from '../Pills';
3
+ import Pills, { PillsProps as Props } from '../Pills';
4
4
  import { testHelper, filterUndefined, valueHelper, testMessageHelper } from '@/utils/testHelper';
5
+ import { AccentAppearance } from '@/common.type';
5
6
 
6
- const appearances: Appearance[] = [
7
+ const appearances: AccentAppearance[] = [
7
8
  'primary',
8
9
  'alert',
9
10
  'warning',
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import classNames from 'classnames';
3
3
  import { BaseProps, extractBaseProps } from '@/utils/types';
4
4
 
5
- export type Size = 'small' | 'medium' | 'large';
5
+ export type PlaceholderImageSize = 'small' | 'medium' | 'large';
6
6
 
7
7
  export interface PlaceholderImageProps extends BaseProps {
8
8
  /**
@@ -12,7 +12,7 @@ export interface PlaceholderImageProps extends BaseProps {
12
12
  /**
13
13
  * Specifies dimension of `Placeholder`
14
14
  */
15
- size: Size;
15
+ size: PlaceholderImageSize;
16
16
  }
17
17
 
18
18
  export const PlaceholderImage = (props: PlaceholderImageProps) => {
@@ -1,11 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import { boolean } from '@storybook/addon-knobs';
3
- import PlaceholderImage, { Size } from '../../PlaceholderImage';
3
+ import PlaceholderImage, { PlaceholderImageSize } from '../../PlaceholderImage';
4
4
  import Text from '@/components/atoms/text';
5
5
 
6
6
  export const size = () => {
7
7
  const round = boolean('round', false);
8
- const sizes: Size[] = ['small', 'medium', 'large'];
8
+ const sizes: PlaceholderImageSize[] = ['small', 'medium', 'large'];
9
9
  const options = {
10
10
  round,
11
11
  };
@@ -3,7 +3,7 @@ import classNames from 'classnames';
3
3
  import { BaseProps, extractBaseProps } from '@/utils/types';
4
4
 
5
5
  export type Length = 'small' | 'medium' | 'large';
6
- export type Size = 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl' | 'xxxl';
6
+ export type PlaceholderParagraphSize = 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl' | 'xxxl';
7
7
 
8
8
  export interface PlaceholderParagraphProps extends BaseProps {
9
9
  /**
@@ -31,7 +31,7 @@ export interface PlaceholderParagraphProps extends BaseProps {
31
31
  *
32
32
  * xxxl: `Heading` size: xxl
33
33
  */
34
- size?: Size;
34
+ size?: PlaceholderParagraphSize;
35
35
  }
36
36
 
37
37
  export const PlaceholderParagraph = (props: PlaceholderParagraphProps) => {
@@ -1,9 +1,9 @@
1
1
  import * as React from 'react';
2
- import PlaceholderParagraph, { Size } from '../../PlaceholderParagraph';
2
+ import PlaceholderParagraph, { PlaceholderParagraphSize } from '../../PlaceholderParagraph';
3
3
  import Text from '@/components/atoms/text';
4
4
 
5
5
  export const size = () => {
6
- const sizes: Size[] = ['xxs', 'xs', 's', 'm', 'l', 'xl', 'xxl', 'xxxl'];
6
+ const sizes: PlaceholderParagraphSize[] = ['xxs', 'xs', 's', 'm', 'l', 'xl', 'xxl', 'xxxl'];
7
7
 
8
8
  return (
9
9
  <div>
@@ -142,7 +142,7 @@ export class PopperWrapper extends React.Component<PopperWrapperProps, PopperWra
142
142
  if (prevProps.open !== this.props.open) {
143
143
  this._throttleWait = false;
144
144
  if (this.props.open) {
145
- const triggerElement = this.findDOMNode(this.triggerRef);
145
+ const triggerElement = this.triggerRef.current;
146
146
  const zIndex = this.getZIndexForLayer(triggerElement);
147
147
 
148
148
  this.setState({
@@ -216,12 +216,8 @@ export class PopperWrapper extends React.Component<PopperWrapperProps, PopperWra
216
216
  onToggle(newValue === undefined ? !open : newValue, type);
217
217
  };
218
218
 
219
- findDOMNode = (ref: React.RefObject<HTMLElement>) => {
220
- return ReactDOM.findDOMNode(ref.current!) as Element | null;
221
- };
222
-
223
219
  doesEventContainsElement = (event: Event, ref: React.RefObject<any>) => {
224
- const el = this.findDOMNode(ref);
220
+ const el = ref.current;
225
221
  return el && el.contains(event.target as HTMLElement);
226
222
  };
227
223
 
@@ -2,13 +2,13 @@ import * as React from 'react';
2
2
  import classNames from 'classnames';
3
3
  import { BaseProps, extractBaseProps } from '@/utils/types';
4
4
 
5
- export type Size = 'small' | 'regular';
5
+ export type ProgressRingSize = 'small' | 'regular';
6
6
 
7
7
  export interface ProgressRingProps extends BaseProps {
8
8
  /**
9
9
  * Size of `Progress Ring`
10
10
  */
11
- size: Size;
11
+ size: ProgressRingSize;
12
12
  /**
13
13
  * Specifies how much of the task that has been completed. Value should lie between 0 to max.
14
14
  */
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import ProgressRing, { Size } from '../../ProgressRing';
2
+ import ProgressRing, { ProgressRingSize as Size } from '../../ProgressRing';
3
3
  import Text from '@/components/atoms/text';
4
4
 
5
5
  // CSF format story
@@ -3,17 +3,16 @@ import classNames from 'classnames';
3
3
  import Text from '@/components/atoms/text';
4
4
  import { BaseProps, OmitNativeProps } from '@/utils/types';
5
5
  import uidGenerator from '@/utils/uidGenerator';
6
+ import { ChangeEvent } from '@/common.type';
6
7
 
7
- export type Size = 'regular' | 'tiny';
8
-
9
- type MouseEvent = React.ChangeEvent<HTMLInputElement>;
8
+ export type RadioSize = 'regular' | 'tiny';
10
9
 
11
10
  export interface RadioProps extends BaseProps, OmitNativeProps<HTMLInputElement, 'onChange'> {
12
11
  /**
13
12
  * Size of `Radio`
14
13
  * @default "regular"
15
14
  */
16
- size?: Size;
15
+ size?: RadioSize;
17
16
  /**
18
17
  * Disables the `Radio`, making it unable to be pressed
19
18
  */
@@ -45,7 +44,7 @@ export interface RadioProps extends BaseProps, OmitNativeProps<HTMLInputElement,
45
44
  /**
46
45
  * Callback function called when user the selects an option
47
46
  */
48
- onChange?: (event: MouseEvent) => void;
47
+ onChange?: (event: ChangeEvent) => void;
49
48
  }
50
49
 
51
50
  export const Radio = React.forwardRef<HTMLInputElement, RadioProps>((props, forwardedRef) => {
@@ -1,7 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import MultiSlider, { MultiSliderProps } from '@/components/atoms/multiSlider';
3
-
4
- export type NumberRange = [number, number];
3
+ import { NumberRange } from '@/common.type';
5
4
 
6
5
  enum RangeIndex {
7
6
  START = 0,
@@ -2,8 +2,7 @@ import * as React from 'react';
2
2
  import { text, boolean, number } from '@storybook/addon-knobs';
3
3
  import { action } from '@storybook/addon-actions';
4
4
  import RangeSlider from '../RangeSlider';
5
-
6
- type NumberRange = [number, number];
5
+ import { NumberRange } from '@/common.type';
7
6
 
8
7
  // CSF format story
9
8
  export const all = () => {
@@ -1,7 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { RangeSlider } from '@/index';
3
-
4
- type NumberRange = [number, number];
3
+ import { NumberRange } from '@/common.type';
5
4
 
6
5
  // CSF format story
7
6
  export const controlledSlider = () => {