@conveyorhq/arrow-ds 2.0.0-beta.6 → 2.0.0-beta.7

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 (471) hide show
  1. package/package.json +28 -21
  2. package/public/components/Accordion/Accordion.d.ts +29 -17
  3. package/public/components/Accordion/Accordion.js +78 -56
  4. package/public/components/Accordion/context.d.ts +12 -0
  5. package/public/components/Accordion/context.js +30 -0
  6. package/public/components/Accordion/index.d.ts +1 -0
  7. package/public/components/Accordion/index.js +1 -0
  8. package/public/components/Accordion/types.d.ts +17 -0
  9. package/public/components/Accordion/types.js +2 -0
  10. package/public/components/Avatar/Avatar.d.ts +1 -1
  11. package/public/components/Avatar/AvatarGroup.d.ts +1 -1
  12. package/public/components/Avatar/AvatarGroup.js +11 -1
  13. package/public/components/Button/Button.d.ts +3 -2
  14. package/public/components/Button/Button.js +3 -0
  15. package/public/components/CloseButton/CloseButton.d.ts +1 -2
  16. package/public/components/ConveyorLogo/ConveyorLogo.js +1 -1
  17. package/public/components/Divider/Divider.d.ts +1 -9
  18. package/public/components/Divider/Divider.js +13 -24
  19. package/public/components/Drawer/Drawer.js +11 -9
  20. package/public/components/Flex/Flex.js +3 -4
  21. package/public/components/Grid/Grid.d.ts +2 -2
  22. package/public/components/Grid/Grid.js +9 -3
  23. package/public/components/Icon/Icon.d.ts +14 -0
  24. package/public/components/Icon/Icon.js +32 -2
  25. package/public/components/Icon/svg/ArrowToBottom.d.ts +2 -0
  26. package/public/components/Icon/svg/ArrowToBottom.js +14 -0
  27. package/public/components/Icon/svg/CommentAltCheck.d.ts +2 -0
  28. package/public/components/Icon/svg/CommentAltCheck.js +13 -0
  29. package/public/components/Icon/svg/index.d.ts +2 -0
  30. package/public/components/Icon/svg/index.js +2 -0
  31. package/public/components/Input/Input.d.ts +3 -2
  32. package/public/components/Input/Input.js +7 -6
  33. package/public/components/Loading/Loading.d.ts +3 -2
  34. package/public/components/Loading/Loading.js +4 -7
  35. package/public/components/Markdown/Markdown.d.ts +1 -1
  36. package/public/components/Markdown/Markdown.js +3 -3
  37. package/public/components/MarkdownEditor/MarkdownEditor.js +1 -2
  38. package/public/components/MarkdownEditor/MarkdownHelp.js +4 -7
  39. package/public/components/MenuRenderer/MenuRenderer.js +7 -4
  40. package/public/components/Modal/Modal.d.ts +6 -0
  41. package/public/components/Modal/Modal.js +29 -19
  42. package/public/components/Modal/context.d.ts +6 -0
  43. package/public/components/Modal/context.js +15 -0
  44. package/public/components/Modal/index.d.ts +1 -0
  45. package/public/components/Modal/index.js +1 -0
  46. package/public/components/OptionButton/OptionButton.d.ts +28 -1
  47. package/public/components/OptionButton/OptionButton.js +58 -11
  48. package/public/components/OptionButton/context.d.ts +11 -0
  49. package/public/components/OptionButton/context.js +16 -0
  50. package/public/components/Overlay/Overlay.js +2 -2
  51. package/public/components/Paragraph/Paragraph.js +3 -7
  52. package/public/components/Reference/Reference.d.ts +2 -2
  53. package/public/components/Select/Select.d.ts +1 -0
  54. package/public/components/Select/Select.js +12 -7
  55. package/public/components/Snackbar/Snackbar.d.ts +14 -22
  56. package/public/components/Snackbar/Snackbar.js +28 -85
  57. package/public/components/Snackbar/SnackbarProvider.d.ts +2 -0
  58. package/public/components/Snackbar/SnackbarProvider.js +21 -0
  59. package/public/components/Snackbar/constants.d.ts +2 -0
  60. package/public/components/Snackbar/constants.js +5 -0
  61. package/public/components/Snackbar/context.d.ts +4 -0
  62. package/public/components/Snackbar/context.js +17 -0
  63. package/public/components/Snackbar/helpers.d.ts +3 -0
  64. package/public/components/Snackbar/helpers.js +31 -0
  65. package/public/components/Snackbar/hooks.d.ts +2 -0
  66. package/public/components/Snackbar/hooks.js +47 -0
  67. package/public/components/Snackbar/index.d.ts +6 -0
  68. package/public/components/Snackbar/index.js +6 -0
  69. package/public/components/Snackbar/types.d.ts +43 -0
  70. package/public/components/Snackbar/types.js +2 -0
  71. package/public/components/SpeechBubble/SpeechBubble.d.ts +1 -0
  72. package/public/components/SpeechBubble/SpeechBubble.js +9 -2
  73. package/public/components/Table/Table.d.ts +5 -2
  74. package/public/components/Table/Table.js +11 -4
  75. package/public/components/Table/TableCell.d.ts +1 -0
  76. package/public/components/Table/TableCell.js +4 -2
  77. package/public/components/Table/TableHeaderCell.d.ts +2 -1
  78. package/public/components/Table/TableHeaderCell.js +24 -7
  79. package/public/components/Table/index.d.ts +3 -0
  80. package/public/components/Tag/Tag.d.ts +2 -2
  81. package/public/components/Toast/Toast.d.ts +3 -3
  82. package/public/components/Toast/Toast.js +6 -2
  83. package/public/css/styles.css +2550 -30950
  84. package/public/css/styles.min.css +1 -1
  85. package/public/css/styles.min.css.map +1 -1
  86. package/public/index.d.ts +0 -15
  87. package/public/index.js +0 -15
  88. package/public/storybook-components/ComponentHeading.js +3 -5
  89. package/public/storybook-components/ComponentStatus.d.ts +1 -0
  90. package/public/storybook-components/ComponentStatus.js +4 -0
  91. package/public/storybook-components/index.d.ts +1 -1
  92. package/public/storybook-components/index.js +1 -1
  93. package/public/style-dictionary/dist/tokens.css +377 -0
  94. package/public/style-dictionary/dist/tokens.d.ts +427 -0
  95. package/public/style-dictionary/dist/tokens.js +427 -0
  96. package/public/style-dictionary/dist/tokens.module.js +427 -0
  97. package/public/style-dictionary/src/border-radius.js +11 -0
  98. package/public/style-dictionary/src/border-width.js +10 -0
  99. package/public/style-dictionary/src/color.js +97 -0
  100. package/public/style-dictionary/src/font-size.js +15 -0
  101. package/public/style-dictionary/src/font-weight.js +7 -0
  102. package/public/style-dictionary/src/height.js +13 -0
  103. package/public/style-dictionary/src/leading.js +8 -0
  104. package/public/style-dictionary/src/screen-width.js +8 -0
  105. package/public/style-dictionary/src/shadow.js +19 -0
  106. package/public/style-dictionary/src/spacing.js +69 -0
  107. package/public/style-dictionary/src/tracking.js +7 -0
  108. package/public/style-dictionary/src/type.js +34 -0
  109. package/public/style-dictionary/src/width.js +32 -0
  110. package/public/style-dictionary/src/z-index.js +21 -0
  111. package/public/style-dictionary/tailwind.config.js +87 -0
  112. package/public/tokens/box-shadow.d.ts +1 -0
  113. package/public/tokens/box-shadow.js +1 -0
  114. package/public/tokens/font-family.js +1 -1
  115. package/public/tokens/height.d.ts +65 -43
  116. package/public/tokens/height.js +3 -44
  117. package/public/tokens/index.d.ts +526 -173
  118. package/public/tokens/index.js +1 -1
  119. package/public/tokens/margin.d.ts +129 -47
  120. package/public/tokens/margin.js +3 -47
  121. package/public/tokens/padding.d.ts +65 -24
  122. package/public/tokens/padding.js +2 -24
  123. package/public/tokens/sizing-scale.d.ts +133 -0
  124. package/public/tokens/sizing-scale.js +136 -0
  125. package/public/tokens/width.d.ts +197 -63
  126. package/public/tokens/width.js +6 -63
  127. package/public/types/index.d.ts +14 -2
  128. package/public/types/index.js +2 -4
  129. package/src/components/Accordion/Accordion.story.mdx +232 -22
  130. package/src/components/Accordion/Accordion.tsx +228 -117
  131. package/src/components/Accordion/context.ts +60 -0
  132. package/src/components/Accordion/index.css +0 -5
  133. package/src/components/Accordion/index.ts +1 -0
  134. package/src/components/Accordion/types.ts +55 -0
  135. package/src/components/Avatar/Avatar.story.mdx +60 -0
  136. package/src/components/Avatar/AvatarGroup.tsx +11 -9
  137. package/src/components/Avatar/index.css +8 -0
  138. package/src/components/Button/Button.story.mdx +116 -1
  139. package/src/components/Button/Button.tsx +10 -4
  140. package/src/components/Button/product.css +12 -0
  141. package/src/components/Card/Card.story.mdx +11 -36
  142. package/src/components/CloseButton/CloseButton.tsx +1 -1
  143. package/src/components/ConveyorLogo/ConveyorLogo.tsx +1 -0
  144. package/src/components/Divider/Divider.tsx +26 -40
  145. package/src/components/Divider/index.css +16 -0
  146. package/src/components/Drawer/Drawer.story.mdx +68 -70
  147. package/src/components/Drawer/Drawer.tsx +10 -9
  148. package/src/components/Drawer/index.css +26 -1
  149. package/src/components/Flex/Flex.story.mdx +130 -0
  150. package/src/components/Flex/Flex.tsx +7 -6
  151. package/src/components/Flex/index.css +3 -0
  152. package/src/components/Frame/Frame.story.mdx +7 -2
  153. package/src/components/Grid/Grid.story.mdx +205 -3
  154. package/src/components/Grid/Grid.tsx +44 -5
  155. package/src/components/Grid/index.css +3 -0
  156. package/src/components/Icon/Icon.tsx +60 -5
  157. package/src/components/Icon/svg/ArrowToBottom.tsx +17 -0
  158. package/src/components/Icon/svg/CommentAltCheck.tsx +13 -0
  159. package/src/components/Icon/svg/index.ts +2 -0
  160. package/src/components/Input/Input.story.mdx +199 -13
  161. package/src/components/Input/Input.tsx +39 -6
  162. package/src/components/Input/brand.css +7 -7
  163. package/src/components/Input/index.css +30 -0
  164. package/src/components/Input/product.css +12 -48
  165. package/src/components/Loading/Loading.story.mdx +16 -9
  166. package/src/components/Loading/Loading.tsx +17 -8
  167. package/src/components/Loading/index.css +1 -67
  168. package/src/components/Markdown/Markdown.story.mdx +67 -0
  169. package/src/components/Markdown/Markdown.tsx +3 -2
  170. package/src/components/MarkdownEditor/MarkdownEditor.tsx +2 -3
  171. package/src/components/MarkdownEditor/MarkdownHelp.tsx +7 -10
  172. package/src/components/MarkdownEditor/index.css +5 -1
  173. package/src/components/MenuRenderer/MenuRenderer.tsx +9 -7
  174. package/src/components/Modal/Modal.story.mdx +26 -0
  175. package/src/components/Modal/Modal.tsx +60 -42
  176. package/src/components/Modal/context.ts +20 -0
  177. package/src/components/Modal/index.ts +1 -0
  178. package/src/components/OptionButton/OptionButton.story.mdx +119 -20
  179. package/src/components/OptionButton/OptionButton.tsx +211 -23
  180. package/src/components/OptionButton/context.ts +22 -0
  181. package/src/components/OptionButton/index.css +1 -2
  182. package/src/components/Overlay/Overlay.tsx +2 -3
  183. package/src/components/Overlay/index.css +1 -0
  184. package/src/components/Paragraph/Paragraph.story.mdx +16 -2
  185. package/src/components/Paragraph/Paragraph.tsx +5 -13
  186. package/src/components/Paragraph/index.css +6 -0
  187. package/src/components/Popover/index.css +5 -6
  188. package/src/components/Reference/Reference.tsx +2 -2
  189. package/src/components/Select/Select.story.mdx +23 -10
  190. package/src/components/Select/Select.tsx +31 -6
  191. package/src/components/Snackbar/Snackbar.story.mdx +96 -9
  192. package/src/components/Snackbar/Snackbar.tsx +56 -145
  193. package/src/components/Snackbar/SnackbarProvider.tsx +31 -0
  194. package/src/components/Snackbar/constants.ts +2 -0
  195. package/src/components/Snackbar/context.ts +20 -0
  196. package/src/components/Snackbar/helpers.tsx +52 -0
  197. package/src/components/Snackbar/hooks.ts +57 -0
  198. package/src/components/Snackbar/index.ts +6 -0
  199. package/src/components/Snackbar/types.ts +180 -0
  200. package/src/components/SpeechBubble/SpeechBubble.story.mdx +76 -0
  201. package/src/components/SpeechBubble/SpeechBubble.tsx +22 -1
  202. package/src/components/SpeechBubble/index.css +7 -4
  203. package/src/components/Table/Table.story.mdx +243 -0
  204. package/src/components/Table/Table.tsx +36 -1
  205. package/src/components/Table/TableCell.tsx +24 -1
  206. package/src/components/Table/TableHeaderCell.tsx +64 -11
  207. package/src/components/Table/index.css +138 -10
  208. package/src/components/Table/index.ts +3 -0
  209. package/src/components/Tag/Tag.tsx +2 -2
  210. package/src/components/Toast/Toast.story.mdx +1 -1
  211. package/src/components/Toast/Toast.tsx +14 -10
  212. package/src/components/Toast/index.css +4 -2
  213. package/src/components/Toggle/index.css +2 -3
  214. package/src/css/base.css +6 -561
  215. package/src/css/components.css +4 -9
  216. package/src/css/fonts.css +13 -10
  217. package/src/css/styles.css +0 -1
  218. package/src/css/utilities/animations.css +13 -0
  219. package/src/docs/Typography.story.mdx +12 -9
  220. package/src/index.ts +0 -15
  221. package/src/storybook-components/ComponentHeading.tsx +4 -19
  222. package/src/storybook-components/ComponentStatus.tsx +4 -0
  223. package/src/storybook-components/index.tsx +1 -1
  224. package/src/tokens/box-shadow.ts +1 -0
  225. package/src/tokens/font-family.ts +1 -1
  226. package/src/tokens/height.ts +3 -44
  227. package/src/tokens/index.ts +2 -2
  228. package/src/tokens/margin.ts +4 -47
  229. package/src/tokens/padding.ts +3 -24
  230. package/src/tokens/sizing-scale.ts +134 -0
  231. package/src/tokens/width.ts +7 -63
  232. package/src/types/index.ts +34 -5
  233. package/public/components/Absolute/Absolute.d.ts +0 -2
  234. package/public/components/Absolute/Absolute.js +0 -14
  235. package/public/components/Absolute/index.d.ts +0 -1
  236. package/public/components/Absolute/index.js +0 -5
  237. package/public/components/Appbar/Appbar.d.ts +0 -40
  238. package/public/components/Appbar/Appbar.js +0 -29
  239. package/public/components/Appbar/AppbarLogo.d.ts +0 -2
  240. package/public/components/Appbar/AppbarLogo.js +0 -19
  241. package/public/components/Appbar/AppbarTabs.d.ts +0 -10
  242. package/public/components/Appbar/AppbarTabs.js +0 -42
  243. package/public/components/Appbar/AppbarUser.d.ts +0 -26
  244. package/public/components/Appbar/AppbarUser.js +0 -60
  245. package/public/components/Appbar/config.d.ts +0 -7
  246. package/public/components/Appbar/config.js +0 -13
  247. package/public/components/Appbar/index.d.ts +0 -1
  248. package/public/components/Appbar/index.js +0 -13
  249. package/public/components/ArrowButton/ArrowButton.d.ts +0 -9
  250. package/public/components/ArrowButton/ArrowButton.js +0 -22
  251. package/public/components/ArrowButton/index.d.ts +0 -1
  252. package/public/components/ArrowButton/index.js +0 -13
  253. package/public/components/ArrowLink/ArrowLink.d.ts +0 -9
  254. package/public/components/ArrowLink/ArrowLink.js +0 -21
  255. package/public/components/ArrowLink/index.d.ts +0 -1
  256. package/public/components/ArrowLink/index.js +0 -13
  257. package/public/components/Aside/Aside.d.ts +0 -14
  258. package/public/components/Aside/Aside.js +0 -28
  259. package/public/components/Aside/index.d.ts +0 -1
  260. package/public/components/Aside/index.js +0 -13
  261. package/public/components/Fixed/Fixed.d.ts +0 -2
  262. package/public/components/Fixed/Fixed.js +0 -14
  263. package/public/components/Fixed/Fixed.story.d.ts +0 -1
  264. package/public/components/Fixed/Fixed.story.js +0 -12
  265. package/public/components/Fixed/index.d.ts +0 -1
  266. package/public/components/Fixed/index.js +0 -5
  267. package/public/components/Flex/Flex.story.d.ts +0 -1
  268. package/public/components/Flex/Flex.story.js +0 -12
  269. package/public/components/IntegrationLogo/IntegrationLogo.d.ts +0 -10
  270. package/public/components/IntegrationLogo/IntegrationLogo.js +0 -33
  271. package/public/components/IntegrationLogo/IntegrationLogoSvg.d.ts +0 -9
  272. package/public/components/IntegrationLogo/IntegrationLogoSvg.js +0 -52
  273. package/public/components/IntegrationLogo/index.d.ts +0 -1
  274. package/public/components/IntegrationLogo/index.js +0 -13
  275. package/public/components/IntegrationLogo/svg/addigy.d.ts +0 -2
  276. package/public/components/IntegrationLogo/svg/addigy.js +0 -17
  277. package/public/components/IntegrationLogo/svg/aws.d.ts +0 -2
  278. package/public/components/IntegrationLogo/svg/aws.js +0 -22
  279. package/public/components/IntegrationLogo/svg/bamboohr.d.ts +0 -2
  280. package/public/components/IntegrationLogo/svg/bamboohr.js +0 -18
  281. package/public/components/IntegrationLogo/svg/bitbucket.d.ts +0 -2
  282. package/public/components/IntegrationLogo/svg/bitbucket.js +0 -18
  283. package/public/components/IntegrationLogo/svg/conveyor.d.ts +0 -2
  284. package/public/components/IntegrationLogo/svg/conveyor.js +0 -20
  285. package/public/components/IntegrationLogo/svg/default.d.ts +0 -2
  286. package/public/components/IntegrationLogo/svg/default.js +0 -13
  287. package/public/components/IntegrationLogo/svg/deploy.d.ts +0 -2
  288. package/public/components/IntegrationLogo/svg/deploy.js +0 -17
  289. package/public/components/IntegrationLogo/svg/events-api.d.ts +0 -2
  290. package/public/components/IntegrationLogo/svg/events-api.js +0 -26
  291. package/public/components/IntegrationLogo/svg/gcp.d.ts +0 -3
  292. package/public/components/IntegrationLogo/svg/gcp.js +0 -15
  293. package/public/components/IntegrationLogo/svg/github.d.ts +0 -3
  294. package/public/components/IntegrationLogo/svg/github.js +0 -12
  295. package/public/components/IntegrationLogo/svg/gitlab.d.ts +0 -2
  296. package/public/components/IntegrationLogo/svg/gitlab.js +0 -19
  297. package/public/components/IntegrationLogo/svg/gsuite.d.ts +0 -2
  298. package/public/components/IntegrationLogo/svg/gsuite.js +0 -15
  299. package/public/components/IntegrationLogo/svg/index.d.ts +0 -21
  300. package/public/components/IntegrationLogo/svg/index.js +0 -54
  301. package/public/components/IntegrationLogo/svg/jamf.d.ts +0 -2
  302. package/public/components/IntegrationLogo/svg/jamf.js +0 -20
  303. package/public/components/IntegrationLogo/svg/jira.d.ts +0 -2
  304. package/public/components/IntegrationLogo/svg/jira.js +0 -21
  305. package/public/components/IntegrationLogo/svg/jumpcloud.d.ts +0 -2
  306. package/public/components/IntegrationLogo/svg/jumpcloud.js +0 -28
  307. package/public/components/IntegrationLogo/svg/okta.d.ts +0 -2
  308. package/public/components/IntegrationLogo/svg/okta.js +0 -16
  309. package/public/components/IntegrationLogo/svg/onelogin.d.ts +0 -2
  310. package/public/components/IntegrationLogo/svg/onelogin.js +0 -18
  311. package/public/components/IntegrationLogo/svg/salesforce.d.ts +0 -2
  312. package/public/components/IntegrationLogo/svg/salesforce.js +0 -20
  313. package/public/components/IntegrationLogo/svg/slack.d.ts +0 -2
  314. package/public/components/IntegrationLogo/svg/slack.js +0 -19
  315. package/public/components/IntegrationLogo/svg/wrapper.d.ts +0 -11
  316. package/public/components/IntegrationLogo/svg/wrapper.js +0 -13
  317. package/public/components/IntegrationLogo/svg/zoom.d.ts +0 -2
  318. package/public/components/IntegrationLogo/svg/zoom.js +0 -23
  319. package/public/components/Meta/Meta.d.ts +0 -6
  320. package/public/components/Meta/Meta.js +0 -21
  321. package/public/components/Meta/Meta.story.d.ts +0 -1
  322. package/public/components/Meta/Meta.story.js +0 -39
  323. package/public/components/Meta/index.d.ts +0 -1
  324. package/public/components/Meta/index.js +0 -5
  325. package/public/components/PropertyDiff/PropertyDiff.d.ts +0 -7
  326. package/public/components/PropertyDiff/PropertyDiff.js +0 -22
  327. package/public/components/PropertyDiff/index.d.ts +0 -1
  328. package/public/components/PropertyDiff/index.js +0 -13
  329. package/public/components/Relative/Relative.d.ts +0 -2
  330. package/public/components/Relative/Relative.js +0 -14
  331. package/public/components/Relative/Relative.story.d.ts +0 -1
  332. package/public/components/Relative/Relative.story.js +0 -12
  333. package/public/components/Relative/index.d.ts +0 -1
  334. package/public/components/Relative/index.js +0 -5
  335. package/public/components/SpeechBubble/SpeechBubble.story.d.ts +0 -1
  336. package/public/components/SpeechBubble/SpeechBubble.story.js +0 -19
  337. package/public/components/StatusLabel/StatusLabel.d.ts +0 -16
  338. package/public/components/StatusLabel/StatusLabel.js +0 -40
  339. package/public/components/StatusLabel/index.d.ts +0 -1
  340. package/public/components/StatusLabel/index.js +0 -13
  341. package/public/components/StatusPanel/StatusPanel.d.ts +0 -11
  342. package/public/components/StatusPanel/StatusPanel.js +0 -24
  343. package/public/components/StatusPanel/index.d.ts +0 -1
  344. package/public/components/StatusPanel/index.js +0 -13
  345. package/public/components/Sticky/Sticky.d.ts +0 -2
  346. package/public/components/Sticky/Sticky.js +0 -14
  347. package/public/components/Sticky/Sticky.story.d.ts +0 -1
  348. package/public/components/Sticky/Sticky.story.js +0 -12
  349. package/public/components/Sticky/index.d.ts +0 -1
  350. package/public/components/Sticky/index.js +0 -5
  351. package/public/components/TopBar/TopBar.d.ts +0 -14
  352. package/public/components/TopBar/TopBar.js +0 -24
  353. package/public/components/TopBar/TopBarBreadcrumbs.d.ts +0 -10
  354. package/public/components/TopBar/TopBarBreadcrumbs.js +0 -34
  355. package/public/components/TopBar/TopBarSubNav.d.ts +0 -2
  356. package/public/components/TopBar/TopBarSubNav.js +0 -16
  357. package/public/components/TopBar/TopBarSubNavItem.d.ts +0 -5
  358. package/public/components/TopBar/TopBarSubNavItem.js +0 -17
  359. package/public/components/TopBar/index.d.ts +0 -1
  360. package/public/components/TopBar/index.js +0 -13
  361. package/public/components/VendorLogo/VendorLogo.d.ts +0 -20
  362. package/public/components/VendorLogo/VendorLogo.js +0 -57
  363. package/public/components/VendorLogo/index.d.ts +0 -1
  364. package/public/components/VendorLogo/index.js +0 -13
  365. package/public/storybook-components/TailwindPropertyClasses.d.ts +0 -9
  366. package/public/storybook-components/TailwindPropertyClasses.js +0 -194
  367. package/public/tailwind.config.d.ts +0 -1
  368. package/public/tailwind.config.js +0 -4
  369. package/public/tokens/_tailwind-config.d.ts +0 -810
  370. package/public/tokens/_tailwind-config.js +0 -50
  371. package/src/components/Absolute/Absolute.story.mdx +0 -26
  372. package/src/components/Absolute/Absolute.tsx +0 -9
  373. package/src/components/Absolute/index.ts +0 -1
  374. package/src/components/Appbar/Appbar.story.mdx +0 -118
  375. package/src/components/Appbar/Appbar.tsx +0 -64
  376. package/src/components/Appbar/AppbarLogo.tsx +0 -29
  377. package/src/components/Appbar/AppbarTabs.tsx +0 -47
  378. package/src/components/Appbar/AppbarUser.tsx +0 -144
  379. package/src/components/Appbar/config.ts +0 -12
  380. package/src/components/Appbar/index.css +0 -203
  381. package/src/components/Appbar/index.ts +0 -1
  382. package/src/components/ArrowButton/ArrowButton.story.mdx +0 -110
  383. package/src/components/ArrowButton/ArrowButton.tsx +0 -54
  384. package/src/components/ArrowButton/index.css +0 -42
  385. package/src/components/ArrowButton/index.ts +0 -1
  386. package/src/components/ArrowLink/ArrowLink.story.mdx +0 -65
  387. package/src/components/ArrowLink/ArrowLink.tsx +0 -42
  388. package/src/components/ArrowLink/index.ts +0 -1
  389. package/src/components/Aside/Aside.story.mdx +0 -65
  390. package/src/components/Aside/Aside.tsx +0 -59
  391. package/src/components/Aside/index.css +0 -11
  392. package/src/components/Aside/index.ts +0 -1
  393. package/src/components/Fixed/Fixed.md +0 -16
  394. package/src/components/Fixed/Fixed.story.tsx +0 -12
  395. package/src/components/Fixed/Fixed.tsx +0 -9
  396. package/src/components/Fixed/index.ts +0 -1
  397. package/src/components/Flex/Flex.md +0 -14
  398. package/src/components/Flex/Flex.story.tsx +0 -12
  399. package/src/components/IntegrationLogo/IntegrationLogo.story.mdx +0 -159
  400. package/src/components/IntegrationLogo/IntegrationLogo.tsx +0 -54
  401. package/src/components/IntegrationLogo/IntegrationLogoSvg.tsx +0 -79
  402. package/src/components/IntegrationLogo/index.ts +0 -1
  403. package/src/components/IntegrationLogo/svg/addigy.tsx +0 -23
  404. package/src/components/IntegrationLogo/svg/aws.tsx +0 -52
  405. package/src/components/IntegrationLogo/svg/bamboohr.tsx +0 -34
  406. package/src/components/IntegrationLogo/svg/bitbucket.tsx +0 -37
  407. package/src/components/IntegrationLogo/svg/conveyor.tsx +0 -41
  408. package/src/components/IntegrationLogo/svg/default.tsx +0 -11
  409. package/src/components/IntegrationLogo/svg/deploy.tsx +0 -29
  410. package/src/components/IntegrationLogo/svg/events-api.tsx +0 -75
  411. package/src/components/IntegrationLogo/svg/gcp.tsx +0 -26
  412. package/src/components/IntegrationLogo/svg/github.tsx +0 -14
  413. package/src/components/IntegrationLogo/svg/gitlab.tsx +0 -40
  414. package/src/components/IntegrationLogo/svg/gsuite.tsx +0 -24
  415. package/src/components/IntegrationLogo/svg/index.ts +0 -21
  416. package/src/components/IntegrationLogo/svg/jamf.tsx +0 -36
  417. package/src/components/IntegrationLogo/svg/jira.tsx +0 -44
  418. package/src/components/IntegrationLogo/svg/jumpcloud.tsx +0 -86
  419. package/src/components/IntegrationLogo/svg/okta.tsx +0 -28
  420. package/src/components/IntegrationLogo/svg/onelogin.tsx +0 -34
  421. package/src/components/IntegrationLogo/svg/salesforce.tsx +0 -39
  422. package/src/components/IntegrationLogo/svg/slack.tsx +0 -40
  423. package/src/components/IntegrationLogo/svg/wrapper.tsx +0 -35
  424. package/src/components/IntegrationLogo/svg/zoom.tsx +0 -51
  425. package/src/components/Meta/Meta.md +0 -14
  426. package/src/components/Meta/Meta.story.tsx +0 -24
  427. package/src/components/Meta/Meta.tsx +0 -26
  428. package/src/components/Meta/index.ts +0 -1
  429. package/src/components/PropertyDiff/PropertDiff.story.mdx +0 -46
  430. package/src/components/PropertyDiff/PropertyDiff.tsx +0 -48
  431. package/src/components/PropertyDiff/index.css +0 -33
  432. package/src/components/PropertyDiff/index.ts +0 -1
  433. package/src/components/Relative/Relative.md +0 -16
  434. package/src/components/Relative/Relative.story.tsx +0 -12
  435. package/src/components/Relative/Relative.tsx +0 -9
  436. package/src/components/Relative/index.ts +0 -1
  437. package/src/components/SpeechBubble/SpeechBubble.md +0 -14
  438. package/src/components/SpeechBubble/SpeechBubble.story.tsx +0 -26
  439. package/src/components/StatusLabel/StatusLabel.story.mdx +0 -316
  440. package/src/components/StatusLabel/StatusLabel.tsx +0 -112
  441. package/src/components/StatusLabel/index.css +0 -23
  442. package/src/components/StatusLabel/index.ts +0 -1
  443. package/src/components/StatusPanel/StatusPanel.story.mdx +0 -109
  444. package/src/components/StatusPanel/StatusPanel.tsx +0 -51
  445. package/src/components/StatusPanel/index.css +0 -52
  446. package/src/components/StatusPanel/index.ts +0 -1
  447. package/src/components/Sticky/Sticky.md +0 -16
  448. package/src/components/Sticky/Sticky.story.tsx +0 -12
  449. package/src/components/Sticky/Sticky.tsx +0 -9
  450. package/src/components/Sticky/index.ts +0 -1
  451. package/src/components/TopBar/TopBar.story.mdx +0 -154
  452. package/src/components/TopBar/TopBar.tsx +0 -40
  453. package/src/components/TopBar/TopBarBreadcrumbs.tsx +0 -79
  454. package/src/components/TopBar/TopBarSubNav.tsx +0 -19
  455. package/src/components/TopBar/TopBarSubNavItem.tsx +0 -21
  456. package/src/components/TopBar/index.css +0 -102
  457. package/src/components/TopBar/index.ts +0 -1
  458. package/src/components/VendorLogo/VendorLogo.story.mdx +0 -209
  459. package/src/components/VendorLogo/VendorLogo.tsx +0 -110
  460. package/src/components/VendorLogo/index.css +0 -46
  461. package/src/components/VendorLogo/index.ts +0 -1
  462. package/src/docs/TailwindClasses.story.mdx +0 -15
  463. package/src/docs/brand-components/BrandButton.story.mdx +0 -103
  464. package/src/docs/brand-components/BrandCheckbox.story.mdx +0 -63
  465. package/src/docs/brand-components/BrandFormGroup.story.mdx +0 -76
  466. package/src/docs/brand-components/BrandInput.story.mdx +0 -41
  467. package/src/docs/brand-components/BrandRadio.story.mdx +0 -45
  468. package/src/docs/brand-components/BrandTextArea.story.mdx +0 -41
  469. package/src/storybook-components/TailwindPropertyClasses.tsx +0 -285
  470. package/src/tailwind.config.ts +0 -6
  471. package/src/tokens/_tailwind-config.ts +0 -69
@@ -1,122 +1,255 @@
1
- import React, { ReactNode, useCallback, useRef, useState } from "react";
1
+ import React from "react";
2
2
  import classNames from "classnames";
3
- import { Transition } from "react-spring/renderprops";
3
+ import { animated, useSpring } from "@react-spring/web";
4
4
  import useComponentSize from "@rehooks/component-size";
5
5
  import { useId } from "@reach/auto-id";
6
+ import mergeRefs from "react-merge-refs";
7
+
8
+ import { bemHOF } from "../../utilities";
9
+ import { useDisclosure } from "../../hooks";
10
+ import { ORIENTATION } from "../../types";
6
11
 
7
12
  import { BoxProps, Box } from "../Box";
8
13
  import { Flex } from "../Flex";
14
+ import { Stack, StackProps } from "../Stack";
9
15
  import { Heading } from "../Heading";
10
16
  import { Icon, ICON_TYPE } from "../Icon";
11
- import { bemHOF } from "../../utilities/bem";
12
- import { useDisclosure } from "../../hooks";
17
+
18
+ import type {
19
+ AccordionOwnProps,
20
+ AccordionItemOwnProps,
21
+ AccordionDisclosureProps,
22
+ AccordionGroupOwnProps,
23
+ } from "./types";
24
+ import {
25
+ AccordionItemContext,
26
+ useAccordionItemContext,
27
+ AccordionGroupContext,
28
+ useAccordionGroupContext,
29
+ } from "./context";
13
30
 
14
31
  const cn = bemHOF("Accordion");
15
32
 
16
- export interface AccordionProps extends BoxProps {
17
- /**
18
- * The displayed text of the `Accordion` when closed
19
- */
20
- title: string;
33
+ /**
34
+ * Accordion.Group
35
+ * =============================================================================
36
+ */
37
+ export type AccordionGroupProps = AccordionGroupOwnProps &
38
+ Pick<StackProps, "children" | "spacing">;
21
39
 
22
- /**
23
- * If true, this shows a green indicator next to the title
24
- */
25
- isActive?: boolean;
40
+ export const AccordionGroup = ({
41
+ children,
42
+ spacing = 0,
43
+ defaultValue,
44
+ ...rest
45
+ }: AccordionGroupProps) => {
46
+ return (
47
+ <AccordionGroupContext.Provider value={{ defaultValue }}>
48
+ <Stack orientation={ORIENTATION.VERTICAL} spacing={spacing} {...rest}>
49
+ {children}
50
+ </Stack>
51
+ </AccordionGroupContext.Provider>
52
+ );
53
+ };
26
54
 
27
- /**
28
- * CSS value to define a max height of the opened Accordion content.
29
- * If the children exceed the height of the container, it will scroll.
30
- */
31
- maxHeight?: string;
55
+ /**
56
+ * Accordion.Item
57
+ * =============================================================================
58
+ */
59
+ export type AccordionItemProps = AccordionItemOwnProps & BoxProps;
32
60
 
33
- /**
34
- * Whether or not the accordion item is open / visible.
35
- */
36
- defaultIsOpen?: boolean;
61
+ export const AccordionItem = ({
62
+ value,
63
+ defaultIsOpen: defaultIsOpenProp,
64
+ children,
65
+ className,
66
+ ...rest
67
+ }: AccordionItemProps) => {
68
+ const { defaultValue } = useAccordionGroupContext();
37
69
 
38
70
  /**
39
- * Add an icon or integration logo to the left of the header title
71
+ * To remain backwards compatible with the `defaultIsOpen` prop, we need to
72
+ * perform an extra conditional check to determine if `defaultIsOpenProp`
73
+ * has been defined.
40
74
  */
41
- iconSlot?: ReactNode;
75
+ const hasDefaultValue =
76
+ typeof defaultValue === "undefined" ? false : defaultValue === value;
77
+ const defaultIsOpen =
78
+ typeof defaultIsOpenProp === "undefined"
79
+ ? hasDefaultValue
80
+ : defaultIsOpenProp;
42
81
 
43
- /**
44
- * Removes padding from the Accordion's content
45
- */
46
- removePadding?: ReactNode;
47
- }
82
+ const { isOpen, onToggle } = useDisclosure(defaultIsOpen);
83
+ const id = `accordion-${useId()}`;
84
+ const buttonId = `${id}-button`;
85
+ const contentId = `${id}-content`;
48
86
 
49
- export const AccordionGroup = ({
50
- children,
51
- className,
52
- ...rest
53
- }: {
54
- children: ReactNode;
87
+ return (
88
+ <AccordionItemContext.Provider
89
+ value={{
90
+ defaultIsOpen,
91
+ isOpen,
92
+ onToggle,
93
+ buttonId,
94
+ contentId,
95
+ }}
96
+ >
97
+ <Box
98
+ data-component="accordion"
99
+ className={classNames(cn(), className, {
100
+ [cn({ m: "isOpen" })]: isOpen,
101
+ })}
102
+ {...rest}
103
+ >
104
+ {children}
105
+ </Box>
106
+ </AccordionItemContext.Provider>
107
+ );
108
+ };
109
+
110
+ /**
111
+ * Accordion.Button
112
+ * =============================================================================
113
+ */
114
+ type AccordionButtonChildProps = Omit<AccordionDisclosureProps, "onToggle">;
115
+ type AccordionButtonChildFunction = {
116
+ children(props: AccordionButtonChildProps): React.ReactNode;
117
+ };
118
+ type AccordionButtonOwnProps =
119
+ | AccordionButtonChildFunction
120
+ | { children: React.ReactNode };
121
+
122
+ export type AccordionButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> &
123
+ AccordionButtonOwnProps;
124
+
125
+ export const AccordionButton = React.forwardRef<
126
+ HTMLButtonElement,
127
+ AccordionButtonProps
128
+ >((props, forwardedRef) => {
129
+ const { children, className, onClick, disabled = false, ...rest } = props;
130
+ const { buttonId, contentId, isOpen, onToggle } = useAccordionItemContext();
131
+ const buttonRef = React.useRef<HTMLButtonElement>(null);
132
+ const ref = mergeRefs<HTMLButtonElement>([forwardedRef, buttonRef]);
133
+
134
+ return (
135
+ <button
136
+ ref={ref}
137
+ type="button"
138
+ className={className}
139
+ id={buttonId}
140
+ aria-controls={contentId}
141
+ aria-expanded={isOpen}
142
+ aria-disabled={disabled}
143
+ disabled={disabled}
144
+ onClick={(event: React.MouseEvent<HTMLButtonElement>) => {
145
+ if (onClick) {
146
+ onClick(event);
147
+ }
148
+ if (onToggle) {
149
+ onToggle();
150
+ }
151
+ }}
152
+ {...rest}
153
+ >
154
+ {typeof children === "function" ? children({ isOpen }) : children}
155
+ </button>
156
+ );
157
+ });
158
+
159
+ /**
160
+ * Accordion.Content
161
+ * =============================================================================
162
+ */
163
+ export type AccordionContentProps = {
164
+ children: React.ReactNode;
165
+ maxHeight?: string;
166
+ style?: React.CSSProperties;
55
167
  className?: string;
56
- }) => (
57
- <Flex className={classNames("flex-col", className)} {...rest}>
58
- {children}
59
- </Flex>
60
- );
61
-
62
- export const Accordion = ({
63
- title,
64
- isActive,
65
- maxHeight,
168
+ };
169
+
170
+ export const AccordionContent = ({
66
171
  children,
67
- defaultIsOpen = false,
68
- iconSlot,
172
+ maxHeight,
173
+ style,
69
174
  className,
70
- removePadding,
71
175
  ...rest
72
- }: AccordionProps) => {
73
- const { isOpen, onToggle } = useDisclosure(defaultIsOpen);
74
- const buttonRef = useRef<HTMLButtonElement>(null);
75
-
76
- const [childrenRef, setChildrenRef] = useState<
176
+ }: AccordionContentProps) => {
177
+ const {
178
+ buttonId,
179
+ contentId,
180
+ defaultIsOpen,
181
+ isOpen,
182
+ } = useAccordionItemContext();
183
+ const [childrenRef, setChildrenRef] = React.useState<
77
184
  React.MutableRefObject<null | HTMLDivElement>
78
185
  >({ current: null });
79
- const onRefChange = useCallback((node) => {
186
+
187
+ const onRefChange = React.useCallback((node) => {
80
188
  if (node !== null) {
81
189
  setChildrenRef({ current: node });
82
190
  }
83
191
  }, []);
84
192
 
85
- const { height } = useComponentSize(childrenRef);
86
- const heightObj = { height };
87
-
88
- const id = `accordion:${useId()}`;
89
- const buttonId = `${id}-button`;
90
- const contentId = `${id}-content`;
91
-
92
- const [enableTransition, setEnableTransition] = useState(!defaultIsOpen);
193
+ const { height: componentHeight } = useComponentSize(childrenRef);
194
+ const [enableTransition, setEnableTransition] = React.useState(
195
+ !defaultIsOpen,
196
+ );
93
197
 
94
- const handleItemClick = () => {
95
- if (isOpen && buttonRef.current !== null) {
96
- buttonRef.current.blur();
97
- }
98
- onToggle();
99
- };
198
+ const { height } = useSpring({
199
+ height: isOpen ? componentHeight : 0,
200
+ immediate: !enableTransition,
201
+ onRest: () => {
202
+ if (defaultIsOpen && isOpen) {
203
+ setEnableTransition(true);
204
+ }
205
+ },
206
+ });
100
207
 
101
208
  return (
102
- <Box
103
- className={classNames(cn(), className, {
104
- [cn({ m: "isOpen" })]: isOpen,
105
- })}
209
+ <animated.div
210
+ className={classNames("overflow-hidden box-content", className)}
211
+ style={{ ...style, height }}
212
+ aria-labelledby={buttonId}
213
+ id={contentId}
214
+ role="region"
106
215
  {...rest}
107
216
  >
217
+ <Box
218
+ ref={onRefChange}
219
+ className={classNames(maxHeight && "overflow-y-auto")}
220
+ style={maxHeight ? { maxHeight } : undefined}
221
+ >
222
+ {children}
223
+ </Box>
224
+ </animated.div>
225
+ );
226
+ };
227
+
228
+ /**
229
+ * Accordion
230
+ * =============================================================================
231
+ */
232
+ export type AccordionProps = AccordionOwnProps & BoxProps;
233
+
234
+ export const Accordion = (props: AccordionProps) => {
235
+ const {
236
+ title,
237
+ isActive,
238
+ maxHeight,
239
+ children,
240
+ iconSlot,
241
+ className,
242
+ removePadding,
243
+ ...rest
244
+ } = props;
245
+
246
+ return (
247
+ <AccordionItem className={className} {...rest}>
108
248
  <Heading.H5>
109
- <button
110
- type="button"
111
- onClick={handleItemClick}
249
+ <AccordionButton
112
250
  className={classNames(cn({ e: "button" }), {
113
251
  [cn({ e: "button", m: "isActive" })]: isActive,
114
252
  })}
115
- ref={buttonRef}
116
- id={buttonId}
117
- aria-controls={contentId}
118
- aria-expanded={isOpen}
119
- aria-disabled="false"
120
253
  >
121
254
  <Flex className="items-center" as="span">
122
255
  {iconSlot && (
@@ -130,45 +263,23 @@ export const Accordion = ({
130
263
  icon={ICON_TYPE.CHEVRON_DOWN}
131
264
  className={cn({ e: "chevronIcon" })}
132
265
  />
133
- </button>
266
+ </AccordionButton>
134
267
  </Heading.H5>
135
- <Transition
136
- items={isOpen}
137
- from={{ height: 0 }}
138
- enter={{ height }}
139
- leave={{ height: 0 }}
140
- update={heightObj}
141
- onRest={() => {
142
- if (defaultIsOpen && isOpen) {
143
- setEnableTransition(true);
144
- }
145
- }}
146
- immediate={!enableTransition}
147
- >
148
- {(show) => {
149
- return (
150
- show &&
151
- ((props) => (
152
- <div style={props} className={cn({ e: "content" })}>
153
- <Box
154
- ref={onRefChange}
155
- className={classNames(
156
- cn({ e: "children" }),
157
- !removePadding && cn({ e: "children", m: "padded" }),
158
- )}
159
- style={maxHeight ? { maxHeight } : undefined}
160
- id={contentId}
161
- aria-labelledby={buttonId}
162
- >
163
- {children}
164
- </Box>
165
- </div>
166
- ))
167
- );
168
- }}
169
- </Transition>
170
- </Box>
268
+ <AccordionContent className={cn({ e: "content" })} maxHeight={maxHeight}>
269
+ <Box
270
+ className={classNames(
271
+ cn({ e: "children" }),
272
+ !removePadding && cn({ e: "children", m: "padded" }),
273
+ )}
274
+ >
275
+ {children}
276
+ </Box>
277
+ </AccordionContent>
278
+ </AccordionItem>
171
279
  );
172
280
  };
173
281
 
174
282
  Accordion.Group = AccordionGroup;
283
+ Accordion.Item = AccordionItem;
284
+ Accordion.Button = AccordionButton;
285
+ Accordion.Content = AccordionContent;
@@ -0,0 +1,60 @@
1
+ import { Context, createContext, useContext } from "react";
2
+ import type {
3
+ AccordionGroupOwnProps,
4
+ AccordionItemOwnProps,
5
+ AccordionDisclosureProps,
6
+ } from "./types";
7
+
8
+ /**
9
+ * Accordion.Group context
10
+ * =============================================================================
11
+ */
12
+ type AccordionGroupContextType = AccordionGroupOwnProps;
13
+
14
+ const defaultGroupContext: AccordionGroupContextType = {
15
+ defaultValue: undefined,
16
+ };
17
+
18
+ export const AccordionGroupContext: Context<AccordionGroupContextType> = createContext<AccordionGroupContextType>(
19
+ defaultGroupContext,
20
+ );
21
+
22
+ export function useAccordionGroupContext() {
23
+ const context = useContext<typeof defaultGroupContext>(
24
+ AccordionGroupContext,
25
+ ) || {
26
+ ...defaultGroupContext,
27
+ };
28
+
29
+ return context;
30
+ }
31
+
32
+ /**
33
+ * Accordion.Item context
34
+ * =============================================================================
35
+ */
36
+ type AccordionItemContextType = AccordionItemOwnProps &
37
+ AccordionDisclosureProps & {
38
+ buttonId: string;
39
+ contentId: string;
40
+ };
41
+
42
+ const defaultContext: AccordionItemContextType = {
43
+ defaultIsOpen: false,
44
+ isOpen: false,
45
+ onToggle: () => {},
46
+ buttonId: "accordion-0-button",
47
+ contentId: "accordion-0-content",
48
+ };
49
+
50
+ export const AccordionItemContext: Context<AccordionItemContextType> = createContext<AccordionItemContextType>(
51
+ defaultContext,
52
+ );
53
+
54
+ export function useAccordionItemContext() {
55
+ const context = useContext<typeof defaultContext>(AccordionItemContext) || {
56
+ ...defaultContext,
57
+ };
58
+
59
+ return context;
60
+ }
@@ -60,7 +60,6 @@
60
60
  border-l-4
61
61
  duration-200
62
62
  border-transparent
63
- overflow-hidden
64
63
  transition
65
64
  text-bodySm;
66
65
  }
@@ -94,10 +93,6 @@
94
93
  @apply border-gray-500;
95
94
  }
96
95
 
97
- .ads-Accordion-children {
98
- @apply overflow-y-auto;
99
- }
100
-
101
96
  .ads-Accordion-children--padded {
102
97
  @apply py-4
103
98
  pl-7
@@ -1 +1,2 @@
1
1
  export * from "./Accordion";
2
+ export * from "./context";
@@ -0,0 +1,55 @@
1
+ import type { ReactNode } from "react";
2
+ import type { DisclosureProps } from "../../types";
3
+
4
+ export type AccordionGroupOwnProps = {
5
+ /**
6
+ * The value of the item to expand when initially rendered.
7
+ */
8
+ defaultValue?: string;
9
+ };
10
+
11
+ export type AccordionItemOwnProps = {
12
+ /**
13
+ * Whether or not the accordion item is open / visible.
14
+ *
15
+ * ⚠️ **Deprecation notice** ⚠️
16
+ *
17
+ * This prop is deprecated and will be removed in the next major version. Use
18
+ * `defaultValue`/`value` combo instead to expand an item when initially
19
+ * rendered.
20
+ */
21
+ defaultIsOpen?: boolean;
22
+ /**
23
+ * A unique value for the item.
24
+ */
25
+ value?: string;
26
+ };
27
+
28
+ export type AccordionOwnProps = Pick<AccordionItemOwnProps, "defaultIsOpen"> & {
29
+ /**
30
+ * The displayed text of the `Accordion` when closed.
31
+ */
32
+ title: string;
33
+ /**
34
+ * If true, this shows a green indicator next to the title.
35
+ */
36
+ isActive?: boolean;
37
+ /**
38
+ * CSS value to define a max height of the opened Accordion content.
39
+ * If the children exceed the height of the container, it will scroll.
40
+ */
41
+ maxHeight?: string;
42
+ /**
43
+ * Add an icon or integration logo to the left of the header title.
44
+ */
45
+ iconSlot?: ReactNode;
46
+ /**
47
+ * Removes padding from the Accordion's content.
48
+ */
49
+ removePadding?: ReactNode;
50
+ };
51
+
52
+ export type AccordionDisclosureProps = Pick<
53
+ DisclosureProps,
54
+ "isOpen" | "onToggle"
55
+ >;
@@ -607,3 +607,63 @@ For best results, use the round bordered variant of the avatar.
607
607
  </Stack>
608
608
  </Story>
609
609
  </Preview>
610
+
611
+ ### Reverse direction of the group overlap stack
612
+
613
+ Pass in the `overlap-reverse` value to the `spacing` prop on the Avatar.Group to
614
+ reverse the stack direction.
615
+
616
+ <Preview>
617
+ <Story name="Avatars reverse overlapping">
618
+ <Stack orientation={ORIENTATION.VERTICAL} spacing={8}>
619
+ <Avatar.Group size="small" spacing="overlap-reverse">
620
+ {people.map((person) => (
621
+ <Avatar
622
+ key={person.email}
623
+ type={AVATAR_TYPE.USER}
624
+ email={person.email}
625
+ name={person.name}
626
+ bordered
627
+ enableTooltip
628
+ />
629
+ ))}
630
+ </Avatar.Group>
631
+ <Avatar.Group size="medium" spacing="overlap-reverse">
632
+ {people.map((person) => (
633
+ <Avatar
634
+ key={person.email}
635
+ type={AVATAR_TYPE.USER}
636
+ email={person.email}
637
+ name={person.name}
638
+ bordered
639
+ enableTooltip
640
+ />
641
+ ))}
642
+ </Avatar.Group>
643
+ <Avatar.Group size="large" spacing="overlap-reverse">
644
+ {people.map((person) => (
645
+ <Avatar
646
+ key={person.email}
647
+ type={AVATAR_TYPE.USER}
648
+ email={person.email}
649
+ name={person.name}
650
+ bordered
651
+ enableTooltip
652
+ />
653
+ ))}
654
+ </Avatar.Group>
655
+ <Avatar.Group size="xlarge" spacing="overlap-reverse">
656
+ {people.map((person) => (
657
+ <Avatar
658
+ key={person.email}
659
+ type={AVATAR_TYPE.USER}
660
+ email={person.email}
661
+ name={person.name}
662
+ bordered
663
+ enableTooltip
664
+ />
665
+ ))}
666
+ </Avatar.Group>
667
+ </Stack>
668
+ </Story>
669
+ </Preview>
@@ -33,7 +33,7 @@ export interface AvatarGroupProps extends BoxProps {
33
33
  *
34
34
  * See [spacing tokens](/?path=/docs/tokens-spacing--page).
35
35
  */
36
- spacing?: "overlap" | Spacing;
36
+ spacing?: "overlap" | "overlap-reverse" | Spacing;
37
37
  /**
38
38
  * Overrides the size prop on each Avatar within the group
39
39
  */
@@ -52,15 +52,17 @@ export const AvatarGroup = ({
52
52
  ) as ReactElement[];
53
53
  const reversedChildren = validChildren.reverse();
54
54
 
55
+ let spacingClass = "";
56
+ if (spacing === "overlap") {
57
+ spacingClass = cn({ m: "overlap" });
58
+ } else if (spacing === "overlap-reverse") {
59
+ spacingClass = cn({ m: "overlap-reverse" });
60
+ } else {
61
+ spacingClass = `gap-${spacing}`;
62
+ }
63
+
55
64
  return (
56
- <Flex
57
- className={classNames(
58
- cn(),
59
- spacing === "overlap" ? cn({ m: "overlap" }) : `gap-${spacing}`,
60
- className,
61
- )}
62
- {...rest}
63
- >
65
+ <Flex className={classNames(cn(), spacingClass, className)} {...rest}>
64
66
  <AvatarContext.Provider value={{ size }}>
65
67
  {reversedChildren}
66
68
  </AvatarContext.Provider>
@@ -78,6 +78,14 @@ override built-in Image component classes */
78
78
  items-center;
79
79
  }
80
80
 
81
+ .ads-AvatarGroup--overlap-reverse {
82
+ @apply flex-row;
83
+ }
84
+
81
85
  .ads-AvatarGroup--overlap > *:not(:first-child) {
82
86
  margin-right: -0.25em;
83
87
  }
88
+
89
+ .ads-AvatarGroup--overlap-reverse > *:not(:first-child) {
90
+ margin-left: -0.25em;
91
+ }