@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,35 @@
1
+ import * as React from 'react';
2
+ import { Divider, Row, Column, Card, CardBody, Radio, Heading } from '@/index';
3
+
4
+ export const HeaderDividerInCard = () => {
5
+ return (
6
+ <Row>
7
+ <Column size="6">
8
+ <Card className="pb-6" shadow="none">
9
+ <CardBody className="p-0">
10
+ <Row className="p-4">
11
+ <Heading size="s">Section 1</Heading>
12
+ </Row>
13
+
14
+ <Divider appearance="header" />
15
+
16
+ <div className="px-4 pt-4">
17
+ <Heading size="s">1. Little interest or pleasure in doing things.</Heading>
18
+ <br />
19
+ <Column className="px-4">
20
+ <Radio defaultChecked={true} label="Not at all" name="section" size="regular" value="Not at all" />
21
+ <Radio label="Several Days" name="section" size="regular" value="Several Days" />
22
+ <Radio label="More than half the days" name="section" size="regular" value="More than half days" />
23
+ </Column>
24
+ </div>
25
+ </CardBody>
26
+ </Card>
27
+ </Column>
28
+ </Row>
29
+ );
30
+ };
31
+
32
+ export default {
33
+ title: 'Components/Divider/Header Divider In Card',
34
+ component: Divider,
35
+ };
@@ -0,0 +1,49 @@
1
+ import * as React from 'react';
2
+ import { Divider, Row, Column, Card, CardBody, Heading, Input, Text } from '@/index';
3
+
4
+ export const IndentedDivider = () => {
5
+ return (
6
+ <Row>
7
+ <Column size="6">
8
+ <Heading size="m">Select assessment</Heading>
9
+ <Card>
10
+ <CardBody className="p-0">
11
+ <Row className="p-6">
12
+ <Column size={8}>
13
+ <Input className="w-25" icon="search" name="input" placeholder="Search" />
14
+ </Column>
15
+ </Row>
16
+
17
+ <Divider appearance="header" />
18
+
19
+ <div className="pl-6">
20
+ <div className="py-6">
21
+ <Text>Functional Assessment - Initial</Text>
22
+ </div>
23
+ <Divider />
24
+
25
+ <div className="py-6">
26
+ <Text>Functional Assessment - Discharge</Text>
27
+ </div>
28
+ <Divider />
29
+
30
+ <div className="py-6">
31
+ <Text>Social Influence of Health</Text>
32
+ </div>
33
+ <Divider />
34
+
35
+ <div className="py-6">
36
+ <Text>Social Determinants of Health</Text>
37
+ </div>
38
+ </div>
39
+ </CardBody>
40
+ </Card>
41
+ </Column>
42
+ </Row>
43
+ );
44
+ };
45
+
46
+ export default {
47
+ title: 'Components/Divider/Indented Divider',
48
+ component: Divider,
49
+ };
@@ -0,0 +1,51 @@
1
+ import * as React from 'react';
2
+ import { Divider, Row, Column, Card, CardBody, Text, Heading, Radio } from '@/index';
3
+
4
+ export const VerticalDivider = () => {
5
+ return (
6
+ <Row>
7
+ <Column size="8">
8
+ <Card shadow="none">
9
+ <CardBody className="p-0">
10
+ <Row>
11
+ <Column className="p-6">
12
+ <Text appearance="disabled">MSSP - Track 3</Text>
13
+ <br />
14
+ <Text small={true}>Medicare</Text>
15
+ <br />
16
+ <div className="pt-6">
17
+ <Text appearance="disabled" small={true}>
18
+ Subscriber
19
+ </Text>
20
+ <br />
21
+ <Text appearance="disabled">LAWSON, JOY (Self)</Text>
22
+ <br />
23
+ <Text weight="medium">ZGP123456789</Text>
24
+ </div>
25
+ </Column>
26
+
27
+ <Divider vertical={true} />
28
+
29
+ <Column className="p-6">
30
+ <div>
31
+ <Heading size="s">1. Little interest or pleasure in doing things.</Heading>
32
+ <br />
33
+ <Column className="px-4">
34
+ <Radio defaultChecked={true} label="Not at all" name="section" size="regular" value="Not at all" />
35
+ <Radio label="Several Days" name="section" size="regular" value="Several Days" />
36
+ <Radio label="More than half the days" name="section" size="regular" value="More than half days" />
37
+ </Column>
38
+ </div>
39
+ </Column>
40
+ </Row>
41
+ </CardBody>
42
+ </Card>
43
+ </Column>
44
+ </Row>
45
+ );
46
+ };
47
+
48
+ export default {
49
+ title: 'Components/Divider/Vertical Divider',
50
+ component: Divider,
51
+ };
@@ -0,0 +1,91 @@
1
+ import * as React from 'react';
2
+ import { Divider, Row, Column, Card, CardBody, Text, Heading } from '@/index';
3
+
4
+ export const All = () => {
5
+ return (
6
+ <Row>
7
+ <Column size="10">
8
+ <Card shadow="none">
9
+ <CardBody className="p-0">
10
+ <Row className="py-4 px-6">
11
+ <Heading>Assessment Report</Heading>
12
+ </Row>
13
+
14
+ <Divider appearance="header" />
15
+ <Row>
16
+ <Column>
17
+ <div className="p-6">
18
+ <Heading size="s">Select Assessment</Heading>
19
+ </div>
20
+ <Divider />
21
+ <div className="pl-6">
22
+ <div className="py-4">
23
+ <Text>Functional Assessment - Initial</Text>
24
+ </div>
25
+ <Divider />
26
+
27
+ <div className="py-4">
28
+ <Text>Social Influence of Health</Text>
29
+ </div>
30
+ <Divider />
31
+
32
+ <div className="py-4">
33
+ <Text>Social Determinants of Health</Text>
34
+ </div>
35
+ <Divider />
36
+
37
+ <div className="py-4">
38
+ <Text>Functional Assessment - Discharge</Text>
39
+ </div>
40
+ </div>
41
+ </Column>
42
+ <Divider vertical={true} />
43
+
44
+ <Column>
45
+ <div className="p-6">
46
+ <Text appearance="disabled">MSSP - Track 3</Text>
47
+ <br />
48
+ <Text small={true}>Medicare</Text>
49
+ <br />
50
+ <div className="pt-6">
51
+ <Text appearance="disabled" small={true}>
52
+ Subscriber
53
+ </Text>
54
+ <br />
55
+ <Text appearance="disabled">LAWSON, JOY (Self)</Text>
56
+ <br />
57
+ <Text weight="medium">ZGP123456789</Text>
58
+ </div>
59
+ </div>
60
+ <Divider />
61
+ <Row className="p-6">
62
+ <Column>
63
+ <Text appearance="disabled" small={true}>
64
+ Last attr:
65
+ </Text>
66
+ <Text className="ml-3" small={true}>
67
+ 04/19
68
+ </Text>
69
+ </Column>
70
+ <Column>
71
+ <Text appearance="disabled" small={true}>
72
+ Plan ID:
73
+ </Text>
74
+ <Text className="ml-3" small={true}>
75
+ 040
76
+ </Text>
77
+ </Column>
78
+ </Row>
79
+ </Column>
80
+ </Row>
81
+ </CardBody>
82
+ </Card>
83
+ </Column>
84
+ </Row>
85
+ );
86
+ };
87
+
88
+ export default {
89
+ title: 'Components/Divider/All',
90
+ component: Divider,
91
+ };
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ import { Divider, Row, Column, Text } from '@/index';
3
+
4
+ export const HorizontalDivider = () => {
5
+ return (
6
+ <div>
7
+ <Row>
8
+ <Column className="p-6">
9
+ <Divider />
10
+ <br />
11
+ <Text weight="strong">Default Divider</Text>
12
+ </Column>
13
+
14
+ <Column className="p-6">
15
+ <Divider appearance="header" />
16
+ <br />
17
+ <Text weight="strong">Header Divider</Text>
18
+ </Column>
19
+ </Row>
20
+ </div>
21
+ );
22
+ };
23
+
24
+ export default {
25
+ title: 'Components/Divider/variants/Horizontal Divider',
26
+ component: Divider,
27
+ };
@@ -0,0 +1,50 @@
1
+ import * as React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import { testHelper, filterUndefined, valueHelper, testMessageHelper } from '@/utils/testHelper';
4
+ import { Divider } from '@/index';
5
+ import { DividerProps as Props } from '@/index.type';
6
+
7
+ const appearance = ['basic', 'header'];
8
+ const booleanValue = [true, false];
9
+
10
+ const testFunc = (props: Record<string, any>): void => {
11
+ const attr = filterUndefined(props) as Props;
12
+
13
+ it(testMessageHelper(attr), () => {
14
+ const { baseElement } = render(<Divider {...attr} />);
15
+ expect(baseElement).toMatchSnapshot();
16
+ });
17
+ };
18
+
19
+ describe('Divider component snapshots', () => {
20
+ const mapper: Record<string, any> = {
21
+ vertical: valueHelper(booleanValue, { required: true, iterate: true }),
22
+ appearance: valueHelper(appearance, { required: true, iterate: true }),
23
+ };
24
+
25
+ testHelper(mapper, testFunc);
26
+ });
27
+
28
+ describe('Divider component with orientation:horizontal', () => {
29
+ it('test for horizontal divider type:Basic', () => {
30
+ const { getByTestId } = render(<Divider />);
31
+ expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider');
32
+ expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider--horizontal');
33
+ expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider--basic');
34
+ });
35
+
36
+ it('test for horizontal divider type:Header', () => {
37
+ const { getByTestId } = render(<Divider appearance="header" />);
38
+ expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider');
39
+ expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider--horizontal');
40
+ expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider--header');
41
+ });
42
+ });
43
+
44
+ describe('Divider component with orientation:vertical', () => {
45
+ it('test for Vertical divider', () => {
46
+ const { getByTestId } = render(<Divider vertical={true} />);
47
+ expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider--vertical');
48
+ expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider');
49
+ });
50
+ });
@@ -0,0 +1,53 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Divider component snapshots
4
+ vertical: false, appearance: "basic"
5
+ 1`] = `
6
+ <body>
7
+ <div>
8
+ <hr
9
+ class="Divider Divider--horizontal Divider--basic"
10
+ data-test="DesignSystem-Divider"
11
+ />
12
+ </div>
13
+ </body>
14
+ `;
15
+
16
+ exports[`Divider component snapshots
17
+ vertical: false, appearance: "header"
18
+ 1`] = `
19
+ <body>
20
+ <div>
21
+ <hr
22
+ class="Divider Divider--horizontal Divider--header"
23
+ data-test="DesignSystem-Divider"
24
+ />
25
+ </div>
26
+ </body>
27
+ `;
28
+
29
+ exports[`Divider component snapshots
30
+ vertical: true, appearance: "basic"
31
+ 1`] = `
32
+ <body>
33
+ <div>
34
+ <hr
35
+ class="Divider Divider--vertical Divider--basic"
36
+ data-test="DesignSystem-Divider"
37
+ />
38
+ </div>
39
+ </body>
40
+ `;
41
+
42
+ exports[`Divider component snapshots
43
+ vertical: true, appearance: "header"
44
+ 1`] = `
45
+ <body>
46
+ <div>
47
+ <hr
48
+ class="Divider Divider--vertical"
49
+ data-test="DesignSystem-Divider"
50
+ />
51
+ </div>
52
+ </body>
53
+ `;
@@ -0,0 +1,2 @@
1
+ export { default } from './Divider';
2
+ export * from './Divider';
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { debounce } from 'throttle-debounce';
3
- import DropdownList, { DropdownListProps, SelectAll, Selected, ChangeEvent } from './DropdownList';
4
- import { OptionSchema as Option } from './option';
3
+ import DropdownList, { DropdownListProps, SelectAll, Selected } from './DropdownList';
4
+ import { OptionSchema } from './option';
5
5
  import {
6
6
  getSearchedOptions,
7
7
  getSelectAll,
@@ -12,11 +12,12 @@ import {
12
12
  _isSelectAllPresent,
13
13
  } from './utility';
14
14
  import { BaseProps } from '@/utils/types';
15
+ import { ChangeEvent } from '@/common.type';
15
16
 
16
17
  type fetchOptionsFunction = (searchTerm: string) => Promise<{
17
18
  searchTerm?: string;
18
19
  count: number;
19
- options: Option[];
20
+ options: OptionSchema[];
20
21
  }>;
21
22
 
22
23
  export type EventType =
@@ -33,7 +34,7 @@ interface ControlledProps {
33
34
  * Array of selected options <br/>
34
35
  * **Denotes `Controlled Dropdown`**
35
36
  */
36
- selected?: Option[];
37
+ selected?: OptionSchema[];
37
38
  /**
38
39
  * Callback function to handle different event types in controlled dropdown <br/>
39
40
  * **Event type here refers to `clicking on option` / `clicking on Clear, Cancel or Apply button`** <br/>
@@ -49,7 +50,7 @@ interface ControlledProps {
49
50
  * | 'apply-selected' | Array of previously selected options | Array of recently selected options |
50
51
  * | 'cancel-selected' | Array of previously selected options | Array of recently selected options |
51
52
  */
52
- onUpdate?: (type: EventType, options?: Option | Option[], recentSelected?: Option[]) => void;
53
+ onUpdate?: (type: EventType, options?: OptionSchema | OptionSchema[], recentSelected?: OptionSchema[]) => void;
53
54
  }
54
55
 
55
56
  interface SyncProps {
@@ -79,7 +80,7 @@ interface SyncProps {
79
80
  * | disabled | Disables the option, making it unable to be pressed | |
80
81
  * | group | Defines group to which the option belongs | |
81
82
  */
82
- options: Option[];
83
+ options: OptionSchema[];
83
84
  /**
84
85
  * <pre style="font-family: monospace; font-size: 13px; background: #f8f8f8">
85
86
  * Adds loaders inside `Dropdown` when waiting for an action to complete.
@@ -114,7 +115,7 @@ interface TriggerProps {
114
115
  /**
115
116
  * Callback function to change the label of trigger when options are selected
116
117
  */
117
- customLabel?: (selected: number, totalOptions?: number, selectedOptions?: Option[]) => string;
118
+ customLabel?: (selected: number, totalOptions?: number, selectedOptions?: OptionSchema[]) => string;
118
119
  /**
119
120
  * Adds custom trigger
120
121
  */
@@ -206,7 +207,7 @@ export type DropdownProps = ControlledDropdownProps & UncontrolledDropdownProps;
206
207
  interface DropdownState {
207
208
  async: boolean;
208
209
  searchInit: boolean;
209
- options: Option[];
210
+ options: OptionSchema[];
210
211
  loading?: boolean;
211
212
  optionsApplied: boolean;
212
213
  open?: boolean;
@@ -215,9 +216,9 @@ interface DropdownState {
215
216
  searchedOptionsLength: number;
216
217
  triggerLabel: string;
217
218
  selectAll: SelectAll;
218
- selected: Option[];
219
- tempSelected: Option[];
220
- previousSelected: Option[];
219
+ selected: OptionSchema[];
220
+ tempSelected: OptionSchema[];
221
+ previousSelected: OptionSchema[];
221
222
  }
222
223
 
223
224
  /**
@@ -326,7 +327,7 @@ export class Dropdown extends React.Component<DropdownProps, DropdownState> {
326
327
  }
327
328
  }
328
329
 
329
- getDisabledOptions = (options: Option[] = []) => {
330
+ getDisabledOptions = (options: OptionSchema[] = []) => {
330
331
  return options.filter((option) => option.disabled);
331
332
  };
332
333
 
@@ -342,7 +343,7 @@ export class Dropdown extends React.Component<DropdownProps, DropdownState> {
342
343
  });
343
344
  };
344
345
 
345
- getUnSelectedOptions = (options: Option[], init: boolean) => {
346
+ getUnSelectedOptions = (options: OptionSchema[], init: boolean) => {
346
347
  if (options.length) {
347
348
  if (!init) {
348
349
  return options.filter(
@@ -362,7 +363,7 @@ export class Dropdown extends React.Component<DropdownProps, DropdownState> {
362
363
  return options;
363
364
  };
364
365
 
365
- getSelectedOptions = (options: Option[], init: boolean) => {
366
+ getSelectedOptions = (options: OptionSchema[], init: boolean) => {
366
367
  const { selected = [] } = this.props;
367
368
  if (options.length) {
368
369
  if (!init) return this.state.tempSelected;
@@ -493,7 +494,7 @@ export class Dropdown extends React.Component<DropdownProps, DropdownState> {
493
494
  return label;
494
495
  };
495
496
 
496
- updateSelectedOptions = (selectedArray: Option[], isSingleSelect: boolean, isControlled?: boolean) => {
497
+ updateSelectedOptions = (selectedArray: OptionSchema[], isSingleSelect: boolean, isControlled?: boolean) => {
497
498
  const { optionsLength, previousSelected, selected, loading, open } = this.state;
498
499
 
499
500
  const { onChange, withCheckbox, showApplyButton, closeOnSelect, name, onPopperToggle } = this.props;
@@ -528,7 +529,7 @@ export class Dropdown extends React.Component<DropdownProps, DropdownState> {
528
529
  }
529
530
  };
530
531
 
531
- onOptionSelect = (option: Option) => {
532
+ onOptionSelect = (option: OptionSchema) => {
532
533
  const { onUpdate, selected } = this.props;
533
534
 
534
535
  if (_isControlled(selected)) {
@@ -539,7 +540,7 @@ export class Dropdown extends React.Component<DropdownProps, DropdownState> {
539
540
  this.updateSelectedOptions([option], true);
540
541
  };
541
542
 
542
- onSelect = (option: Option, checked: boolean) => {
543
+ onSelect = (option: OptionSchema, checked: boolean) => {
543
544
  const { onUpdate, selected, showApplyButton } = this.props;
544
545
 
545
546
  if (_isControlled(selected) && !showApplyButton) {
@@ -2,14 +2,14 @@ import * as React from 'react';
2
2
  import classNames from 'classnames';
3
3
  import { Icon, Text } from '@/index';
4
4
 
5
- export type Size = 'tiny' | 'regular';
5
+ export type DropDownButtonSize = 'tiny' | 'regular';
6
6
 
7
7
  export interface TriggerProps {
8
8
  /**
9
9
  * Size of `Dropdown` trigger button
10
10
  * @default "regular"
11
11
  */
12
- triggerSize?: Size;
12
+ triggerSize?: DropDownButtonSize;
13
13
  /**
14
14
  * Material icon name
15
15
  */
@@ -7,8 +7,8 @@ import Option, { OptionRendererProps, OptionSchema } from './option';
7
7
  import classNames from 'classnames';
8
8
  import Loading from './Loading';
9
9
  import { BaseProps, extractBaseProps } from '@/utils/types';
10
+ import { ChangeEvent } from '@/common.type';
10
11
 
11
- export type ChangeEvent = React.ChangeEvent<HTMLInputElement>;
12
12
  export type DropdownAlign = 'left' | 'right';
13
13
  export type OptionType = 'DEFAULT' | 'WITH_ICON' | 'WITH_META' | 'ICON_WITH_META';
14
14
 
@@ -33,9 +33,9 @@ interface PopoverOptions {
33
33
  boundaryElement?: PopoverProps['boundaryElement'];
34
34
  }
35
35
 
36
- type ListProps = TriggerProps & OptionRendererProps;
36
+ type TriggerAndOptionProps = TriggerProps & OptionRendererProps;
37
37
 
38
- export interface DropdownListProps extends ListProps {
38
+ export interface DropdownListProps extends TriggerAndOptionProps {
39
39
  /**
40
40
  * Aligns the `Dropdown` left/right
41
41
  * @default "right"
@@ -141,6 +141,10 @@ export interface DropdownListProps extends ListProps {
141
141
  * </pre>
142
142
  */
143
143
  popoverOptions?: PopoverOptions;
144
+ /**
145
+ * Adds custom placeholder to searchBar
146
+ */
147
+ searchPlaceholder?: string;
144
148
  }
145
149
 
146
150
  interface OptionsProps extends DropdownListProps, BaseProps {
@@ -207,6 +211,7 @@ const DropdownList = (props: OptionsProps) => {
207
211
  cancelOptions,
208
212
  toggleDropdown,
209
213
  className,
214
+ searchPlaceholder = 'Search..',
210
215
  } = props;
211
216
 
212
217
  const baseProps = extractBaseProps(props);
@@ -410,7 +415,9 @@ const DropdownList = (props: OptionsProps) => {
410
415
  name="Dropdown-search"
411
416
  icon={'search'}
412
417
  value={searchTerm}
413
- placeholder={'Search..'}
418
+ placeholder={searchPlaceholder}
419
+ // TODO(a11y): research more on this.
420
+ // eslint-disable-next-line jsx-a11y/no-autofocus
414
421
  autoFocus={true}
415
422
  onChange={searchHandler}
416
423
  onClear={searchClearHandler}
@@ -440,7 +447,7 @@ const DropdownList = (props: OptionsProps) => {
440
447
  const label = selectAllLabel.trim() ? selectAllLabel.trim() : 'Select All';
441
448
 
442
449
  return (
443
- <div className={SelectAllClass} onMouseEnter={(_e) => updateActiveOption(0, true)}>
450
+ <div className={SelectAllClass} onMouseEnter={() => updateActiveOption(0, true)}>
444
451
  <Checkbox
445
452
  label={label}
446
453
  onChange={onSelectAll}
@@ -567,7 +574,7 @@ const DropdownList = (props: OptionsProps) => {
567
574
  event.preventDefault();
568
575
  dropdownOpen ? focusOption('up', optionClass) : onToggleDropdown(!dropdownOpen);
569
576
  break;
570
- case 'Enter':
577
+ case 'Enter': {
571
578
  const activeElement = document.activeElement;
572
579
  if (dropdownOpen && (inputRef.current === activeElement || dropdownTriggerRef.current === activeElement)) {
573
580
  event.preventDefault();
@@ -578,7 +585,8 @@ const DropdownList = (props: OptionsProps) => {
578
585
  }
579
586
  if (!dropdownOpen) onToggleDropdown(!dropdownOpen);
580
587
  break;
581
- case 'Tab':
588
+ }
589
+ case 'Tab': {
582
590
  if (!showApplyButton && dropdownOpen) {
583
591
  event.preventDefault();
584
592
  onToggleDropdown(false, 'onClick');
@@ -608,12 +616,15 @@ const DropdownList = (props: OptionsProps) => {
608
616
  }
609
617
 
610
618
  break;
619
+ }
611
620
  default:
612
621
  break;
613
622
  }
614
623
  };
615
624
 
616
625
  return (
626
+ //TODO(a11y)
627
+ //eslint-disable-next-line
617
628
  <div {...baseProps} className={dropdownClass} ref={triggerRef} onKeyDown={onkeydown}>
618
629
  <Popover
619
630
  onToggle={onToggleDropdown}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import * as React from 'react';
2
2
  import PlaceholderParagraph from '@/components/atoms/placeholderParagraph';
3
3
  import Placeholder from '@/components/molecules/placeholder';
4
4
 
@@ -0,0 +1,45 @@
1
+ import * as React from 'react';
2
+ import Dropdown from '../Dropdown';
3
+ import Label from '@/components/atoms/label';
4
+
5
+ const options = [
6
+ {
7
+ label: 'Male',
8
+ value: 'Male',
9
+ },
10
+ {
11
+ label: 'Female',
12
+ value: 'Female',
13
+ },
14
+ {
15
+ label: 'Transgender',
16
+ value: 'Transgender',
17
+ },
18
+ {
19
+ label: 'Others',
20
+ value: 'Others',
21
+ },
22
+ ];
23
+
24
+ // CSF format story
25
+ export const customSearchPlaceholder = () => (
26
+ <div className="mb-10 w-25">
27
+ <Label withInput={true}>Gender</Label>
28
+ <Dropdown options={options} searchPlaceholder="Search Gender" withSearch={true} />
29
+ </div>
30
+ );
31
+
32
+ export default {
33
+ title: 'Components/Dropdown/Custom Search Placeholder',
34
+ component: Dropdown,
35
+ parameters: {
36
+ docs: {
37
+ docPage: {
38
+ title: 'Dropdown',
39
+ props: {
40
+ exclude: ['showHead'],
41
+ },
42
+ },
43
+ },
44
+ },
45
+ };
@@ -1,4 +1,7 @@
1
1
  import { UncontrolledDropdownProps, ControlledDropdownProps } from '@/components/atoms/dropdown';
2
2
 
3
+ // TODO(eslint): Fix this
4
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
3
5
  export const Controlled = (_props: ControlledDropdownProps) => {};
6
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
7
  export const Uncontrolled = (_props: UncontrolledDropdownProps) => {};