@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
@@ -0,0 +1,22 @@
1
+ import { OverlayFooterProps } from '@/components/molecules/overlayFooter';
2
+
3
+ export type AccentAppearance =
4
+ | 'primary'
5
+ | 'secondary'
6
+ | 'alert'
7
+ | 'warning'
8
+ | 'success'
9
+ | 'accent1'
10
+ | 'accent2'
11
+ | 'accent3'
12
+ | 'accent4';
13
+
14
+ export type HeadingAppearance = 'default' | 'subtle' | 'disabled' | 'white';
15
+ export type MessageAppearance = 'default' | 'alert' | 'info' | 'success' | 'warning';
16
+ export type FileStatus = 'uploading' | 'completed' | 'error';
17
+ export type FooterOptions = {
18
+ actions: OverlayFooterProps['actions'];
19
+ };
20
+ export type AutoComplete = 'on' | 'off';
21
+ export type NumberRange = [number, number];
22
+ export type ChangeEvent = React.ChangeEvent<HTMLInputElement>;
@@ -44,7 +44,7 @@ exports[`Chip component
44
44
  events_round
45
45
  </i>
46
46
  <span
47
- class="Text Text--default Text--regular"
47
+ class="Text Text--link Text--regular"
48
48
  data-test="DesignSystem-GenericChip--Text"
49
49
  >
50
50
  ChipLabel
@@ -91,14 +91,14 @@ exports[`Chip component
91
91
  data-test="DesignSystem-GenericChip--GenericChipWrapper"
92
92
  >
93
93
  <i
94
- class="material-icons material-icons-round Icon Icon--disabled Chip-icon Chip-icon--left"
94
+ class="material-icons material-icons-round Icon Icon--info Chip-icon Chip-icon--left"
95
95
  data-test="DesignSystem-GenericChip--Icon"
96
96
  style="font-size: 16px; width: 16px;"
97
97
  >
98
98
  events_round
99
99
  </i>
100
100
  <span
101
- class="Text Text--disabled Text--regular"
101
+ class="Text Text--link Text--regular"
102
102
  data-test="DesignSystem-GenericChip--Text"
103
103
  >
104
104
  ChipLabel
@@ -118,7 +118,7 @@ exports[`Chip component
118
118
  data-test="DesignSystem-GenericChip--GenericChipWrapper"
119
119
  >
120
120
  <i
121
- class="material-icons material-icons-round Icon Icon--default Chip-icon Chip-icon--left"
121
+ class="material-icons material-icons-round Icon Chip-icon Chip-icon--left"
122
122
  data-test="DesignSystem-GenericChip--Icon"
123
123
  style="font-size: 16px; width: 16px;"
124
124
  >
@@ -131,9 +131,11 @@ exports[`Chip component
131
131
  ChipLabel
132
132
  </span>
133
133
  <i
134
- class="material-icons material-icons-round Icon Icon--subtle Chip-icon Chip-icon--right cursor-pointer"
134
+ class="material-icons material-icons-round Icon Chip-icon Chip-icon--right cursor-pointer"
135
135
  data-test="DesignSystem-GenericChip--clearButton"
136
+ role="button"
136
137
  style="font-size: 16px; width: 16px;"
138
+ tabindex="0"
137
139
  >
138
140
  clear_round
139
141
  </i>
@@ -159,7 +161,7 @@ exports[`Chip component
159
161
  events_round
160
162
  </i>
161
163
  <span
162
- class="Text Text--default Text--regular"
164
+ class="Text Text--link Text--regular"
163
165
  data-test="DesignSystem-GenericChip--Text"
164
166
  >
165
167
  ChipLabel
@@ -167,7 +169,9 @@ exports[`Chip component
167
169
  <i
168
170
  class="material-icons material-icons-round Icon Icon--info Chip-icon Chip-icon--right cursor-pointer"
169
171
  data-test="DesignSystem-GenericChip--clearButton"
172
+ role="button"
170
173
  style="font-size: 16px; width: 16px;"
174
+ tabindex="0"
171
175
  >
172
176
  clear_round
173
177
  </i>
@@ -201,7 +205,9 @@ exports[`Chip component
201
205
  <i
202
206
  class="material-icons material-icons-round Icon Icon--disabled Chip-icon Chip-icon--right"
203
207
  data-test="DesignSystem-GenericChip--clearButton"
208
+ role="button"
204
209
  style="font-size: 16px; width: 16px;"
210
+ tabindex="0"
205
211
  >
206
212
  clear_round
207
213
  </i>
@@ -220,22 +226,24 @@ exports[`Chip component
220
226
  data-test="DesignSystem-GenericChip--GenericChipWrapper"
221
227
  >
222
228
  <i
223
- class="material-icons material-icons-round Icon Icon--disabled Chip-icon Chip-icon--left"
229
+ class="material-icons material-icons-round Icon Icon--info Chip-icon Chip-icon--left"
224
230
  data-test="DesignSystem-GenericChip--Icon"
225
231
  style="font-size: 16px; width: 16px;"
226
232
  >
227
233
  events_round
228
234
  </i>
229
235
  <span
230
- class="Text Text--disabled Text--regular"
236
+ class="Text Text--link Text--regular"
231
237
  data-test="DesignSystem-GenericChip--Text"
232
238
  >
233
239
  ChipLabel
234
240
  </span>
235
241
  <i
236
- class="material-icons material-icons-round Icon Icon--disabled Chip-icon Chip-icon--right"
242
+ class="material-icons material-icons-round Icon Icon--info Chip-icon Chip-icon--right"
237
243
  data-test="DesignSystem-GenericChip--clearButton"
244
+ role="button"
238
245
  style="font-size: 16px; width: 16px;"
246
+ tabindex="0"
239
247
  >
240
248
  clear_round
241
249
  </i>
@@ -4,6 +4,7 @@ import Icon from '@/components/atoms/icon';
4
4
  import Text from '@/components/atoms/text';
5
5
  import { Name } from '../chip/Chip';
6
6
  import { BaseProps, extractBaseProps } from '@/utils/types';
7
+ import { IconProps, TextProps } from '@/index.type';
7
8
 
8
9
  export interface GenericChipProps extends BaseProps {
9
10
  label: string;
@@ -37,7 +38,22 @@ export const GenericChip = (props: GenericChipProps) => {
37
38
  if (onClick) onClick();
38
39
  };
39
40
 
41
+ const iconAppearance = classNames({
42
+ ['disabled']: disabled && !selected,
43
+ ['info']: selected,
44
+ ['subtle']: !disabled && !selected && !clearButton && !icon,
45
+ ['default']: !disabled && !selected && !clearButton && icon,
46
+ }) as IconProps['appearance'];
47
+
48
+ const textAppearance = classNames({
49
+ ['disabled']: disabled && !selected,
50
+ ['link']: selected,
51
+ ['default']: !disabled && !selected,
52
+ }) as TextProps['appearance'];
53
+
40
54
  return (
55
+ // TODO(a11y)
56
+ // eslint-disable-next-line
41
57
  <div
42
58
  data-test="DesignSystem-GenericChip--GenericChipWrapper"
43
59
  {...baseProps}
@@ -48,18 +64,18 @@ export const GenericChip = (props: GenericChipProps) => {
48
64
  <Icon
49
65
  data-test="DesignSystem-GenericChip--Icon"
50
66
  name={icon}
51
- appearance={disabled ? 'disabled' : selected ? 'info' : 'default'}
67
+ appearance={iconAppearance}
52
68
  className={iconClass('left')}
53
69
  />
54
70
  )}
55
- <Text data-test="DesignSystem-GenericChip--Text" appearance={disabled ? 'disabled' : 'default'}>
71
+ <Text data-test="DesignSystem-GenericChip--Text" appearance={textAppearance}>
56
72
  {label}
57
73
  </Text>
58
74
  {clearButton && (
59
75
  <Icon
60
76
  data-test="DesignSystem-GenericChip--clearButton"
61
77
  name="clear"
62
- appearance={disabled ? 'disabled' : selected ? 'info' : 'subtle'}
78
+ appearance={iconAppearance}
63
79
  className={iconClass('right')}
64
80
  onClick={onCloseHandler}
65
81
  />
@@ -3,25 +3,15 @@ import classNames from 'classnames';
3
3
  import { Text, Tooltip, Icon } from '@/index';
4
4
  import { BaseProps, extractBaseProps } from '@/utils/types';
5
5
  import { TooltipProps } from '@/index.type';
6
+ import { AccentAppearance } from '@/common.type';
6
7
 
7
- export type Appearance =
8
- | 'primary'
9
- | 'secondary'
10
- | 'alert'
11
- | 'warning'
12
- | 'success'
13
- | 'accent1'
14
- | 'accent2'
15
- | 'accent3'
16
- | 'accent4';
17
-
18
- export type Size = 'regular' | 'tiny';
8
+ export type AvatarSize = 'regular' | 'tiny';
19
9
 
20
10
  export interface AvatarProps extends BaseProps {
21
11
  /**
22
12
  * Color of the `Avatar`
23
13
  */
24
- appearance?: Appearance;
14
+ appearance?: AccentAppearance;
25
15
  /**
26
16
  * **Only first 2 characters are rendered (SOON TO BE DEPRECATED)**
27
17
  */
@@ -45,7 +35,7 @@ export interface AvatarProps extends BaseProps {
45
35
  /**
46
36
  * Determines size of `Avatar`
47
37
  */
48
- size: Size;
38
+ size: AvatarSize;
49
39
  }
50
40
 
51
41
  const initialsLength = 2;
@@ -1,12 +1,13 @@
1
1
  import * as React from 'react';
2
- import Avatar, { Appearance } from '../../Avatar';
2
+ import Avatar from '../../Avatar';
3
3
  import Text from '@/components/atoms/text';
4
+ import { AccentAppearance } from '@/common.type';
4
5
 
5
6
  // CSF format story
6
7
  export const appearance = () => {
7
8
  const weight = 'strong';
8
9
 
9
- const appearances: Appearance[] = [
10
+ const appearances: AccentAppearance[] = [
10
11
  'primary',
11
12
  'secondary',
12
13
  'alert',
@@ -1,9 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { render } from '@testing-library/react';
3
- import Avatar, { AvatarProps as Props, Appearance, Size } from '../Avatar';
3
+ import Avatar, { AvatarProps as Props, AvatarSize } from '../Avatar';
4
+ import { AccentAppearance } from '@/common.type';
4
5
  import { testHelper, filterUndefined, valueHelper, testMessageHelper } from '@/utils/testHelper';
5
6
 
6
- const appearances: Appearance[] = [
7
+ const appearances: AccentAppearance[] = [
7
8
  'primary',
8
9
  'alert',
9
10
  'warning',
@@ -14,7 +15,7 @@ const appearances: Appearance[] = [
14
15
  'accent4',
15
16
  ];
16
17
 
17
- const sizes: Size[] = ['regular', 'tiny'];
18
+ const sizes: AvatarSize[] = ['regular', 'tiny'];
18
19
 
19
20
  describe('Avatar component', () => {
20
21
  const mapper = {
@@ -52,7 +53,11 @@ describe('Avatar component', () => {
52
53
 
53
54
  describe('Avatar component', () => {
54
55
  it('renders initials when firstName,lastName,children are given', () => {
55
- const { getByTestId } = render(<Avatar firstName="Design" lastName="System" children="Hey" />);
56
+ const { getByTestId } = render(
57
+ <Avatar firstName="Design" lastName="System">
58
+ Hey
59
+ </Avatar>
60
+ );
56
61
  expect(getByTestId('DesignSystem-Avatar').textContent).toMatch('He');
57
62
  });
58
63
 
@@ -67,7 +72,7 @@ describe('Avatar component', () => {
67
72
  });
68
73
 
69
74
  it('renders initials when only children is given', () => {
70
- const { getByTestId } = render(<Avatar children="Design System" />);
75
+ const { getByTestId } = render(<Avatar>Design System</Avatar>);
71
76
  expect(getByTestId('DesignSystem-Avatar').textContent).toMatch('De');
72
77
  });
73
78
 
@@ -84,7 +89,7 @@ describe('Avatar component', () => {
84
89
 
85
90
  describe('Avatar component tagName', () => {
86
91
  it('renders tagName', () => {
87
- const { getByTestId } = render(<Avatar children="Design System" />);
92
+ const { getByTestId } = render(<Avatar>Design System</Avatar>);
88
93
  expect(getByTestId('DesignSystem-Avatar').tagName).toMatch('SPAN');
89
94
  });
90
95
  });
@@ -99,7 +104,7 @@ describe('Avatar Component with overwrite class', () => {
99
104
  describe('Avatar component with prop:appearance', () => {
100
105
  appearances.forEach((color) => {
101
106
  it(`should have the Avatar--${color} class when appearance=${color} `, () => {
102
- const { getByTestId } = render(<Avatar children="Design" appearance={color} />);
107
+ const { getByTestId } = render(<Avatar appearance={color}>Design</Avatar>);
103
108
  expect(getByTestId('DesignSystem-Avatar')).toHaveClass(`Avatar--${color}`);
104
109
  });
105
110
  });
@@ -107,12 +112,12 @@ describe('Avatar component with prop:appearance', () => {
107
112
 
108
113
  describe('Avatar component with prop:size', () => {
109
114
  it('should have the Avatar--regular class when size is regular', () => {
110
- const { getByTestId } = render(<Avatar children="Design" />);
115
+ const { getByTestId } = render(<Avatar>Design</Avatar>);
111
116
  expect(getByTestId('DesignSystem-Avatar')).toHaveClass('Avatar--regular');
112
117
  });
113
118
 
114
119
  it('should have the Avatar--tiny class when size is tiny', () => {
115
- const { getByTestId } = render(<Avatar children="Design" size={'tiny'} />);
120
+ const { getByTestId } = render(<Avatar size={'tiny'}>Design</Avatar>);
116
121
  expect(getByTestId('DesignSystem-Avatar')).toHaveClass('Avatar--tiny');
117
122
  });
118
123
  });
@@ -4,15 +4,13 @@ import { BaseProps, extractBaseProps } from '@/utils/types';
4
4
  import { Avatar, Popover, Text } from '@/index';
5
5
  import { AvatarProps, PopoverProps } from '@/index.type';
6
6
 
7
- export type Size = 'regular' | 'tiny';
8
-
9
7
  interface AvatarData extends Record<string, any> {
10
8
  firstName?: string;
11
9
  lastName?: string;
12
10
  appearance?: AvatarProps['appearance'];
13
11
  }
14
12
 
15
- interface PopperProps {
13
+ interface AvatarPopperProps {
16
14
  popperRenderer?: (names: AvatarData[]) => JSX.Element;
17
15
  appendToBody?: PopoverProps['appendToBody'];
18
16
  dark?: PopoverProps['dark'];
@@ -48,7 +46,7 @@ export interface AvatarGroupProps extends BaseProps {
48
46
  * **Popover for +x avatar**
49
47
  *
50
48
  * <pre className="DocPage-codeBlock">
51
- * PopperProps: {
49
+ * AvatarPopperProps: {
52
50
  * popperRenderer?: (names: AvatarData[]) => JSX.Element;
53
51
  * appendToBody?: boolean;
54
52
  * dark?: boolean;
@@ -70,7 +68,7 @@ export interface AvatarGroupProps extends BaseProps {
70
68
  * </pre>
71
69
  *
72
70
  */
73
- popoverOptions: PopperProps;
71
+ popoverOptions: AvatarPopperProps;
74
72
  /**
75
73
  * Position to place the tooltip on `Avatars` shown before +x
76
74
  */
@@ -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 BadgeProps extends BaseProps {
17
7
  /*
18
8
  * Color of the `Badge`
19
9
  */
20
- appearance: Appearance;
10
+ appearance: AccentAppearance;
21
11
  /**
22
12
  * Makes `Badge` appearance subtle
23
13
  */
@@ -1,9 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { render } from '@testing-library/react';
3
- import Badge, { BadgeProps as Props, Appearance } from '../Badge';
3
+ import Badge, { BadgeProps as Props } from '../Badge';
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',
@@ -35,14 +36,20 @@ describe('Badge component', () => {
35
36
 
36
37
  describe('Badge component', () => {
37
38
  it('renders children', () => {
38
- const { getByTestId } = render(<Badge children="Badge" subtle={true} appearance="secondary" />);
39
+ const { getByTestId } = render(
40
+ <Badge subtle={true} appearance="secondary">
41
+ Badge
42
+ </Badge>
43
+ );
39
44
  expect(getByTestId('DesignSystem-Badge').textContent).toMatch('Badge');
40
45
  });
41
46
 
42
47
  describe('Badge Component with overwrite class', () => {
43
48
  it('overwrite badge class', () => {
44
49
  const { getByTestId } = render(
45
- <Badge className="BadgeClass" children="Design" subtle={true} appearance="secondary" />
50
+ <Badge className="BadgeClass" subtle={true} appearance="secondary">
51
+ Design
52
+ </Badge>
46
53
  );
47
54
  expect(getByTestId('DesignSystem-Badge')).toHaveClass('Badge BadgeClass');
48
55
  });
@@ -50,7 +57,11 @@ describe('Badge component', () => {
50
57
 
51
58
  describe('Badge component tagName', () => {
52
59
  it('should have span element', () => {
53
- const { getByTestId } = render(<Badge children="Design" subtle={true} appearance="secondary" />);
60
+ const { getByTestId } = render(
61
+ <Badge subtle={true} appearance="secondary">
62
+ Design
63
+ </Badge>
64
+ );
54
65
  expect(getByTestId('DesignSystem-Badge').tagName).toMatch('SPAN');
55
66
  });
56
67
  });
@@ -58,7 +69,7 @@ describe('Badge component', () => {
58
69
  describe('Badge component with prop:appearance', () => {
59
70
  appearances.forEach((appearance) => {
60
71
  it(`should have the Badge--${appearance} class when appearance=${appearance} `, () => {
61
- const { getByTestId } = render(<Badge children="Design" appearance={appearance} />);
72
+ const { getByTestId } = render(<Badge appearance={appearance}>Design</Badge>);
62
73
  expect(getByTestId('DesignSystem-Badge')).toHaveClass(`Badge--${appearance}`);
63
74
  });
64
75
  });
@@ -67,7 +78,11 @@ describe('Badge component', () => {
67
78
  describe('Badge component with prop:subtle', () => {
68
79
  appearances.forEach((appearance) => {
69
80
  it(`should have the Badge--subtle-${appearance} class when appearance=${appearance} `, () => {
70
- const { getByTestId } = render(<Badge children="Design" appearance={appearance} subtle={true} />);
81
+ const { getByTestId } = render(
82
+ <Badge appearance={appearance} subtle={true}>
83
+ Design
84
+ </Badge>
85
+ );
71
86
  expect(getByTestId('DesignSystem-Badge')).toHaveClass(`Badge--subtle-${appearance}`);
72
87
  });
73
88
  });
@@ -1,7 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { text } from '@storybook/addon-knobs';
3
- import Badge, { Appearance } from '../../Badge';
3
+ import Badge from '../../Badge';
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', 'Badge');
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 Badge, { Appearance } from '../../Badge';
3
+ import Badge from '../../Badge';
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', 'Badge');
12
13
 
13
- const appearances: Appearance[] = [
14
+ const appearances: AccentAppearance[] = [
14
15
  'primary',
15
16
  'secondary',
16
17
  'alert',
@@ -4,9 +4,9 @@ import classNames from 'classnames';
4
4
  import { BaseProps, BaseHtmlProps } from '@/utils/types';
5
5
 
6
6
  export type ButtonType = 'button' | 'submit' | 'reset';
7
- export type Appearance = 'basic' | 'primary' | 'success' | 'alert' | 'transparent';
8
- export type Size = 'tiny' | 'regular' | 'large';
9
- export type Alignment = 'left' | 'right';
7
+ export type ButtonAppearance = 'basic' | 'primary' | 'success' | 'alert' | 'transparent';
8
+ export type ButtonSize = 'tiny' | 'regular' | 'large';
9
+ export type ButtonAlignment = 'left' | 'right';
10
10
 
11
11
  export interface ButtonProps extends BaseProps, BaseHtmlProps<HTMLButtonElement> {
12
12
  /**
@@ -17,12 +17,15 @@ export interface ButtonProps extends BaseProps, BaseHtmlProps<HTMLButtonElement>
17
17
  * The size of `Button`
18
18
  * @default "regular"
19
19
  */
20
- size?: Size;
20
+ size?: ButtonSize;
21
21
  /**
22
22
  * Color of the `Button`
23
+ *
24
+ * **'success' has been deprecated and all success button types will now be changed to primary button automatically**
25
+ *
23
26
  * @default "basic"
24
27
  */
25
- appearance?: Appearance;
28
+ appearance?: ButtonAppearance;
26
29
  /**
27
30
  * Disables the `Button`, making it unable to be pressed
28
31
  */
@@ -54,7 +57,7 @@ export interface ButtonProps extends BaseProps, BaseHtmlProps<HTMLButtonElement>
54
57
  * Align icon left or right
55
58
  * @default "left"
56
59
  */
57
- iconAlign?: Alignment;
60
+ iconAlign?: ButtonAlignment;
58
61
  /**
59
62
  * Determines if size of icon is large
60
63
  *
@@ -88,7 +91,7 @@ export interface ButtonProps extends BaseProps, BaseHtmlProps<HTMLButtonElement>
88
91
  onMouseLeave?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
89
92
  }
90
93
 
91
- const sizeMapping: Record<Size, number> = {
94
+ const sizeMapping: Record<ButtonSize, number> = {
92
95
  tiny: 12,
93
96
  regular: 16,
94
97
  large: 20,
@@ -1,7 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import Button from '../Button';
3
3
 
4
- export const AlertButton = () => <Button appearance="alert">Delete</Button>;
4
+ export const AlertButton = () => (
5
+ <Button appearance="alert" aria-label="Delete">
6
+ Delete
7
+ </Button>
8
+ );
5
9
 
6
10
  export default {
7
11
  title: 'Components/Button/Alert Button',
@@ -11,6 +15,9 @@ export default {
11
15
  docPage: {
12
16
  title: 'Button',
13
17
  description: 'Delete button',
18
+ a11yProps: `
19
+ **aria-label:** Add \`aria-label='Delete'\` to describe the action of button
20
+ `,
14
21
  },
15
22
  },
16
23
  },
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import Button from '../Button';
3
3
 
4
4
  export const BasicButton = () => (
5
- <Button appearance="basic" size="regular">
5
+ <Button appearance="basic" size="regular" aria-label="Cancel">
6
6
  Cancel
7
7
  </Button>
8
8
  );
@@ -15,6 +15,9 @@ export default {
15
15
  docPage: {
16
16
  title: 'Button',
17
17
  description: 'Basic Button',
18
+ a11yProps: `
19
+ **aria-label:** Add \`aria-label='Cancel'\` to describe the action of button
20
+ `,
18
21
  },
19
22
  },
20
23
  },
@@ -3,9 +3,9 @@ import Button from '@/components/atoms/button';
3
3
 
4
4
  export const iconButtonGroup = () => (
5
5
  <div className="d-inline-flex">
6
- <Button size="tiny" icon="content_copy " className="mr-2" tooltip="Copy" />
7
- <Button size="tiny" icon="content_paste" className="mr-2" tooltip="Paste" />
8
- <Button size="tiny" icon="delete" tooltip="Delete" />
6
+ <Button size="tiny" icon="content_copy" aria-label="Copy" className="mr-4" tooltip="Copy" />
7
+ <Button size="tiny" icon="content_paste" aria-label="Paste" className="mr-4" tooltip="Paste" />
8
+ <Button size="tiny" icon="delete" aria-label="Delete" tooltip="Delete" />
9
9
  </div>
10
10
  );
11
11
 
@@ -17,6 +17,15 @@ export default {
17
17
  docPage: {
18
18
  title: 'Button',
19
19
  description: 'A pattern using tiny icon buttons in a group.',
20
+ a11yProps: `
21
+ **aria-label:**
22
+ <br/>
23
+ - Add \`aria-label='Copy'\` on button with *copy* icon to describe the action of button.
24
+ <br/>
25
+ - Add \`aria-label='Paste'\` on button with *paste* icon to describe the action of button.
26
+ <br/>
27
+ - Add \`aria-label='Delete'\` on button with *delete* icon to describe the action of button.
28
+ `,
20
29
  },
21
30
  },
22
31
  },
@@ -1,7 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import Button from '../Button';
3
3
 
4
- export const iconButton = () => <Button appearance="basic" icon="keyboard_arrow_right" tooltip="Next in rank" />;
4
+ export const iconButton = () => (
5
+ <Button appearance="basic" icon="keyboard_arrow_right" aria-label="Next in rank" tooltip="Next in rank" />
6
+ );
5
7
 
6
8
  export default {
7
9
  title: 'Components/Button/Icon Button',
@@ -11,6 +13,9 @@ export default {
11
13
  docPage: {
12
14
  title: 'Button',
13
15
  description: 'Secondary button with icon.',
16
+ a11yProps: `
17
+ **aria-label:** Add \`aria-label='Next in rank'\` to describe the action of button.
18
+ `,
14
19
  },
15
20
  },
16
21
  },
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import Button from '../Button';
3
3
 
4
4
  export const iconLeftButton = () => (
5
- <Button icon="get_app" iconAlign="left">
5
+ <Button icon="get_app" iconAlign="left" aria-label="Download">
6
6
  Download
7
7
  </Button>
8
8
  );
@@ -15,6 +15,9 @@ export default {
15
15
  docPage: {
16
16
  title: 'Button',
17
17
  description: 'Secondary button with left aligned icon.',
18
+ a11yProps: `
19
+ **aria-label:** Add \`aria-label='Download'\` on button to indicate its purpose.
20
+ `,
18
21
  },
19
22
  },
20
23
  },
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import Button from '../Button';
3
3
 
4
4
  export const iconRightButton = () => (
5
- <Button icon="arrow_forward" iconAlign="right">
5
+ <Button icon="arrow_forward" iconAlign="right" aria-label="Next in rank">
6
6
  Next in rank
7
7
  </Button>
8
8
  );
@@ -15,6 +15,9 @@ export default {
15
15
  docPage: {
16
16
  title: 'Button',
17
17
  description: 'Secondary button with right aligned icon.',
18
+ a11yProps: `
19
+ **aria-label:** Add \`aria-label='Next in rank'\` to describe the action of button.
20
+ `,
18
21
  },
19
22
  },
20
23
  },