@innovaccer/design-system 2.5.0-4 → 2.6.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 (264) hide show
  1. package/.all-contributorsrc +1 -1
  2. package/.eslintrc.json +53 -0
  3. package/.github/workflows/jira.yml +1 -2
  4. package/.github/workflows/main.yml +2 -2
  5. package/.github/workflows/pull_request.yml +1 -1
  6. package/.github/workflows/test.yml +1 -1
  7. package/.husky/commit-msg +4 -0
  8. package/.prettierrc +2 -2
  9. package/CHANGELOG.md +38 -88
  10. package/CONTRIBUTING.md +173 -97
  11. package/README.md +1 -1
  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 +31 -0
  17. package/core/components/atoms/_chip/__tests__/__snapshots__/_chip.test.tsx.snap +8 -0
  18. package/core/components/atoms/_chip/index.tsx +2 -0
  19. package/core/components/atoms/button/__stories__/Alert.story.tsx +8 -1
  20. package/core/components/atoms/button/__stories__/Cancel.story.tsx +4 -1
  21. package/core/components/atoms/button/__stories__/IconButtonGroup.story.tsx +12 -3
  22. package/core/components/atoms/button/__stories__/IconButtonSecondary.story.tsx +6 -1
  23. package/core/components/atoms/button/__stories__/IconLeftSecondary.story.tsx +4 -1
  24. package/core/components/atoms/button/__stories__/IconRightSecondary.story.tsx +4 -1
  25. package/core/components/atoms/button/__stories__/IconTransparent.story.tsx +4 -1
  26. package/core/components/atoms/button/__stories__/LabelButtonGroup.story.tsx +14 -3
  27. package/core/components/atoms/button/__stories__/LargeIconExpanded.story.tsx +4 -1
  28. package/core/components/atoms/button/__stories__/LoadingPrimary.story.tsx +4 -1
  29. package/core/components/atoms/button/__stories__/Primary.story.tsx +5 -2
  30. package/core/components/atoms/button/__stories__/SplitButton.story.tsx +6 -1
  31. package/core/components/atoms/button/__stories__/Transparent.story.tsx +8 -1
  32. package/core/components/atoms/button/__stories__/index.story.tsx +11 -1
  33. package/core/components/atoms/button/__stories__/variants/Appearance.story.tsx +4 -0
  34. package/core/components/atoms/button/__stories__/variants/Expanded.story.tsx +4 -0
  35. package/core/components/atoms/button/__stories__/variants/Size.story.tsx +4 -0
  36. package/core/components/atoms/button/__stories__/variants/icon/Icon.story.tsx +15 -0
  37. package/core/components/atoms/button/__stories__/variants/icon/IconLeft.story.tsx +4 -0
  38. package/core/components/atoms/button/__stories__/variants/icon/IconRight.story.tsx +4 -0
  39. package/core/components/atoms/button/__stories__/variants/state/Alert.story.tsx +7 -17
  40. package/core/components/atoms/button/__stories__/variants/state/Basic.story.tsx +9 -17
  41. package/core/components/atoms/button/__stories__/variants/state/Primary.story.tsx +7 -17
  42. package/core/components/atoms/button/__stories__/variants/state/Success.story.tsx +7 -17
  43. package/core/components/atoms/button/__stories__/variants/state/Transparent.story.tsx +13 -17
  44. package/core/components/atoms/chipGroup/__tests__/__snapshots__/chipGroup.test.tsx.snap +6 -0
  45. package/core/components/atoms/collapsible/__stories__/index.story.tsx +2 -2
  46. package/core/components/atoms/collapsible/__tests__/__snapshots__/Collapsible.test.tsx.snap +8 -0
  47. package/core/components/atoms/divider/Divider.tsx +44 -0
  48. package/core/components/atoms/divider/__stories__/BasicDividerInCard.story.tsx +74 -0
  49. package/core/components/atoms/divider/__stories__/HeaderDividerInCard.story.tsx +35 -0
  50. package/core/components/atoms/divider/__stories__/IndentedDivider.story.tsx +49 -0
  51. package/core/components/atoms/divider/__stories__/Vertical.story.tsx +51 -0
  52. package/core/components/atoms/divider/__stories__/index.story.tsx +91 -0
  53. package/core/components/atoms/divider/__stories__/variants/HorizontalDivider.story.tsx +27 -0
  54. package/core/components/atoms/divider/__tests__/Divider.test.tsx +50 -0
  55. package/core/components/atoms/divider/__tests__/__snapshots__/Divider.test.tsx.snap +53 -0
  56. package/core/components/atoms/divider/index.tsx +2 -0
  57. package/core/components/atoms/dropdown/DropdownList.tsx +8 -2
  58. package/core/components/atoms/dropdown/__stories__/variants/controlledDropdown/MultiSelect.story.tsx +27 -17
  59. package/core/components/atoms/dropdown/option/DefaultOption.tsx +3 -0
  60. package/core/components/atoms/dropdown/option/IconOption.tsx +3 -0
  61. package/core/components/atoms/dropdown/option/IconWithMetaOption.tsx +3 -0
  62. package/core/components/atoms/dropdown/option/MetaOption.tsx +3 -0
  63. package/core/components/atoms/editable/Editable.tsx +3 -0
  64. package/core/components/atoms/icon/Icon.tsx +14 -3
  65. package/core/components/atoms/icon/__stories__/variants/Image.story.tsx +6 -1
  66. package/core/components/atoms/icon/__tests__/__snapshots__/Icon.test.tsx.snap +74 -0
  67. package/core/components/atoms/input/Input.tsx +14 -4
  68. package/core/components/atoms/input/__stories__/BasicInput.story.tsx +2 -1
  69. package/core/components/atoms/input/__stories__/InputWithCaption.story.tsx +29 -9
  70. package/core/components/atoms/input/__stories__/InputWithLabel.story.tsx +11 -3
  71. package/core/components/atoms/input/__stories__/LabelPosition.story.tsx +8 -4
  72. package/core/components/atoms/input/__stories__/RequiredVsOptional.story.tsx +12 -8
  73. package/core/components/atoms/input/__tests__/__snapshots__/Input.test.tsx.snap +19 -0
  74. package/core/components/atoms/legend/Legend.tsx +3 -0
  75. package/core/components/atoms/message/__stories__/CustomDescription.tsx +25 -0
  76. package/core/components/atoms/metricInput/MetricInput.tsx +12 -2
  77. package/core/components/atoms/metricInput/__stories__/DefaultMetric.story.tsx +8 -2
  78. package/core/components/atoms/metricInput/__stories__/WithPrefix.story.tsx +6 -2
  79. package/core/components/atoms/metricInput/__stories__/index.story.tsx +1 -0
  80. package/core/components/atoms/metricInput/__stories__/variants/Controlled.story.tsx +2 -0
  81. package/core/components/atoms/metricInput/__stories__/variants/Size.story.tsx +2 -2
  82. package/core/components/atoms/metricInput/__stories__/withSuffix.story.tsx +6 -2
  83. package/core/components/atoms/metricInput/__tests__/__snapshots__/MetricInput.test.tsx.snap +20 -4
  84. package/core/components/atoms/multiSlider/Handle.tsx +3 -0
  85. package/core/components/atoms/multiSlider/index.tsx +6 -0
  86. package/core/components/atoms/outsideClick/__stories__/index.story.tsx +1 -1
  87. package/core/components/atoms/statusHint/StatusHint.tsx +3 -0
  88. package/core/components/atoms/switchInput/Switch.tsx +10 -4
  89. package/core/components/atoms/switchInput/__stories__/DefaultSwitch.story.tsx +4 -1
  90. package/core/components/atoms/switchInput/__stories__/OffState.story.tsx +4 -1
  91. package/core/components/atoms/switchInput/__stories__/index.story.tsx +26 -3
  92. package/core/components/atoms/switchInput/__stories__/variants/Size.story.tsx +10 -1
  93. package/core/components/atoms/switchInput/__stories__/variants/State.story.tsx +9 -2
  94. package/core/components/atoms/textarea/__stories__/TextareaWithCaption.story.tsx +9 -3
  95. package/core/components/atoms/textarea/__stories__/defaultTextarea.story.tsx +10 -2
  96. package/core/components/atoms/textarea/__stories__/index.story.tsx +1 -0
  97. package/core/components/atoms/textarea/__stories__/variants/Disable.story.tsx +1 -0
  98. package/core/components/atoms/toast/__tests__/__snapshots__/Toast.test.tsx.snap +30 -0
  99. package/core/components/css-utilities/Align/Align.story.tsx +1 -1
  100. package/core/components/css-utilities/Background/Background.story.tsx +1 -1
  101. package/core/components/css-utilities/Border/Border.story.tsx +1 -1
  102. package/core/components/css-utilities/Display/Display.story.tsx +1 -1
  103. package/core/components/css-utilities/Flex/Flex.story.tsx +1 -1
  104. package/core/components/css-utilities/Miscellaneous/Miscellaneous.story.tsx +1 -1
  105. package/core/components/css-utilities/Overflow/Overflow.story.tsx +1 -1
  106. package/core/components/css-utilities/Position/Position.story.tsx +1 -1
  107. package/core/components/css-utilities/Sizing/Sizing.story.tsx +1 -1
  108. package/core/components/css-utilities/Spacing/Spacing.story.tsx +1 -1
  109. package/core/components/molecules/chatMessage/Box.tsx +3 -0
  110. package/core/components/molecules/chipInput/ChipInput.tsx +3 -0
  111. package/core/components/molecules/chipInput/__tests__/__snapshots__/ChipInput.test.tsx.snap +12 -0
  112. package/core/components/molecules/dropzone/Dropzone.tsx +3 -0
  113. package/core/components/molecules/dropzone/FileSelectorUtils.tsx +1 -1
  114. package/core/components/molecules/editableChipInput/EditableChipInput.tsx +9 -5
  115. package/core/components/molecules/editableChipInput/__stories__/Uncontrolled.story.tsx +1 -1
  116. package/core/components/molecules/editableChipInput/__tests__/__snapshots__/EditableChipInput.test.tsx.snap +8 -0
  117. package/core/components/molecules/editableDropdown/EditableDropdown.tsx +2 -2
  118. package/core/components/molecules/editableInput/EditableInput.tsx +13 -4
  119. package/core/components/molecules/emptyState/EmptyState.tsx +5 -1
  120. package/core/components/molecules/fileList/FileListItem.tsx +2 -0
  121. package/core/components/molecules/fileUploader/FileUploaderItem.tsx +2 -0
  122. package/core/components/molecules/fileUploader/__stories__/index.story.tsx +156 -21
  123. package/core/components/molecules/inputMask/InputMask.tsx +1 -1
  124. package/core/components/molecules/inputMask/__tests__/__snapshots__/InputMask.test.tsx.snap +1 -0
  125. package/core/components/molecules/pagination/__tests__/__snapshots__/Pagination.test.tsx.snap +5 -1
  126. package/core/components/molecules/stepper/Step.tsx +2 -0
  127. package/core/components/molecules/tabs/Tabs.tsx +2 -0
  128. package/core/components/molecules/tabs/TabsWrapper.tsx +2 -0
  129. package/core/components/molecules/tabs/__stories__/CustomLabels.story.tsx +1 -1
  130. package/core/components/molecules/verificationCodeInput/VerificationCodeInput.tsx +8 -4
  131. package/core/components/molecules/verificationCodeInput/__stories__/index.story.tsx +3 -1
  132. package/core/components/molecules/verificationCodeInput/__tests__/__snapshots__/VerificationCodeInput.test.tsx.snap +1 -0
  133. package/core/components/organisms/calendar/Calendar.tsx +130 -8
  134. package/core/components/organisms/calendar/__tests__/Calendar.test.tsx +27 -0
  135. package/core/components/organisms/choiceList/ChoiceList.tsx +1 -1
  136. package/core/components/organisms/datePicker/DatePicker.tsx +30 -15
  137. package/core/components/organisms/datePicker/__tests__/DatePicker.test.tsx +136 -46
  138. package/core/components/organisms/datePicker/__tests__/__snapshots__/DatePicker.test.tsx.snap +4388 -1857
  139. package/core/components/organisms/dateRangePicker/__tests__/__snapshots__/DateRangePicker.test.tsx.snap +112 -40
  140. package/core/components/organisms/grid/Cell.tsx +4 -0
  141. package/core/components/organisms/grid/GridRow.tsx +4 -0
  142. package/core/components/organisms/grid/__stories__/_common_/fetchData.ts +2 -2
  143. package/core/components/organisms/horizontalNav/HorizontalNav.tsx +2 -0
  144. package/core/components/organisms/inlineMessage/InlineMessage.tsx +3 -5
  145. package/core/components/organisms/inlineMessage/__tests__/__snapshots__/InlineMessage.test.tsx.snap +30 -40
  146. package/core/components/organisms/navigation/VerticalNavigation.tsx +4 -0
  147. package/core/components/organisms/table/Table.tsx +1 -0
  148. package/core/components/organisms/table/__stories__/NestedTableWithNestedCard.story.tsx +4 -1
  149. package/core/components/organisms/table/__stories__/ResourceTable.story.tsx +3 -2
  150. package/core/components/organisms/table/__stories__/Selection.story.tsx +2 -2
  151. package/core/components/organisms/table/__stories__/TableAsDescriptionList.story.tsx +1 -1
  152. package/core/components/organisms/table/__stories__/TableAsOptionList.story.tsx +1 -1
  153. package/core/components/organisms/table/__stories__/syncTable.story.tsx +14 -6
  154. package/core/components/organisms/table/__stories__/variants/nestedRows.story.tsx +5 -2
  155. package/core/components/organisms/table/__stories__/variants/withHeader.story.tsx +0 -2
  156. package/core/components/organisms/timePicker/TimePicker.tsx +1 -1
  157. package/core/components/organisms/timePicker/__tests__/__snapshots__/TimePicker.test.tsx.snap +14 -2
  158. package/core/components/organisms/verticalNav/MenuItem.tsx +2 -0
  159. package/core/components/patterns/datePicker/datePickerWithPresets.story.tsx +126 -0
  160. package/core/components/patterns/dateRangePicker/withCustomPopover.story.tsx +8 -8
  161. package/core/components/patterns/forms/CreatePassword.story.tsx +1 -1
  162. package/core/components/patterns/forms/VerificationCodeInput.story.tsx +2 -2
  163. package/core/components/patterns/table/Table with Header/tableWithHeader.story.jsx +7 -7
  164. package/core/index.tsx +1 -0
  165. package/core/index.type.tsx +1 -0
  166. package/core/utils/Keys.ts +4 -0
  167. package/core/utils/__tests__/__snapshots__/TS.test.tsx.snap +544 -536
  168. package/core/utils/docPage/index.tsx +22 -17
  169. package/core/utils/testHelper.ts +1 -1
  170. package/core/utils/validators.ts +37 -34
  171. package/css/dist/index.css +1523 -1402
  172. package/css/dist/index.css.map +1 -1
  173. package/css/src/components/Legend.css +7 -7
  174. package/css/src/components/ProgressBar.css +1 -1
  175. package/css/src/components/avatarGroup.css +1 -1
  176. package/css/src/components/backdrop.css +12 -6
  177. package/css/src/components/badge.css +52 -52
  178. package/css/src/components/button.css +99 -94
  179. package/css/src/components/calendar.css +137 -126
  180. package/css/src/components/card.css +0 -1
  181. package/css/src/components/cardSubdued.css +3 -5
  182. package/css/src/components/chat.css +1 -1
  183. package/css/src/components/checkbox.css +71 -70
  184. package/css/src/components/chip.css +14 -13
  185. package/css/src/components/chipGroup.css +5 -5
  186. package/css/src/components/chipInput.css +1 -1
  187. package/css/src/components/choiceList.css +4 -4
  188. package/css/src/components/dateRangePicker.css +13 -13
  189. package/css/src/components/divider.css +20 -0
  190. package/css/src/components/dropdown.css +61 -61
  191. package/css/src/components/dropdownButton.css +36 -36
  192. package/css/src/components/dropzone.css +16 -20
  193. package/css/src/components/editableChipInput.css +10 -9
  194. package/css/src/components/editableDropdown.css +1 -1
  195. package/css/src/components/editableInput.css +1 -1
  196. package/css/src/components/emptyState.css +15 -15
  197. package/css/src/components/fileList.css +44 -45
  198. package/css/src/components/grid.css +217 -199
  199. package/css/src/components/horizontalNav.css +0 -1
  200. package/css/src/components/icon.css +1 -7
  201. package/css/src/components/inlineMessage.css +2 -1
  202. package/css/src/components/input.css +62 -62
  203. package/css/src/components/link.css +1 -1
  204. package/css/src/components/list.css +10 -10
  205. package/css/src/components/message.css +69 -70
  206. package/css/src/components/metaList.css +26 -26
  207. package/css/src/components/metricInput.css +3 -4
  208. package/css/src/components/modal.css +1 -1
  209. package/css/src/components/navigation.css +3 -3
  210. package/css/src/components/pageHeader.css +1 -2
  211. package/css/src/components/pagination.css +36 -36
  212. package/css/src/components/pills.css +19 -19
  213. package/css/src/components/placeholder.css +10 -5
  214. package/css/src/components/popover.css +2 -2
  215. package/css/src/components/progressRing.css +1 -1
  216. package/css/src/components/radio.css +74 -74
  217. package/css/src/components/slider.css +5 -5
  218. package/css/src/components/statusHints.css +15 -15
  219. package/css/src/components/switch.css +45 -41
  220. package/css/src/components/table.css +15 -15
  221. package/css/src/components/tabs.css +53 -53
  222. package/css/src/components/textarea.css +1 -1
  223. package/css/src/components/toast.css +53 -53
  224. package/css/src/components/verificationCodeInput.css +5 -6
  225. package/css/src/components/verticalNav.css +1 -2
  226. package/css/src/core/base.css +3 -0
  227. package/css/src/core/typography.css +1 -1
  228. package/css/src/core/utilities.css +1 -1
  229. package/css/src/tokens/index.css +63 -63
  230. package/css/src/utils/align.css +1 -1
  231. package/css/src/utils/background.css +1 -1
  232. package/css/src/utils/cursor.css +1 -1
  233. package/css/src/utils/display.css +1 -1
  234. package/css/src/utils/flex.css +1 -1
  235. package/css/src/utils/grid.css +1 -1
  236. package/css/src/utils/overflow.css +1 -1
  237. package/css/src/utils/position.css +1 -1
  238. package/css/src/utils/spacing.css +1 -1
  239. package/css/src/utils/utility.css +13 -13
  240. package/css/src/variables/index.css +1 -1
  241. package/dist/core/accessibility/utils/index.d.ts +4 -0
  242. package/dist/core/accessibility/utils/isEnterKey.d.ts +3 -0
  243. package/dist/core/accessibility/utils/isSpaceKey.d.ts +3 -0
  244. package/dist/core/accessibility/utils/useAccessibilityProps.d.ts +15 -0
  245. package/dist/core/components/atoms/divider/Divider.d.ts +15 -0
  246. package/dist/core/components/atoms/divider/index.d.ts +2 -0
  247. package/dist/core/components/atoms/icon/Icon.d.ts +3 -1
  248. package/dist/core/components/atoms/input/Input.d.ts +1 -1
  249. package/dist/core/components/atoms/popperWrapper/PopperWrapper.d.ts +50 -49
  250. package/dist/core/components/atoms/switchInput/Switch.d.ts +2 -1
  251. package/dist/core/components/organisms/calendar/Calendar.d.ts +31 -0
  252. package/dist/core/components/organisms/datePicker/DatePicker.d.ts +2 -0
  253. package/dist/core/components/patterns/datePicker/datePickerWithPresets.story.d.ts +15 -0
  254. package/dist/core/index.d.ts +1 -0
  255. package/dist/core/index.type.d.ts +1 -0
  256. package/dist/index.esm.js +829 -495
  257. package/dist/index.js +313 -144
  258. package/dist/index.js.map +1 -1
  259. package/dist/index.umd.js +1 -1
  260. package/dist/index.umd.js.br +0 -0
  261. package/dist/index.umd.js.gz +0 -0
  262. package/package.json +17 -14
  263. package/.husky/prepare-commit-msg +0 -6
  264. package/tslint.json +0 -30
@@ -133,7 +133,9 @@ exports[`Chip component
133
133
  <i
134
134
  class="material-icons material-icons-round Icon Icon--subtle 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>
@@ -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>
@@ -235,7 +241,9 @@ exports[`Chip component
235
241
  <i
236
242
  class="material-icons material-icons-round Icon Icon--disabled 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>
@@ -38,6 +38,8 @@ export const GenericChip = (props: GenericChipProps) => {
38
38
  };
39
39
 
40
40
  return (
41
+ // TODO(a11y)
42
+ // eslint-disable-next-line
41
43
  <div
42
44
  data-test="DesignSystem-GenericChip--GenericChipWrapper"
43
45
  {...baseProps}
@@ -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
  },
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import Button from '../Button';
3
3
 
4
- export const transparentIconButton = () => <Button appearance="transparent" icon="more_horiz" />;
4
+ export const transparentIconButton = () => <Button appearance="transparent" icon="more_horiz" aria-label="Menu" />;
5
5
 
6
6
  export default {
7
7
  title: 'Components/Button/Transparent Icon Button',
@@ -11,6 +11,9 @@ export default {
11
11
  docPage: {
12
12
  title: 'Button',
13
13
  description: 'Transparent button with icon.',
14
+ a11yProps: `
15
+ **aria-label:** Add \`aria-label='Menu'\` to describe the action of button.
16
+ `,
14
17
  },
15
18
  },
16
19
  },
@@ -3,13 +3,15 @@ import Button from '@/components/atoms/button';
3
3
 
4
4
  export const labelButtonGroup = () => (
5
5
  <div className="d-flex">
6
- <Button size="tiny" className="mr-2">
6
+ <Button size="tiny" className="mr-4" aria-label="Copy">
7
7
  Copy
8
8
  </Button>
9
- <Button size="tiny" className="mr-2">
9
+ <Button size="tiny" className="mr-4" aria-label="Paste">
10
10
  Paste
11
11
  </Button>
12
- <Button size="tiny">Delete</Button>
12
+ <Button size="tiny" aria-label="Delete">
13
+ Delete
14
+ </Button>
13
15
  </div>
14
16
  );
15
17
 
@@ -21,6 +23,15 @@ export default {
21
23
  docPage: {
22
24
  title: 'Button',
23
25
  description: 'A pattern using buttons in a group.',
26
+ a11yProps: `
27
+ **aria-label:**
28
+ <br/>
29
+ - Add \`aria-label='Copy'\` on button with *copy* icon to describe the action of button.
30
+ <br/>
31
+ - Add \`aria-label='Paste'\` on button with *paste* icon to describe the action of button.
32
+ <br/>
33
+ - Add \`aria-label='Delete'\` on button with *delete* icon to describe the action of button.
34
+ `,
24
35
  },
25
36
  },
26
37
  },
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import Button from '../Button';
3
3
 
4
4
  export const ExpandedButton = () => (
5
- <Button appearance="primary" size="large" expanded={true}>
5
+ <Button appearance="primary" size="large" expanded={true} aria-label="Login">
6
6
  Login
7
7
  </Button>
8
8
  );
@@ -15,6 +15,9 @@ export default {
15
15
  docPage: {
16
16
  title: 'Button',
17
17
  description: 'Large expanded button.',
18
+ a11yProps: `
19
+ **aria-label:** Add \`aria-label='Login'\` to describe the action of button
20
+ `,
18
21
  },
19
22
  },
20
23
  },
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import Button from '../Button';
3
3
 
4
- export const LoaderInButton = () => <Button appearance="primary" loading={true} />;
4
+ export const LoaderInButton = () => <Button appearance="primary" loading={true} aria-label="loading" />;
5
5
 
6
6
  export default {
7
7
  title: 'Components/Button/Loader In Button',
@@ -11,6 +11,9 @@ export default {
11
11
  docPage: {
12
12
  title: 'Button',
13
13
  description: 'Primary button in loading state.',
14
+ a11yProps: `
15
+ **aria-label:** Add \`aria-label='loading'\` to describe the action of button.
16
+ `,
14
17
  },
15
18
  },
16
19
  },
@@ -2,8 +2,8 @@ import * as React from 'react';
2
2
  import Button from '../Button';
3
3
 
4
4
  export const PrimaryButton = () => (
5
- <Button appearance="primary" size="regular">
6
- Submit
5
+ <Button appearance="primary" size="regular" aria-label="Submit your response">
6
+ Submit your response
7
7
  </Button>
8
8
  );
9
9
 
@@ -15,6 +15,9 @@ export default {
15
15
  docPage: {
16
16
  title: 'Button',
17
17
  description: 'Primary button',
18
+ a11yProps: `
19
+ **aria-label:** Add \`aria-label='Submit your response'\` to describe the action of button
20
+ `,
18
21
  },
19
22
  },
20
23
  },
@@ -15,7 +15,9 @@ const options = [
15
15
 
16
16
  export const splitButton = () => (
17
17
  <div className="d-flex">
18
- <Button className="mr-2">Request review</Button>
18
+ <Button className="mr-2" aria-label="Request review">
19
+ Request review
20
+ </Button>
19
21
  <div className="mb-10" style={{ width: '150px' }}>
20
22
  <Dropdown menu={true} icon="expand_more" options={options} />
21
23
  </div>
@@ -30,6 +32,9 @@ export default {
30
32
  docPage: {
31
33
  title: 'Button',
32
34
  description: 'Split button.',
35
+ a11yProps: `
36
+ **aria-label:** Add \`aria-label='Request review'\` to describe the action of button
37
+ `,
33
38
  },
34
39
  },
35
40
  },
@@ -1,7 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import Button from '../Button';
3
3
 
4
- export const transparentButton = () => <Button appearance="transparent">Re-evaluate</Button>;
4
+ export const transparentButton = () => (
5
+ <Button appearance="transparent" aria-label="Re-evaluate">
6
+ Re-evaluate
7
+ </Button>
8
+ );
5
9
 
6
10
  export default {
7
11
  title: 'Components/Button/Transparent Button',
@@ -11,6 +15,9 @@ export default {
11
15
  docPage: {
12
16
  title: 'Button',
13
17
  description: 'Transparent button.',
18
+ a11yProps: `
19
+ **aria-label:** Add \`aria-label='Re-evaluate'\` to describe the action of button
20
+ `,
14
21
  },
15
22
  },
16
23
  },
@@ -21,7 +21,7 @@ export const all = () => {
21
21
 
22
22
  const iconAlign = select('iconAlign', ['left', 'right'], undefined);
23
23
 
24
- const children = text('children', 'Button');
24
+ const children = text('children', 'Open');
25
25
 
26
26
  return (
27
27
  <Button
@@ -36,6 +36,7 @@ export const all = () => {
36
36
  loading={loading}
37
37
  icon={icon}
38
38
  iconAlign={iconAlign}
39
+ aria-label="Open"
39
40
  >
40
41
  {children}
41
42
  </Button>
@@ -45,4 +46,13 @@ export const all = () => {
45
46
  export default {
46
47
  title: 'Components/Button/All',
47
48
  component: Button,
49
+ parameters: {
50
+ docs: {
51
+ docPage: {
52
+ a11yProps: `
53
+ **aria-label:** Add \`aria-label='Open'\` to describe the action of button
54
+ `,
55
+ },
56
+ },
57
+ },
48
58
  };
@@ -28,6 +28,7 @@ export const appearance = () => {
28
28
  expanded={expanded}
29
29
  disabled={disabled}
30
30
  loading={loading}
31
+ aria-label={`${appear}`}
31
32
  >
32
33
  {children}
33
34
  </Button>
@@ -47,6 +48,9 @@ export default {
47
48
  docs: {
48
49
  docPage: {
49
50
  title: 'Button',
51
+ a11yProps: `
52
+ **aria-label:** name accordingly which describe the action of button
53
+ `,
50
54
  },
51
55
  },
52
56
  },
@@ -28,6 +28,7 @@ export const expanded = () => {
28
28
  expanded={ButtonExpanded}
29
29
  disabled={disabled}
30
30
  loading={loading}
31
+ aria-label={`${appear}`}
31
32
  >
32
33
  {children}
33
34
  </Button>
@@ -47,6 +48,9 @@ export default {
47
48
  docs: {
48
49
  docPage: {
49
50
  title: 'Button',
51
+ a11yProps: `
52
+ **aria-label:** name accordingly which describe the action of button
53
+ `,
50
54
  },
51
55
  },
52
56
  },
@@ -29,6 +29,7 @@ export const size = () => {
29
29
  expanded={expanded}
30
30
  disabled={disabled}
31
31
  loading={loading}
32
+ aria-label={`${ButtonSize}`}
32
33
  >
33
34
  {children}
34
35
  </Button>
@@ -49,6 +50,9 @@ export default {
49
50
  docs: {
50
51
  docPage: {
51
52
  title: 'Button',
53
+ a11yProps: `
54
+ **aria-label:** name accordingly which describe the action of button
55
+ `,
52
56
  },
53
57
  },
54
58
  },
@@ -19,6 +19,7 @@ export const icon = () => {
19
19
  icon="add"
20
20
  size="tiny"
21
21
  largeIcon={false}
22
+ aria-label="Add document"
22
23
  />
23
24
  <Button
24
25
  onClick={action('button-clicked')}
@@ -28,6 +29,7 @@ export const icon = () => {
28
29
  icon="add"
29
30
  size="tiny"
30
31
  largeIcon={true}
32
+ aria-label="Add document"
31
33
  />
32
34
  </div>
33
35
  </div>
@@ -44,6 +46,7 @@ export const icon = () => {
44
46
  icon="print"
45
47
  size="regular"
46
48
  largeIcon={false}
49
+ aria-label="Print"
47
50
  />
48
51
  <Button
49
52
  onClick={action('button-clicked')}
@@ -53,6 +56,7 @@ export const icon = () => {
53
56
  icon="print"
54
57
  size="regular"
55
58
  largeIcon={true}
59
+ aria-label="Print"
56
60
  />
57
61
  </div>
58
62
  </div>
@@ -69,6 +73,7 @@ export const icon = () => {
69
73
  icon="more_horiz"
70
74
  size="large"
71
75
  largeIcon={false}
76
+ aria-label="Menu"
72
77
  />
73
78
  <Button
74
79
  onClick={action('button-clicked')}
@@ -78,6 +83,7 @@ export const icon = () => {
78
83
  icon="more_horiz"
79
84
  size="large"
80
85
  largeIcon={true}
86
+ aria-label="Menu"
81
87
  />
82
88
  </div>
83
89
  </div>
@@ -92,6 +98,15 @@ export default {
92
98
  docs: {
93
99
  docPage: {
94
100
  title: 'Button',
101
+ a11yProps: `
102
+ **aria-label:**
103
+ <br/>
104
+ - Add \`aria-label='Add document'\` on button with *add* icon to indicate its purpose.
105
+ <br/>
106
+ - Add \`aria-label='Print'\` on button with *print* icon to indicate its purpose.
107
+ <br/>
108
+ - Add \`aria-label='Menu'\` on button with *menu* icon to indicate its purpose.
109
+ `,
95
110
  },
96
111
  },
97
112
  },
@@ -32,6 +32,7 @@ export const iconLeft = () => {
32
32
  loading={loading}
33
33
  icon={icon}
34
34
  iconAlign={iconAlign}
35
+ aria-label="Refresh"
35
36
  >
36
37
  {children}
37
38
  </Button>
@@ -52,6 +53,9 @@ export default {
52
53
  docs: {
53
54
  docPage: {
54
55
  title: 'Button',
56
+ a11yProps: `
57
+ **aria-label:** Add \`aria-label='Refresh'\` to describe the action of button
58
+ `,
55
59
  },
56
60
  },
57
61
  },
@@ -32,6 +32,7 @@ export const iconRight = () => {
32
32
  loading={loading}
33
33
  icon={icon}
34
34
  iconAlign={iconAlign}
35
+ aria-label="Refresh"
35
36
  >
36
37
  {children}
37
38
  </Button>
@@ -52,6 +53,9 @@ export default {
52
53
  docs: {
53
54
  docPage: {
54
55
  title: 'Button',
56
+ a11yProps: `
57
+ **aria-label:** Add \`aria-label='Refresh'\` to describe the action of button
58
+ `,
55
59
  },
56
60
  },
57
61
  },
@@ -10,7 +10,7 @@ export const alert = () => {
10
10
  const expanded = false;
11
11
  const loading = false;
12
12
 
13
- const children = text('children', 'Button');
13
+ const children = text('children', 'Delete');
14
14
 
15
15
  const style = {
16
16
  justifyContent: 'space-between',
@@ -28,6 +28,7 @@ export const alert = () => {
28
28
  expanded={expanded}
29
29
  disabled={disabled}
30
30
  loading={loading}
31
+ aria-label="Delete"
31
32
  >
32
33
  {children}
33
34
  </Button>
@@ -44,6 +45,7 @@ export const alert = () => {
44
45
  expanded={expanded}
45
46
  disabled={true}
46
47
  loading={loading}
48
+ aria-label="Delete"
47
49
  >
48
50
  {children}
49
51
  </Button>
@@ -60,28 +62,13 @@ export const alert = () => {
60
62
  expanded={expanded}
61
63
  disabled={disabled}
62
64
  loading={true}
65
+ aria-label="Loading"
63
66
  >
64
67
  {''}
65
68
  </Button>
66
69
  <br />
67
70
  <Text weight="strong">Loading</Text>
68
71
  </div>
69
- <div className="mr-9">
70
- <Button
71
- onClick={action('button-clicked')}
72
- onMouseEnter={action('mouse-enter')}
73
- onMouseLeave={action('mouse-leave')}
74
- appearance={'alert'}
75
- size={'regular'}
76
- expanded={expanded}
77
- disabled={disabled}
78
- loading={true}
79
- >
80
- {children}
81
- </Button>
82
- <br />
83
- <Text weight="strong">Loading with Text</Text>
84
- </div>
85
72
  </div>
86
73
  );
87
74
  };
@@ -93,6 +80,9 @@ export default {
93
80
  docs: {
94
81
  docPage: {
95
82
  title: 'Button',
83
+ a11yProps: `
84
+ **aria-label:** Add \`aria-label='Delete'\` to describe the action of button
85
+ `,
96
86
  },
97
87
  },
98
88
  },
@@ -10,7 +10,7 @@ export const basic = () => {
10
10
  const expanded = false;
11
11
  const loading = false;
12
12
 
13
- const children = text('children', 'Button');
13
+ const children = text('children', 'Open');
14
14
 
15
15
  const style = {
16
16
  justifyContent: 'space-between',
@@ -28,6 +28,7 @@ export const basic = () => {
28
28
  expanded={expanded}
29
29
  disabled={disabled}
30
30
  loading={loading}
31
+ aria-label="Open"
31
32
  >
32
33
  {children}
33
34
  </Button>
@@ -44,6 +45,7 @@ export const basic = () => {
44
45
  expanded={expanded}
45
46
  disabled={true}
46
47
  loading={loading}
48
+ aria-label="Open"
47
49
  >
48
50
  {children}
49
51
  </Button>
@@ -60,28 +62,13 @@ export const basic = () => {
60
62
  expanded={expanded}
61
63
  disabled={disabled}
62
64
  loading={true}
65
+ aria-label="Loading"
63
66
  >
64
67
  {''}
65
68
  </Button>
66
69
  <br />
67
70
  <Text weight="strong">Loading</Text>
68
71
  </div>
69
- <div className="mr-9">
70
- <Button
71
- onClick={action('button-clicked')}
72
- onMouseEnter={action('mouse-enter')}
73
- onMouseLeave={action('mouse-leave')}
74
- appearance={'basic'}
75
- size={'regular'}
76
- expanded={expanded}
77
- disabled={disabled}
78
- loading={true}
79
- >
80
- {children}
81
- </Button>
82
- <br />
83
- <Text weight="strong">Loading with Text</Text>
84
- </div>
85
72
  <div className="mr-9">
86
73
  <Button
87
74
  onClick={action('button-clicked')}
@@ -90,6 +77,7 @@ export const basic = () => {
90
77
  appearance={'basic'}
91
78
  size={'regular'}
92
79
  selected={true}
80
+ aria-label="Selected"
93
81
  >
94
82
  {children}
95
83
  </Button>
@@ -105,6 +93,7 @@ export const basic = () => {
105
93
  size={'regular'}
106
94
  selected={true}
107
95
  icon="events"
96
+ aria-label="Selected"
108
97
  />
109
98
  <br />
110
99
  <Text weight="strong">Selected Icon</Text>
@@ -120,6 +109,9 @@ export default {
120
109
  docs: {
121
110
  docPage: {
122
111
  title: 'Button',
112
+ a11yProps: `
113
+ **aria-label:** Add \`aria-label='Open'\` to describe the action of button
114
+ `,
123
115
  },
124
116
  },
125
117
  },