@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
@@ -69,3 +69,70 @@ information systems is completed.
69
69
  }}
70
70
  </Story>
71
71
  </Preview>
72
+
73
+ ### Passing in custom renderers
74
+
75
+ This example shows how you can use the `renderers` prop provided by react-markdown
76
+ to render links to open in a new window. Keep in mind that this will make all
77
+ anchor links open in a new window.
78
+
79
+ <Preview withSource={SourceState.OPEN}>
80
+ <Story name="Markdown renderers">
81
+ {() => {
82
+ const content = `
83
+ # Hello and welcome
84
+ Go to our website at [Conveyor.com](https://www.conveyor.com/). This link will
85
+ open in a **new window**. There you will find information about us
86
+ and our company.
87
+ `;
88
+ return (
89
+ <Markdown
90
+ renderers={{
91
+ link: (props) => (
92
+ <a href={props.href} target="_blank" rel="noopener noreferrer">
93
+ {props.children}
94
+ </a>
95
+ ),
96
+ }}
97
+ >
98
+ {content}
99
+ </Markdown>
100
+ );
101
+ }}
102
+ </Story>
103
+ </Preview>
104
+
105
+ ### Passing in custom renderers along with rendering plain text
106
+
107
+ When the `renderPlainText` prop is set to true, the component sets some custom
108
+ renderers internally to strip out headings, emphasized and strong text. This
109
+ example demonstrates how both sets of renders are merged into one object and
110
+ then passed onto react-markdown. Plain text is renderered along with custom
111
+ anchor links.
112
+
113
+ <Preview withSource={SourceState.OPEN}>
114
+ <Story name="Markdown renderers with renderPlainText">
115
+ {() => {
116
+ const content = `
117
+ # Hello and welcome to plain text
118
+ Go to our website at [Conveyor.com](https://www.conveyor.com/). This link will
119
+ open in a **new window**. There you will find information about us
120
+ and our company.
121
+ `;
122
+ return (
123
+ <Markdown
124
+ renderPlainText
125
+ renderers={{
126
+ link: (props) => (
127
+ <a href={props.href} target="_blank" rel="noopener noreferrer">
128
+ {props.children}
129
+ </a>
130
+ ),
131
+ }}
132
+ >
133
+ {content}
134
+ </Markdown>
135
+ );
136
+ }}
137
+ </Story>
138
+ </Preview>
@@ -26,9 +26,10 @@ export const Markdown = ({
26
26
  escapeHtml = true,
27
27
  skipHtml = false,
28
28
  renderPlainText = false,
29
+ renderers,
29
30
  ...rest
30
31
  }: MarkdownProps) => {
31
- const renderers = renderPlainText
32
+ const plainTextRenderers = renderPlainText
32
33
  ? {
33
34
  heading: TextRenderer(),
34
35
  strong: TextRenderer("span"),
@@ -42,7 +43,7 @@ export const Markdown = ({
42
43
  source={children}
43
44
  escapeHtml={escapeHtml}
44
45
  skipHtml={skipHtml}
45
- renderers={renderers}
46
+ renderers={{ ...plainTextRenderers, ...renderers }}
46
47
  {...rest}
47
48
  />
48
49
  );
@@ -9,7 +9,6 @@ import { useDisclosure } from "../../hooks";
9
9
  import { JUSTIFY } from "../../types";
10
10
  import { Box } from "../Box";
11
11
  import { Flex } from "../Flex";
12
- import { Fixed } from "../Fixed";
13
12
  import { Link } from "../Link";
14
13
  import { Markdown } from "../Markdown";
15
14
  import { Portal } from "../Portal";
@@ -99,7 +98,7 @@ export const MarkdownEditor = (props: MarkdownEditorProps) => {
99
98
  <Portal>
100
99
  <FocusLock returnFocus>
101
100
  <RemoveScroll>
102
- <Fixed className={classNames(bem(cn), showBackdrop && "bg-screen")}>
101
+ <Flex className={classNames(bem(cn), showBackdrop && "bg-screen")}>
103
102
  <Flex className={bem(cn, { e: "popover" })}>
104
103
  <Box className="w-1/2">
105
104
  <CodeMirror
@@ -161,7 +160,7 @@ export const MarkdownEditor = (props: MarkdownEditorProps) => {
161
160
  </Flex>
162
161
  )}
163
162
  </Flex>
164
- </Fixed>
163
+ </Flex>
165
164
  </RemoveScroll>
166
165
  </FocusLock>
167
166
  </Portal>
@@ -1,11 +1,8 @@
1
1
  import React from "react";
2
2
  import { bem } from "../../utilities/bem";
3
3
  import { Box } from "../Box";
4
- import { Fixed } from "../Fixed";
5
4
  import { Heading } from "../Heading";
6
5
  import { Paragraph } from "../Paragraph";
7
- import { Relative } from "../Relative";
8
- import { Absolute } from "../Absolute";
9
6
  import { CloseButton } from "../CloseButton";
10
7
 
11
8
  const cn = "MarkdownHelp";
@@ -41,14 +38,14 @@ export const MarkdownHelp = ({
41
38
  onClose: () => void;
42
39
  }) => {
43
40
  return isOpen ? (
44
- <Fixed className={bem(cn)}>
45
- <Fixed className={bem(cn, { e: "panel" })}>
46
- <Relative className={bem(cn, { e: "header" })}>
41
+ <Box className={bem(cn)}>
42
+ <Box className={bem(cn, { e: "panel" })}>
43
+ <Box className={bem(cn, { e: "header" })}>
47
44
  <CloseButton
48
45
  className={bem(cn, { e: "closeButton" })}
49
46
  onClick={onClose}
50
47
  />
51
- </Relative>
48
+ </Box>
52
49
 
53
50
  <Box className={bem(cn, { e: "scrollBox" })}>
54
51
  <Heading.H2 className="text-gray-400">Markdown help</Heading.H2>
@@ -128,8 +125,8 @@ export const MarkdownHelp = ({
128
125
  ]}
129
126
  </CodeExamples>
130
127
  </Box>
131
- </Fixed>
132
- <Absolute className={bem(cn, { e: "cover" })} onClick={onClose} />
133
- </Fixed>
128
+ </Box>
129
+ <Box className={bem(cn, { e: "cover" })} onClick={onClose} />
130
+ </Box>
134
131
  ) : null;
135
132
  };
@@ -7,7 +7,7 @@
7
7
  @apply top-0
8
8
  left-0
9
9
  z-modal
10
- flex
10
+ fixed
11
11
  items-center
12
12
  justify-center
13
13
  w-screen
@@ -64,6 +64,7 @@
64
64
  justify-center
65
65
  top-0
66
66
  left-0
67
+ fixed
67
68
  z-toast
68
69
  w-screen
69
70
  h-screen;
@@ -72,6 +73,7 @@
72
73
  .ads-MarkdownHelp-panel {
73
74
  @apply bg-gray-900
74
75
  rounded
76
+ fixed
75
77
  z-default
76
78
  w-full
77
79
  max-w-lg;
@@ -81,6 +83,7 @@
81
83
 
82
84
  .ads-MarkdownHelp-header {
83
85
  @apply h-10
86
+ relative
84
87
  w-full;
85
88
  }
86
89
 
@@ -102,6 +105,7 @@
102
105
  .ads-MarkdownHelp-cover {
103
106
  @apply top-0
104
107
  left-0
108
+ absolute
105
109
  w-full
106
110
  h-full;
107
111
  }
@@ -8,7 +8,7 @@ import React, {
8
8
  import { useId } from "@reach/auto-id";
9
9
  import FocusLock from "react-focus-lock";
10
10
  import { usePopper } from "react-popper";
11
- import { animated, useTransition } from "react-spring";
11
+ import { animated, useTransition } from "@react-spring/web";
12
12
  import { easeCubicInOut } from "d3-ease";
13
13
  import { useDisclosure, useKeyPress, useOutsideClick } from "../../hooks";
14
14
  import { KEY_CODE, PopperPlacement } from "../../types";
@@ -207,7 +207,7 @@ export const MenuRenderer = ({
207
207
 
208
208
  const PortalComponent = hasPortal ? Portal : Fragment;
209
209
 
210
- const transitions = useTransition(isOpen, null, {
210
+ const transitions = useTransition(isOpen, {
211
211
  from: TRANSITION_START,
212
212
  enter: TRANSITION_END,
213
213
  leave: TRANSITION_START,
@@ -220,10 +220,10 @@ export const MenuRenderer = ({
220
220
  return (
221
221
  <Box className={className} ref={menuElement} {...rest}>
222
222
  <Box ref={setReferenceElement}>{trigger(triggerProps, triggerState)}</Box>
223
- {transitions.map(
224
- ({ item, key, props: transitionProps }) =>
223
+ {transitions(
224
+ ({ opacity, transform }, item) =>
225
225
  item && (
226
- <PortalComponent key={key}>
226
+ <PortalComponent>
227
227
  <MenuContext.Provider value={context}>
228
228
  <Box
229
229
  className={hasPortal ? "z-toast" : "z-menu"}
@@ -233,8 +233,10 @@ export const MenuRenderer = ({
233
233
  >
234
234
  <FocusLock autoFocus={autoFocus}>
235
235
  <animated.div
236
- key={key}
237
- style={transitionProps}
236
+ style={{
237
+ opacity,
238
+ transform,
239
+ }}
238
240
  ref={menuListElement}
239
241
  >
240
242
  {typeof children === "function"
@@ -1004,3 +1004,29 @@ Show a table in a modal. Set Modal.Body padding to false.
1004
1004
  }}
1005
1005
  </Story>
1006
1006
  </Preview>
1007
+
1008
+ ### Without a header
1009
+
1010
+ Hide the header to create a custom layout.
1011
+
1012
+ <Preview>
1013
+ <Story name="Without a header">
1014
+ {() => {
1015
+ const { isOpen, onOpen, onClose } = useDisclosure();
1016
+ return (
1017
+ <Fragment>
1018
+ <Button onClick={onOpen}>Show Modal without a header</Button>
1019
+ <Modal isOpen={isOpen} onClose={onClose} noHeader>
1020
+ <Box className="p-10 relative">
1021
+ <Modal.CloseButton className="absolute top-0 right-0" />
1022
+ <Box>
1023
+ I am not using any of the modal subcomponents. I am a custom
1024
+ layout.
1025
+ </Box>
1026
+ </Box>
1027
+ </Modal>
1028
+ </Fragment>
1029
+ );
1030
+ }}
1031
+ </Story>
1032
+ </Preview>
@@ -3,12 +3,13 @@ import classNames from "classnames";
3
3
  import RoModal, { ModalProps as RoModalProps } from "react-overlays/Modal";
4
4
  import { Box, BoxProps } from "../Box";
5
5
  import { Flex } from "../Flex";
6
- import { CloseButton } from "../CloseButton";
6
+ import { CloseButton, CloseButtonProps } from "../CloseButton";
7
7
  import { Stack, StackProps } from "../Stack";
8
8
  import { bem } from "../../utilities/bem";
9
9
  import { Tab } from "../Tab";
10
10
  import { Heading } from "../Heading";
11
11
  import { Overlay } from "../Overlay";
12
+ import { ModalContext, useModalContext } from "./context";
12
13
 
13
14
  const cn = "Modal";
14
15
 
@@ -93,6 +94,12 @@ export interface ModalProps extends RoModalProps {
93
94
  * Whether or not to show the backdrop overlay between the modal and the content it covers.
94
95
  */
95
96
  disableBackdrop?: boolean;
97
+ /*
98
+ * When true, the prop prevents the header from rendering and the
99
+ * following props will be ignored: `title`, `secondaryTitle`,
100
+ * `hideCloseButton`. Use when you want a custom layout.
101
+ */
102
+ noHeader?: boolean;
96
103
  }
97
104
 
98
105
  export interface ModalBodyProps extends BoxProps {
@@ -124,7 +131,7 @@ export interface ModalFooterMultiStepProps extends BoxProps {
124
131
  rightButtonLabel?: string;
125
132
  }
126
133
 
127
- const ModalHeader = (props: BoxProps) => {
134
+ export const ModalHeader = (props: BoxProps) => {
128
135
  const { className, ...rest } = props;
129
136
  return (
130
137
  <Flex
@@ -213,6 +220,17 @@ export const ModalFooterMultiStep = ({
213
220
  );
214
221
  };
215
222
 
223
+ export const ModalCloseButton = ({ className, ...rest }: CloseButtonProps) => {
224
+ const { onClose } = useModalContext();
225
+ return (
226
+ <CloseButton
227
+ className={classNames(bem(cn, { e: "close" }), className)}
228
+ onClick={onClose}
229
+ {...rest}
230
+ />
231
+ );
232
+ };
233
+
216
234
  export const Modal = (props: ModalProps) => {
217
235
  const {
218
236
  title,
@@ -227,6 +245,7 @@ export const Modal = (props: ModalProps) => {
227
245
  size = MODAL_SIZE.DEFAULT,
228
246
  center = false,
229
247
  disableBackdrop = false,
248
+ noHeader = false,
230
249
  className,
231
250
  style,
232
251
  ...rest
@@ -235,57 +254,56 @@ export const Modal = (props: ModalProps) => {
235
254
  const showHeader = title || secondaryTitle || !hideCloseButton;
236
255
 
237
256
  return (
238
- <RoModal
239
- className={classNames([
240
- bem(`${cn}Container`),
241
- enableOutsideClick && "pointer-events-none",
242
- ])}
243
- show={isOpen}
244
- onHide={onClose}
245
- autoFocus={autoFocus}
246
- keyboard={!disableEscClose}
247
- renderBackdrop={disableBackdrop ? undefined : (p) => <Overlay {...p} />}
248
- {...rest}
249
- >
250
- <Box
257
+ <ModalContext.Provider value={{ onClose }}>
258
+ <RoModal
251
259
  className={classNames([
252
- bem(cn),
253
- bem(cn, { m: size }),
254
- center && bem(cn, { m: "center" }),
255
- enableOutsideClick && "pointer-events-auto",
256
- className,
260
+ bem(`${cn}Container`),
261
+ enableOutsideClick && "pointer-events-none",
257
262
  ])}
258
- style={style}
263
+ show={isOpen}
264
+ onHide={onClose}
265
+ autoFocus={autoFocus}
266
+ keyboard={!disableEscClose}
267
+ renderBackdrop={disableBackdrop ? undefined : (p) => <Overlay {...p} />}
268
+ {...rest}
259
269
  >
260
- {showHeader && (
261
- <ModalHeader>
262
- {title && <Heading.H2>{title}</Heading.H2>}
270
+ <Box
271
+ className={classNames([
272
+ bem(cn),
273
+ bem(cn, { m: size }),
274
+ center && bem(cn, { m: "center" }),
275
+ enableOutsideClick && "pointer-events-auto",
276
+ className,
277
+ ])}
278
+ style={style}
279
+ >
280
+ {!noHeader && showHeader && (
281
+ <ModalHeader>
282
+ {title && <Heading.H2>{title}</Heading.H2>}
263
283
 
264
- <Stack className="flex-shrink-0" spacing={5}>
265
- {secondaryTitle && (
266
- <Heading.H5 className="text-gray-600">
267
- {secondaryTitle}
268
- </Heading.H5>
269
- )}
284
+ <Stack className="flex-shrink-0" spacing={5}>
285
+ {secondaryTitle && (
286
+ <Heading.H5 className="text-gray-600">
287
+ {secondaryTitle}
288
+ </Heading.H5>
289
+ )}
270
290
 
271
- {!hideCloseButton && (
272
- <CloseButton
273
- className={bem(cn, { e: "close" })}
274
- onClick={onClose}
275
- />
276
- )}
277
- </Stack>
278
- </ModalHeader>
279
- )}
291
+ {!hideCloseButton && <ModalCloseButton />}
292
+ </Stack>
293
+ </ModalHeader>
294
+ )}
280
295
 
281
- {children}
282
- </Box>
283
- </RoModal>
296
+ {children}
297
+ </Box>
298
+ </RoModal>
299
+ </ModalContext.Provider>
284
300
  );
285
301
  };
286
302
 
287
303
  Modal.Root = Modal;
288
304
  Modal.Tabs = ModalTabs;
305
+ Modal.Header = ModalHeader;
289
306
  Modal.Body = ModalBody;
290
307
  Modal.Footer = ModalFooter;
291
308
  Modal.FooterMultiStep = ModalFooterMultiStep;
309
+ Modal.CloseButton = ModalCloseButton;
@@ -0,0 +1,20 @@
1
+ import { Context, createContext, useContext } from "react";
2
+ import { DisclosureProps } from "../../types";
3
+
4
+ type ModalContextType = Partial<DisclosureProps>;
5
+
6
+ const defaultContext: ModalContextType = {
7
+ onClose: () => {},
8
+ };
9
+
10
+ export const ModalContext: Context<ModalContextType> = createContext<ModalContextType>(
11
+ defaultContext,
12
+ );
13
+
14
+ export function useModalContext() {
15
+ const context = useContext<typeof defaultContext>(ModalContext) || {
16
+ ...defaultContext,
17
+ };
18
+
19
+ return context;
20
+ }
@@ -1 +1,2 @@
1
1
  export * from "./Modal";
2
+ export * from "./context";
@@ -4,6 +4,8 @@ import { Box } from "../Box";
4
4
  import { Button, BUTTON_SIZE } from "../Button";
5
5
  import { Modal } from "../Modal";
6
6
  import { Stack } from "../Stack";
7
+ import { Flex } from "../Flex";
8
+ import { Icon, ICON_TYPE } from "../Icon";
7
9
  import { useDisclosure } from "../../hooks";
8
10
  import { JUSTIFY } from "../../types";
9
11
 
@@ -28,38 +30,140 @@ import { OptionButton } from "@conveyorhq/arrow-ds";
28
30
 
29
31
  ## Props
30
32
 
31
- These are the custom props that extend `React.HTMLProps<HTMLInputElement>`. Full list of props <a href="#all-props">below</a>.
33
+ ### OptionButton
34
+
35
+ Extends `React.HTMLProps<HTMLInputElement>`
32
36
 
33
37
  <Props of={OptionButton} />
34
38
 
39
+ ### OptionButton.Group
40
+
41
+ Extends `StackProps`
42
+
43
+ <Props of={OptionButton.Group} />
44
+
45
+ ### OptionButton.Root
46
+
47
+ Extends `React.HTMLProps<HTMLLabelElement>`
48
+
49
+ ### OptionButton.Content
50
+
51
+ Extends `BoxProps`
52
+
53
+ ### OptionButton.Heading
54
+
55
+ Extends `TextProps`
56
+
57
+ ### OptionButton.Description
58
+
59
+ Extends `TextProps`
60
+
61
+ ### OptionButton.Input
62
+
63
+ Extends `React.HTMLProps<HTMLInputElement>`
64
+
65
+ ### OptionButton.Backdrop
66
+
67
+ Extends `BoxProps`
68
+
69
+ ### OptionButton.SelectedIcon
70
+
71
+ Extends `BoxProps`
72
+
73
+ ## Component tree
74
+
75
+ Each piece of the `OptionButton` component can be used individually to create a component with a custom layout.
76
+
77
+ The component tree is as follows:
78
+
79
+ ```jsx
80
+ <OptionButton.Root>
81
+ <OptionButton.Content>
82
+ <OptionButton.Heading />
83
+ <OptionButton.Description />
84
+ </OptionButton.Content>
85
+ <OptionButton.Input />
86
+ <OptionButton.Backdrop />
87
+ <OptionButton.SelectedIcon />
88
+ </OptionButton.Root>
89
+ ```
90
+
91
+ When building a custom implementation, the following components are considered optional, which means they are not necessary for the overall structure of the component. They are also the components you’re likely to disregard if you’re building a custom layout.
92
+
93
+ - `OptionButton.Heading`
94
+ - `OptionButton.Description`
95
+ - `OptionButton.SelectedIcon`
96
+
35
97
  ## Demos
36
98
 
37
- ### Within Stack
99
+ ### Building a custom implementation
38
100
 
39
- The main use case for the option button is to display multiple within a [`Stack`](/?path=/docs/components-stack--stack) component. Make sure each option button has a unique `value` but shares the same `name`.
101
+ This example shows how you can create a list of custom checkboxes.
40
102
 
41
103
  <Preview>
42
- <Story name="Within Stack">
43
- <Stack spacing={4}>
104
+ <Story name="Custom implementation">
105
+ <OptionButton.Group name="iconTypes" type="checkbox" spacing={4}>
106
+ <OptionButton.Root className="rounded p-3">
107
+ <OptionButton.Content>
108
+ <Flex className="items-center gap-x-2">
109
+ <Icon icon={ICON_TYPE.CALCULATOR} />
110
+ <Text className="font-medium">Calculator icon</Text>
111
+ </Flex>
112
+ </OptionButton.Content>
113
+ <OptionButton.Input value="calculator" />
114
+ <OptionButton.Backdrop className="bg-white border border-border rounded" />
115
+ </OptionButton.Root>
116
+ <OptionButton.Root className="rounded p-3">
117
+ <OptionButton.Content>
118
+ <Flex className="items-center gap-x-2">
119
+ <Icon icon={ICON_TYPE.ENVELOPE} />
120
+ <Text className="font-medium">Envelope icon</Text>
121
+ </Flex>
122
+ </OptionButton.Content>
123
+ <OptionButton.Input value="envelope" />
124
+ <OptionButton.Backdrop className="bg-white border border-border rounded" />
125
+ </OptionButton.Root>
126
+ <OptionButton.Root className="rounded p-3">
127
+ <OptionButton.Content>
128
+ <Flex className="items-center gap-x-2">
129
+ <Icon icon={ICON_TYPE.PAPERCLIP} />
130
+ <Text className="font-medium">Paperclip icon</Text>
131
+ </Flex>
132
+ </OptionButton.Content>
133
+ <OptionButton.Input value="paperclip" />
134
+ <OptionButton.Backdrop className="bg-white border border-border rounded" />
135
+ </OptionButton.Root>
136
+ </OptionButton.Group>
137
+ </Story>
138
+ </Preview>
139
+
140
+ ### Within Group
141
+
142
+ The main use case for the option button is to display multiple within a group. Make sure each option button has a unique `value` but shares the same `name`.
143
+
144
+ The `name` prop can be added to `OptionButton.Group` and it will be passed onto each input.
145
+
146
+ This example renders each `OptionButton` as a radio button (default), but they can also be made checkboxes by passing `type="checkbox"` to the group or each `OptionButton`.
147
+
148
+ <Preview>
149
+ <Story name="Within Group">
150
+ <OptionButton.Group name="template" type="radio" spacing={4}>
44
151
  <OptionButton
45
152
  heading="Manual"
46
153
  description="Don’t create any tickets for me, I’ll make them myself."
47
- name="template"
48
154
  value="manual"
49
155
  />
50
156
  <OptionButton
51
157
  heading="Basic Recurring"
52
158
  description="Create tickets based on a single recurring schedule, without an asset type."
53
- name="template"
54
159
  value="basic"
55
160
  />
56
161
  <OptionButton
57
162
  heading="Asset Based"
58
163
  description="Set a default, then create individual recurring or event-based schedules for any asset."
59
- name="template"
60
164
  value="asset"
61
165
  />
62
- </Stack>
166
+ </OptionButton.Group>
63
167
  </Story>
64
168
  </Preview>
65
169
 
@@ -78,26 +182,27 @@ The main use case for the option button is to display multiple within a [`Stack`
78
182
  onClose={onClose}
79
183
  >
80
184
  <Modal.Body>
81
- <Stack spacing={4}>
185
+ <OptionButton.Group
186
+ name="template-modal"
187
+ type="radio"
188
+ spacing={4}
189
+ >
82
190
  <OptionButton
83
191
  heading="Manual"
84
192
  description="Don’t create any tickets for me, I’ll make them myself."
85
- name="template"
86
193
  value="manual"
87
194
  />
88
195
  <OptionButton
89
196
  heading="Basic Recurring"
90
197
  description="Create tickets based on a single recurring schedule, without an asset type."
91
- name="template"
92
198
  value="basic"
93
199
  />
94
200
  <OptionButton
95
201
  heading="Asset Based"
96
202
  description="Set a default, then create individual recurring or event-based schedules for any asset."
97
- name="template"
98
203
  value="asset"
99
204
  />
100
- </Stack>
205
+ </OptionButton.Group>
101
206
  </Modal.Body>
102
207
  <Modal.Footer>
103
208
  <Stack justify={JUSTIFY.END}>
@@ -110,9 +215,3 @@ The main use case for the option button is to display multiple within a [`Stack`
110
215
  }}
111
216
  </Story>
112
217
  </Preview>
113
-
114
- ## All Props
115
-
116
- Any valid attribute of `React.HTMLProps<HTMLInputElement>` is available to the option button component.
117
-
118
- <Props of={OptionButton} />