@conveyorhq/arrow-ds 2.0.0-beta.5 → 2.0.0-beta.9

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 (617) hide show
  1. package/package.json +31 -23
  2. package/public/components/Accordion/Accordion.d.ts +29 -17
  3. package/public/components/Accordion/Accordion.js +73 -53
  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/Avatar.js +20 -19
  12. package/public/components/Avatar/AvatarGroup.d.ts +1 -1
  13. package/public/components/Avatar/AvatarGroup.js +11 -1
  14. package/public/components/Button/Button.d.ts +3 -2
  15. package/public/components/Button/Button.js +5 -2
  16. package/public/components/CloseButton/CloseButton.d.ts +1 -2
  17. package/public/components/ConveyorLogo/ConveyorLogo.js +7 -7
  18. package/public/components/Divider/Divider.d.ts +1 -9
  19. package/public/components/Divider/Divider.js +13 -24
  20. package/public/components/Drawer/Drawer.js +4 -2
  21. package/public/components/Flex/Flex.js +3 -4
  22. package/public/components/Frame/Frame.d.ts +1 -1
  23. package/public/components/Grid/Grid.d.ts +2 -2
  24. package/public/components/Grid/Grid.js +9 -3
  25. package/public/components/Icon/Icon.d.ts +15 -0
  26. package/public/components/Icon/Icon.js +34 -2
  27. package/public/components/Icon/svg/ArrowToBottom.d.ts +2 -0
  28. package/public/components/Icon/svg/ArrowToBottom.js +14 -0
  29. package/public/components/Icon/svg/CommentAltCheck.d.ts +2 -0
  30. package/public/components/Icon/svg/CommentAltCheck.js +13 -0
  31. package/public/components/Icon/svg/index.d.ts +2 -0
  32. package/public/components/Icon/svg/index.js +2 -0
  33. package/public/components/Input/Input.d.ts +3 -2
  34. package/public/components/Input/Input.js +7 -6
  35. package/public/components/Loading/Loading.d.ts +3 -2
  36. package/public/components/Loading/Loading.js +4 -7
  37. package/public/components/Markdown/Markdown.d.ts +1 -1
  38. package/public/components/Markdown/Markdown.js +3 -3
  39. package/public/components/MarkdownEditor/MarkdownEditor.js +1 -2
  40. package/public/components/MarkdownEditor/MarkdownHelp.js +4 -7
  41. package/public/components/Modal/Modal.d.ts +6 -0
  42. package/public/components/Modal/Modal.js +30 -20
  43. package/public/components/Modal/context.d.ts +6 -0
  44. package/public/components/Modal/context.js +15 -0
  45. package/public/components/Modal/index.d.ts +1 -0
  46. package/public/components/Modal/index.js +1 -0
  47. package/public/components/OptionButton/OptionButton.d.ts +28 -1
  48. package/public/components/OptionButton/OptionButton.js +65 -13
  49. package/public/components/OptionButton/context.d.ts +11 -0
  50. package/public/components/OptionButton/context.js +16 -0
  51. package/public/components/Overlay/Overlay.js +2 -2
  52. package/public/components/Paragraph/Paragraph.js +3 -7
  53. package/public/components/Reference/Reference.d.ts +2 -2
  54. package/public/components/Select/Select.d.ts +1 -0
  55. package/public/components/Select/Select.js +15 -10
  56. package/public/components/Select/SelectPopover.js +6 -6
  57. package/public/components/Select/index.d.ts +2 -0
  58. package/public/components/Select/index.js +3 -0
  59. package/public/components/Select/theme.js +22 -22
  60. package/public/components/Snackbar/Snackbar.d.ts +14 -22
  61. package/public/components/Snackbar/Snackbar.js +28 -85
  62. package/public/components/Snackbar/SnackbarProvider.d.ts +2 -0
  63. package/public/components/Snackbar/SnackbarProvider.js +21 -0
  64. package/public/components/Snackbar/constants.d.ts +2 -0
  65. package/public/components/Snackbar/constants.js +5 -0
  66. package/public/components/Snackbar/context.d.ts +4 -0
  67. package/public/components/Snackbar/context.js +17 -0
  68. package/public/components/Snackbar/helpers.d.ts +3 -0
  69. package/public/components/Snackbar/helpers.js +31 -0
  70. package/public/components/Snackbar/hooks.d.ts +2 -0
  71. package/public/components/Snackbar/hooks.js +47 -0
  72. package/public/components/Snackbar/index.d.ts +6 -0
  73. package/public/components/Snackbar/index.js +6 -0
  74. package/public/components/Snackbar/types.d.ts +43 -0
  75. package/public/components/Snackbar/types.js +2 -0
  76. package/public/components/SpeechBubble/SpeechBubble.d.ts +1 -0
  77. package/public/components/SpeechBubble/SpeechBubble.js +9 -2
  78. package/public/components/Svg/Svg.d.ts +3 -3
  79. package/public/components/Svg/Svg.js +1 -2
  80. package/public/components/Table/Table.d.ts +5 -2
  81. package/public/components/Table/Table.js +11 -4
  82. package/public/components/Table/TableCell.d.ts +1 -0
  83. package/public/components/Table/TableCell.js +4 -2
  84. package/public/components/Table/TableHeaderCell.d.ts +2 -1
  85. package/public/components/Table/TableHeaderCell.js +24 -7
  86. package/public/components/Table/index.d.ts +3 -0
  87. package/public/components/Tag/Tag.d.ts +2 -2
  88. package/public/components/Toast/Toast.d.ts +3 -3
  89. package/public/components/Toast/Toast.js +6 -2
  90. package/public/components/Tooltip/Tooltip.js +24 -31
  91. package/public/components/VisuallyHidden/VisuallyHidden.d.ts +2 -1
  92. package/public/components/VisuallyHidden/VisuallyHidden.js +3 -5
  93. package/public/css/styles.css +4542 -33010
  94. package/public/css/styles.min.css +1 -1
  95. package/public/css/styles.min.css.map +1 -1
  96. package/public/hooks/index.d.ts +3 -0
  97. package/public/hooks/index.js +7 -1
  98. package/public/hooks/useMatchMedia.d.ts +1 -0
  99. package/public/hooks/useMatchMedia.js +27 -0
  100. package/public/hooks/usePrefersReducedMotion.d.ts +1 -0
  101. package/public/hooks/usePrefersReducedMotion.js +9 -0
  102. package/public/hooks/useScreenOrientation.d.ts +1 -0
  103. package/public/hooks/useScreenOrientation.js +24 -0
  104. package/public/index.d.ts +0 -15
  105. package/public/index.js +0 -15
  106. package/public/src/style-dictionary/dist/tokens.css +378 -0
  107. package/public/src/style-dictionary/dist/tokens.d.ts +428 -0
  108. package/public/src/style-dictionary/dist/tokens.js +428 -0
  109. package/public/src/style-dictionary/dist/tokens.module.js +428 -0
  110. package/public/src/style-dictionary/tailwind.config.js +87 -0
  111. package/public/storybook-components/ComponentHeading.js +3 -5
  112. package/public/storybook-components/ComponentStatus.d.ts +1 -0
  113. package/public/storybook-components/ComponentStatus.js +4 -0
  114. package/public/storybook-components/EnumTable.js +2 -1
  115. package/public/storybook-components/Story.d.ts +2 -1
  116. package/public/storybook-components/Story.js +4 -1
  117. package/public/storybook-components/index.d.ts +1 -1
  118. package/public/storybook-components/index.js +1 -1
  119. package/public/style-dictionary/dist/tokens.d.ts +433 -0
  120. package/public/style-dictionary/dist/tokens.js +426 -0
  121. package/public/style-dictionary/dist/tokens.module.d.ts +431 -0
  122. package/public/style-dictionary/dist/tokens.module.js +424 -0
  123. package/public/style-dictionary/src/border-radius.d.ts +31 -0
  124. package/public/style-dictionary/src/border-radius.js +12 -0
  125. package/public/style-dictionary/src/border-width.d.ts +21 -0
  126. package/public/style-dictionary/src/border-width.js +11 -0
  127. package/public/style-dictionary/src/color.d.ts +249 -0
  128. package/public/style-dictionary/src/color.js +99 -0
  129. package/public/style-dictionary/src/font-size.d.ts +45 -0
  130. package/public/style-dictionary/src/font-size.js +16 -0
  131. package/public/style-dictionary/src/font-weight.d.ts +13 -0
  132. package/public/style-dictionary/src/font-weight.js +8 -0
  133. package/public/style-dictionary/src/height.d.ts +215 -0
  134. package/public/style-dictionary/src/height.js +13 -0
  135. package/public/style-dictionary/src/leading.d.ts +17 -0
  136. package/public/style-dictionary/src/leading.js +9 -0
  137. package/public/style-dictionary/src/screen-width.d.ts +17 -0
  138. package/public/style-dictionary/src/screen-width.js +9 -0
  139. package/public/style-dictionary/src/shadow.d.ts +63 -0
  140. package/public/style-dictionary/src/shadow.js +20 -0
  141. package/public/style-dictionary/src/spacing.d.ts +197 -0
  142. package/public/style-dictionary/src/spacing.js +70 -0
  143. package/public/style-dictionary/src/tracking.d.ts +13 -0
  144. package/public/style-dictionary/src/tracking.js +8 -0
  145. package/public/style-dictionary/src/type.d.ts +13 -0
  146. package/public/style-dictionary/src/type.js +35 -0
  147. package/public/style-dictionary/src/width.d.ts +287 -0
  148. package/public/style-dictionary/src/width.js +32 -0
  149. package/public/style-dictionary/src/z-index.d.ts +53 -0
  150. package/public/style-dictionary/src/z-index.js +22 -0
  151. package/public/style-dictionary/tailwind.config.d.ts +392 -0
  152. package/public/style-dictionary/tailwind.config.js +66 -0
  153. package/public/tokens/box-shadow.d.ts +1 -0
  154. package/public/tokens/box-shadow.js +1 -0
  155. package/public/tokens/font-family.js +1 -1
  156. package/public/tokens/height.d.ts +65 -43
  157. package/public/tokens/height.js +3 -44
  158. package/public/tokens/index.d.ts +526 -173
  159. package/public/tokens/index.js +1 -1
  160. package/public/tokens/margin.d.ts +129 -47
  161. package/public/tokens/margin.js +3 -47
  162. package/public/tokens/padding.d.ts +65 -24
  163. package/public/tokens/padding.js +2 -24
  164. package/public/tokens/sizing-scale.d.ts +133 -0
  165. package/public/tokens/sizing-scale.js +136 -0
  166. package/public/tokens/width.d.ts +197 -63
  167. package/public/tokens/width.js +6 -63
  168. package/public/types/index.d.ts +14 -6
  169. package/public/types/index.js +3 -10
  170. package/public/utilities/index.d.ts +1 -0
  171. package/public/utilities/index.js +3 -1
  172. package/public/utilities/mergeEventHandlers.d.ts +3 -0
  173. package/public/utilities/mergeEventHandlers.js +13 -0
  174. package/src/components/Accordion/Accordion.story.mdx +232 -22
  175. package/src/components/Accordion/Accordion.tsx +237 -114
  176. package/src/components/Accordion/context.ts +60 -0
  177. package/src/components/Accordion/index.css +0 -5
  178. package/src/components/Accordion/index.ts +1 -0
  179. package/src/components/Accordion/types.ts +55 -0
  180. package/src/components/Avatar/Avatar.story.mdx +60 -0
  181. package/src/components/Avatar/Avatar.tsx +20 -19
  182. package/src/components/Avatar/AvatarGroup.tsx +11 -9
  183. package/src/components/Avatar/index.css +8 -0
  184. package/src/components/Button/Button.story.mdx +116 -1
  185. package/src/components/Button/Button.tsx +13 -7
  186. package/src/components/Button/index.css +12 -1
  187. package/src/components/Button/product.css +12 -0
  188. package/src/components/Card/Card.story.mdx +56 -73
  189. package/src/components/CloseButton/CloseButton.tsx +1 -1
  190. package/src/components/ConveyorLogo/ConveyorLogo.tsx +7 -6
  191. package/src/components/Divider/Divider.tsx +26 -40
  192. package/src/components/Divider/index.css +16 -0
  193. package/src/components/Drawer/Drawer.story.mdx +68 -70
  194. package/src/components/Drawer/Drawer.tsx +9 -8
  195. package/src/components/Drawer/index.css +26 -1
  196. package/src/components/Flex/Flex.story.mdx +130 -0
  197. package/src/components/Flex/Flex.tsx +7 -6
  198. package/src/components/Flex/index.css +3 -0
  199. package/src/components/Frame/Frame.story.mdx +146 -6
  200. package/src/components/Frame/Frame.tsx +1 -1
  201. package/src/components/Frame/index.css +8 -13
  202. package/src/components/Grid/Grid.story.mdx +205 -3
  203. package/src/components/Grid/Grid.tsx +44 -5
  204. package/src/components/Grid/index.css +3 -0
  205. package/src/components/Icon/Icon.tsx +63 -5
  206. package/src/components/Icon/svg/ArrowToBottom.tsx +17 -0
  207. package/src/components/Icon/svg/CommentAltCheck.tsx +13 -0
  208. package/src/components/Icon/svg/index.ts +2 -0
  209. package/src/components/Input/Input.story.mdx +199 -13
  210. package/src/components/Input/Input.tsx +39 -6
  211. package/src/components/Input/brand.css +7 -7
  212. package/src/components/Input/index.css +30 -0
  213. package/src/components/Input/product.css +12 -48
  214. package/src/components/Loading/Loading.story.mdx +16 -9
  215. package/src/components/Loading/Loading.tsx +17 -8
  216. package/src/components/Loading/index.css +1 -67
  217. package/src/components/Markdown/Markdown.story.mdx +67 -0
  218. package/src/components/Markdown/Markdown.tsx +3 -2
  219. package/src/components/MarkdownEditor/MarkdownEditor.tsx +2 -3
  220. package/src/components/MarkdownEditor/MarkdownHelp.tsx +7 -10
  221. package/src/components/MarkdownEditor/index.css +5 -1
  222. package/src/components/Modal/Modal.story.mdx +26 -0
  223. package/src/components/Modal/Modal.tsx +61 -43
  224. package/src/components/Modal/context.ts +20 -0
  225. package/src/components/Modal/index.css +8 -3
  226. package/src/components/Modal/index.ts +1 -0
  227. package/src/components/OptionButton/OptionButton.story.mdx +175 -21
  228. package/src/components/OptionButton/OptionButton.tsx +215 -26
  229. package/src/components/OptionButton/context.ts +22 -0
  230. package/src/components/OptionButton/index.css +14 -2
  231. package/src/components/Overlay/Overlay.story.mdx +26 -0
  232. package/src/components/Overlay/Overlay.tsx +2 -3
  233. package/src/components/Overlay/index.css +1 -0
  234. package/src/components/Paragraph/Paragraph.story.mdx +16 -2
  235. package/src/components/Paragraph/Paragraph.tsx +5 -13
  236. package/src/components/Paragraph/index.css +6 -0
  237. package/src/components/Popover/index.css +5 -6
  238. package/src/components/Reference/Reference.tsx +2 -2
  239. package/src/components/Select/Select.story.mdx +23 -10
  240. package/src/components/Select/Select.tsx +35 -10
  241. package/src/components/Select/SelectPopover.tsx +6 -6
  242. package/src/components/Select/index.ts +14 -0
  243. package/src/components/Select/theme.ts +22 -22
  244. package/src/components/Snackbar/Snackbar.story.mdx +96 -9
  245. package/src/components/Snackbar/Snackbar.tsx +56 -145
  246. package/src/components/Snackbar/SnackbarProvider.tsx +31 -0
  247. package/src/components/Snackbar/constants.ts +2 -0
  248. package/src/components/Snackbar/context.ts +20 -0
  249. package/src/components/Snackbar/helpers.tsx +52 -0
  250. package/src/components/Snackbar/hooks.ts +57 -0
  251. package/src/components/Snackbar/index.ts +6 -0
  252. package/src/components/Snackbar/types.ts +180 -0
  253. package/src/components/SpeechBubble/SpeechBubble.story.mdx +76 -0
  254. package/src/components/SpeechBubble/SpeechBubble.tsx +22 -1
  255. package/src/components/SpeechBubble/index.css +7 -4
  256. package/src/components/Svg/Svg.story.mdx +36 -0
  257. package/src/components/Svg/Svg.tsx +6 -4
  258. package/src/components/Table/Table.story.mdx +243 -0
  259. package/src/components/Table/Table.tsx +36 -1
  260. package/src/components/Table/TableCell.tsx +24 -1
  261. package/src/components/Table/TableHeaderCell.tsx +64 -11
  262. package/src/components/Table/index.css +138 -10
  263. package/src/components/Table/index.ts +3 -0
  264. package/src/components/Tag/Tag.tsx +2 -2
  265. package/src/components/Text/Text.story.mdx +34 -0
  266. package/src/components/Toast/Toast.story.mdx +1 -1
  267. package/src/components/Toast/Toast.tsx +14 -10
  268. package/src/components/Toast/index.css +4 -2
  269. package/src/components/Toggle/index.css +2 -3
  270. package/src/components/Tooltip/Tooltip.story.mdx +71 -1
  271. package/src/components/Tooltip/Tooltip.tsx +40 -35
  272. package/src/components/Tooltip/index.css +31 -0
  273. package/src/components/VisuallyHidden/VisuallyHidden.story.mdx +54 -0
  274. package/src/components/VisuallyHidden/VisuallyHidden.tsx +10 -5
  275. package/src/components/VisuallyHidden/index.css +3 -0
  276. package/src/css/base.css +6 -561
  277. package/src/css/components.css +6 -9
  278. package/src/css/fonts.css +13 -10
  279. package/src/css/styles.css +0 -1
  280. package/src/css/utilities/animations.css +13 -0
  281. package/src/docs/Colors.story.mdx +13 -13
  282. package/src/docs/Spacing.story.mdx +4 -20
  283. package/src/docs/Tokens.story.mdx +230 -0
  284. package/src/docs/Typography.story.mdx +27 -101
  285. package/src/docs/hooks/useDisclosureHook.story.mdx +58 -0
  286. package/src/docs/hooks/useKeyPressHook.story.mdx +54 -0
  287. package/src/docs/hooks/useMatchMediaHook.story.mdx +42 -0
  288. package/src/docs/hooks/useOutsideClickHook.story.mdx +56 -0
  289. package/src/docs/hooks/usePrefersReducedMotion.story.mdx +61 -0
  290. package/src/docs/hooks/useScreenOrientationHook.story.mdx +56 -0
  291. package/src/docs/hooks/useStepHook.story.mdx +102 -0
  292. package/src/hooks/index.ts +3 -0
  293. package/src/hooks/useMatchMedia.ts +40 -0
  294. package/src/hooks/usePrefersReducedMotion.ts +9 -0
  295. package/src/hooks/useScreenOrientation.ts +27 -0
  296. package/src/index.ts +0 -15
  297. package/src/storybook-components/ComponentHeading.tsx +4 -19
  298. package/src/storybook-components/ComponentStatus.tsx +4 -0
  299. package/src/storybook-components/EnumTable.tsx +3 -2
  300. package/src/storybook-components/Story.tsx +13 -1
  301. package/src/storybook-components/index.tsx +1 -1
  302. package/src/style-dictionary/dist/tokens.css +378 -0
  303. package/src/style-dictionary/dist/tokens.d.ts +428 -0
  304. package/src/style-dictionary/dist/tokens.js +428 -0
  305. package/src/style-dictionary/dist/tokens.module.js +428 -0
  306. package/src/style-dictionary/src/border-radius.js +11 -0
  307. package/src/style-dictionary/src/border-width.js +10 -0
  308. package/src/style-dictionary/src/color.js +98 -0
  309. package/src/style-dictionary/src/font-size.js +15 -0
  310. package/src/style-dictionary/src/font-weight.js +7 -0
  311. package/src/style-dictionary/src/height.js +13 -0
  312. package/src/style-dictionary/src/leading.js +8 -0
  313. package/src/style-dictionary/src/screen-width.js +8 -0
  314. package/src/style-dictionary/src/shadow.js +19 -0
  315. package/src/style-dictionary/src/spacing.js +69 -0
  316. package/src/style-dictionary/src/tracking.js +7 -0
  317. package/src/style-dictionary/src/type.js +34 -0
  318. package/src/style-dictionary/src/width.js +32 -0
  319. package/src/style-dictionary/src/z-index.js +21 -0
  320. package/src/style-dictionary/tailwind.config.js +87 -0
  321. package/src/tokens/borders.ts +6 -0
  322. package/src/tokens/box-shadow.ts +4 -0
  323. package/src/tokens/colors.ts +6 -0
  324. package/src/tokens/font-family.ts +4 -1
  325. package/src/tokens/font-size.ts +3 -0
  326. package/src/tokens/font-weight.ts +3 -0
  327. package/src/tokens/height.ts +6 -44
  328. package/src/tokens/index.ts +5 -4
  329. package/src/tokens/letter-spacing.ts +3 -0
  330. package/src/tokens/line-height.ts +3 -0
  331. package/src/tokens/margin.ts +7 -47
  332. package/src/tokens/padding.ts +6 -24
  333. package/src/tokens/screens.ts +3 -0
  334. package/src/tokens/sizing-scale.ts +140 -0
  335. package/src/tokens/width.ts +16 -63
  336. package/src/tokens/will-change.ts +3 -0
  337. package/src/tokens/z-index.ts +3 -0
  338. package/src/types/index.ts +37 -10
  339. package/src/utilities/index.ts +1 -0
  340. package/src/utilities/mergeEventHandlers.ts +20 -0
  341. package/public/components/Absolute/Absolute.d.ts +0 -2
  342. package/public/components/Absolute/Absolute.js +0 -14
  343. package/public/components/Absolute/index.d.ts +0 -1
  344. package/public/components/Absolute/index.js +0 -5
  345. package/public/components/Appbar/Appbar.d.ts +0 -60
  346. package/public/components/Appbar/Appbar.js +0 -42
  347. package/public/components/Appbar/AppbarClaimProfileButton.d.ts +0 -2
  348. package/public/components/Appbar/AppbarClaimProfileButton.js +0 -10
  349. package/public/components/Appbar/AppbarDropdownIcon.d.ts +0 -1
  350. package/public/components/Appbar/AppbarDropdownIcon.js +0 -10
  351. package/public/components/Appbar/AppbarLogInButton.d.ts +0 -2
  352. package/public/components/Appbar/AppbarLogInButton.js +0 -26
  353. package/public/components/Appbar/AppbarLogo.d.ts +0 -2
  354. package/public/components/Appbar/AppbarLogo.js +0 -19
  355. package/public/components/Appbar/AppbarOrganization.d.ts +0 -17
  356. package/public/components/Appbar/AppbarOrganization.js +0 -35
  357. package/public/components/Appbar/AppbarTabMarker.d.ts +0 -1
  358. package/public/components/Appbar/AppbarTabMarker.js +0 -11
  359. package/public/components/Appbar/AppbarTabs.d.ts +0 -10
  360. package/public/components/Appbar/AppbarTabs.js +0 -42
  361. package/public/components/Appbar/AppbarUser.d.ts +0 -27
  362. package/public/components/Appbar/AppbarUser.js +0 -76
  363. package/public/components/Appbar/config.d.ts +0 -7
  364. package/public/components/Appbar/config.js +0 -13
  365. package/public/components/Appbar/context.d.ts +0 -10
  366. package/public/components/Appbar/context.js +0 -16
  367. package/public/components/Appbar/index.d.ts +0 -1
  368. package/public/components/Appbar/index.js +0 -13
  369. package/public/components/ArrowButton/ArrowButton.d.ts +0 -9
  370. package/public/components/ArrowButton/ArrowButton.js +0 -22
  371. package/public/components/ArrowButton/index.d.ts +0 -1
  372. package/public/components/ArrowButton/index.js +0 -13
  373. package/public/components/ArrowLink/ArrowLink.d.ts +0 -9
  374. package/public/components/ArrowLink/ArrowLink.js +0 -21
  375. package/public/components/ArrowLink/index.d.ts +0 -1
  376. package/public/components/ArrowLink/index.js +0 -13
  377. package/public/components/Aside/Aside.d.ts +0 -14
  378. package/public/components/Aside/Aside.js +0 -28
  379. package/public/components/Aside/index.d.ts +0 -1
  380. package/public/components/Aside/index.js +0 -13
  381. package/public/components/Fixed/Fixed.d.ts +0 -2
  382. package/public/components/Fixed/Fixed.js +0 -14
  383. package/public/components/Fixed/Fixed.story.d.ts +0 -1
  384. package/public/components/Fixed/Fixed.story.js +0 -12
  385. package/public/components/Fixed/index.d.ts +0 -1
  386. package/public/components/Fixed/index.js +0 -5
  387. package/public/components/Flex/Flex.story.d.ts +0 -1
  388. package/public/components/Flex/Flex.story.js +0 -12
  389. package/public/components/IntegrationLogo/IntegrationLogo.d.ts +0 -10
  390. package/public/components/IntegrationLogo/IntegrationLogo.js +0 -33
  391. package/public/components/IntegrationLogo/IntegrationLogoSvg.d.ts +0 -9
  392. package/public/components/IntegrationLogo/IntegrationLogoSvg.js +0 -52
  393. package/public/components/IntegrationLogo/index.d.ts +0 -1
  394. package/public/components/IntegrationLogo/index.js +0 -13
  395. package/public/components/IntegrationLogo/svg/addigy.d.ts +0 -2
  396. package/public/components/IntegrationLogo/svg/addigy.js +0 -17
  397. package/public/components/IntegrationLogo/svg/aws.d.ts +0 -2
  398. package/public/components/IntegrationLogo/svg/aws.js +0 -22
  399. package/public/components/IntegrationLogo/svg/bamboohr.d.ts +0 -2
  400. package/public/components/IntegrationLogo/svg/bamboohr.js +0 -18
  401. package/public/components/IntegrationLogo/svg/bitbucket.d.ts +0 -2
  402. package/public/components/IntegrationLogo/svg/bitbucket.js +0 -18
  403. package/public/components/IntegrationLogo/svg/conveyor.d.ts +0 -2
  404. package/public/components/IntegrationLogo/svg/conveyor.js +0 -20
  405. package/public/components/IntegrationLogo/svg/default.d.ts +0 -2
  406. package/public/components/IntegrationLogo/svg/default.js +0 -13
  407. package/public/components/IntegrationLogo/svg/deploy.d.ts +0 -2
  408. package/public/components/IntegrationLogo/svg/deploy.js +0 -17
  409. package/public/components/IntegrationLogo/svg/events-api.d.ts +0 -2
  410. package/public/components/IntegrationLogo/svg/events-api.js +0 -26
  411. package/public/components/IntegrationLogo/svg/gcp.d.ts +0 -3
  412. package/public/components/IntegrationLogo/svg/gcp.js +0 -15
  413. package/public/components/IntegrationLogo/svg/github.d.ts +0 -3
  414. package/public/components/IntegrationLogo/svg/github.js +0 -12
  415. package/public/components/IntegrationLogo/svg/gitlab.d.ts +0 -2
  416. package/public/components/IntegrationLogo/svg/gitlab.js +0 -19
  417. package/public/components/IntegrationLogo/svg/gsuite.d.ts +0 -2
  418. package/public/components/IntegrationLogo/svg/gsuite.js +0 -15
  419. package/public/components/IntegrationLogo/svg/index.d.ts +0 -21
  420. package/public/components/IntegrationLogo/svg/index.js +0 -54
  421. package/public/components/IntegrationLogo/svg/jamf.d.ts +0 -2
  422. package/public/components/IntegrationLogo/svg/jamf.js +0 -20
  423. package/public/components/IntegrationLogo/svg/jira.d.ts +0 -2
  424. package/public/components/IntegrationLogo/svg/jira.js +0 -21
  425. package/public/components/IntegrationLogo/svg/jumpcloud.d.ts +0 -2
  426. package/public/components/IntegrationLogo/svg/jumpcloud.js +0 -28
  427. package/public/components/IntegrationLogo/svg/okta.d.ts +0 -2
  428. package/public/components/IntegrationLogo/svg/okta.js +0 -16
  429. package/public/components/IntegrationLogo/svg/onelogin.d.ts +0 -2
  430. package/public/components/IntegrationLogo/svg/onelogin.js +0 -18
  431. package/public/components/IntegrationLogo/svg/salesforce.d.ts +0 -2
  432. package/public/components/IntegrationLogo/svg/salesforce.js +0 -20
  433. package/public/components/IntegrationLogo/svg/slack.d.ts +0 -2
  434. package/public/components/IntegrationLogo/svg/slack.js +0 -19
  435. package/public/components/IntegrationLogo/svg/wrapper.d.ts +0 -11
  436. package/public/components/IntegrationLogo/svg/wrapper.js +0 -13
  437. package/public/components/IntegrationLogo/svg/zoom.d.ts +0 -2
  438. package/public/components/IntegrationLogo/svg/zoom.js +0 -23
  439. package/public/components/Meta/Meta.d.ts +0 -6
  440. package/public/components/Meta/Meta.js +0 -21
  441. package/public/components/Meta/Meta.story.d.ts +0 -1
  442. package/public/components/Meta/Meta.story.js +0 -39
  443. package/public/components/Meta/index.d.ts +0 -1
  444. package/public/components/Meta/index.js +0 -5
  445. package/public/components/Overlay/Overlay.story.d.ts +0 -1
  446. package/public/components/Overlay/Overlay.story.js +0 -12
  447. package/public/components/PropertyDiff/PropertyDiff.d.ts +0 -7
  448. package/public/components/PropertyDiff/PropertyDiff.js +0 -22
  449. package/public/components/PropertyDiff/index.d.ts +0 -1
  450. package/public/components/PropertyDiff/index.js +0 -13
  451. package/public/components/Relative/Relative.d.ts +0 -2
  452. package/public/components/Relative/Relative.js +0 -14
  453. package/public/components/Relative/Relative.story.d.ts +0 -1
  454. package/public/components/Relative/Relative.story.js +0 -12
  455. package/public/components/Relative/index.d.ts +0 -1
  456. package/public/components/Relative/index.js +0 -5
  457. package/public/components/SpeechBubble/SpeechBubble.story.d.ts +0 -1
  458. package/public/components/SpeechBubble/SpeechBubble.story.js +0 -19
  459. package/public/components/StatusLabel/StatusLabel.d.ts +0 -16
  460. package/public/components/StatusLabel/StatusLabel.js +0 -40
  461. package/public/components/StatusLabel/index.d.ts +0 -1
  462. package/public/components/StatusLabel/index.js +0 -13
  463. package/public/components/StatusPanel/StatusPanel.d.ts +0 -11
  464. package/public/components/StatusPanel/StatusPanel.js +0 -24
  465. package/public/components/StatusPanel/index.d.ts +0 -1
  466. package/public/components/StatusPanel/index.js +0 -13
  467. package/public/components/Sticky/Sticky.d.ts +0 -2
  468. package/public/components/Sticky/Sticky.js +0 -14
  469. package/public/components/Sticky/Sticky.story.d.ts +0 -1
  470. package/public/components/Sticky/Sticky.story.js +0 -12
  471. package/public/components/Sticky/index.d.ts +0 -1
  472. package/public/components/Sticky/index.js +0 -5
  473. package/public/components/Svg/Svg.story.d.ts +0 -1
  474. package/public/components/Svg/Svg.story.js +0 -14
  475. package/public/components/Text/Text.story.d.ts +0 -1
  476. package/public/components/Text/Text.story.js +0 -31
  477. package/public/components/TopBar/TopBar.d.ts +0 -14
  478. package/public/components/TopBar/TopBar.js +0 -24
  479. package/public/components/TopBar/TopBarBreadcrumbs.d.ts +0 -10
  480. package/public/components/TopBar/TopBarBreadcrumbs.js +0 -34
  481. package/public/components/TopBar/TopBarSubNav.d.ts +0 -2
  482. package/public/components/TopBar/TopBarSubNav.js +0 -16
  483. package/public/components/TopBar/TopBarSubNavItem.d.ts +0 -5
  484. package/public/components/TopBar/TopBarSubNavItem.js +0 -17
  485. package/public/components/TopBar/index.d.ts +0 -1
  486. package/public/components/TopBar/index.js +0 -13
  487. package/public/components/VendorLogo/VendorLogo.d.ts +0 -20
  488. package/public/components/VendorLogo/VendorLogo.js +0 -57
  489. package/public/components/VendorLogo/index.d.ts +0 -1
  490. package/public/components/VendorLogo/index.js +0 -13
  491. package/public/components/VisuallyHidden/VisuallyHidden.story.d.ts +0 -1
  492. package/public/components/VisuallyHidden/VisuallyHidden.story.js +0 -36
  493. package/public/components/useStep/ExampleSetupWizard.d.ts +0 -4
  494. package/public/components/useStep/ExampleSetupWizard.js +0 -33
  495. package/public/storybook-components/TailwindPropertyClasses.d.ts +0 -9
  496. package/public/storybook-components/TailwindPropertyClasses.js +0 -194
  497. package/public/tailwind.config.d.ts +0 -1
  498. package/public/tailwind.config.js +0 -4
  499. package/public/tokens/_tailwind-config.d.ts +0 -810
  500. package/public/tokens/_tailwind-config.js +0 -50
  501. package/src/components/Absolute/Absolute.story.mdx +0 -26
  502. package/src/components/Absolute/Absolute.tsx +0 -9
  503. package/src/components/Absolute/index.ts +0 -1
  504. package/src/components/Appbar/Appbar.story.mdx +0 -185
  505. package/src/components/Appbar/Appbar.tsx +0 -108
  506. package/src/components/Appbar/AppbarClaimProfileButton.tsx +0 -13
  507. package/src/components/Appbar/AppbarDropdownIcon.tsx +0 -6
  508. package/src/components/Appbar/AppbarLogInButton.tsx +0 -28
  509. package/src/components/Appbar/AppbarLogo.tsx +0 -29
  510. package/src/components/Appbar/AppbarOrganization.tsx +0 -96
  511. package/src/components/Appbar/AppbarTabMarker.tsx +0 -5
  512. package/src/components/Appbar/AppbarTabs.tsx +0 -46
  513. package/src/components/Appbar/AppbarUser.tsx +0 -179
  514. package/src/components/Appbar/config.ts +0 -12
  515. package/src/components/Appbar/context.ts +0 -20
  516. package/src/components/Appbar/index.css +0 -324
  517. package/src/components/Appbar/index.ts +0 -1
  518. package/src/components/ArrowButton/ArrowButton.story.mdx +0 -110
  519. package/src/components/ArrowButton/ArrowButton.tsx +0 -54
  520. package/src/components/ArrowButton/index.css +0 -42
  521. package/src/components/ArrowButton/index.ts +0 -1
  522. package/src/components/ArrowLink/ArrowLink.story.mdx +0 -65
  523. package/src/components/ArrowLink/ArrowLink.tsx +0 -42
  524. package/src/components/ArrowLink/index.ts +0 -1
  525. package/src/components/Aside/Aside.story.mdx +0 -65
  526. package/src/components/Aside/Aside.tsx +0 -59
  527. package/src/components/Aside/index.css +0 -11
  528. package/src/components/Aside/index.ts +0 -1
  529. package/src/components/Fixed/Fixed.md +0 -16
  530. package/src/components/Fixed/Fixed.story.tsx +0 -12
  531. package/src/components/Fixed/Fixed.tsx +0 -9
  532. package/src/components/Fixed/index.ts +0 -1
  533. package/src/components/Flex/Flex.md +0 -14
  534. package/src/components/Flex/Flex.story.tsx +0 -12
  535. package/src/components/IntegrationLogo/IntegrationLogo.story.mdx +0 -159
  536. package/src/components/IntegrationLogo/IntegrationLogo.tsx +0 -54
  537. package/src/components/IntegrationLogo/IntegrationLogoSvg.tsx +0 -79
  538. package/src/components/IntegrationLogo/index.ts +0 -1
  539. package/src/components/IntegrationLogo/svg/addigy.tsx +0 -23
  540. package/src/components/IntegrationLogo/svg/aws.tsx +0 -52
  541. package/src/components/IntegrationLogo/svg/bamboohr.tsx +0 -34
  542. package/src/components/IntegrationLogo/svg/bitbucket.tsx +0 -37
  543. package/src/components/IntegrationLogo/svg/conveyor.tsx +0 -41
  544. package/src/components/IntegrationLogo/svg/default.tsx +0 -11
  545. package/src/components/IntegrationLogo/svg/deploy.tsx +0 -29
  546. package/src/components/IntegrationLogo/svg/events-api.tsx +0 -75
  547. package/src/components/IntegrationLogo/svg/gcp.tsx +0 -26
  548. package/src/components/IntegrationLogo/svg/github.tsx +0 -14
  549. package/src/components/IntegrationLogo/svg/gitlab.tsx +0 -40
  550. package/src/components/IntegrationLogo/svg/gsuite.tsx +0 -24
  551. package/src/components/IntegrationLogo/svg/index.ts +0 -21
  552. package/src/components/IntegrationLogo/svg/jamf.tsx +0 -36
  553. package/src/components/IntegrationLogo/svg/jira.tsx +0 -44
  554. package/src/components/IntegrationLogo/svg/jumpcloud.tsx +0 -86
  555. package/src/components/IntegrationLogo/svg/okta.tsx +0 -28
  556. package/src/components/IntegrationLogo/svg/onelogin.tsx +0 -34
  557. package/src/components/IntegrationLogo/svg/salesforce.tsx +0 -39
  558. package/src/components/IntegrationLogo/svg/slack.tsx +0 -40
  559. package/src/components/IntegrationLogo/svg/wrapper.tsx +0 -35
  560. package/src/components/IntegrationLogo/svg/zoom.tsx +0 -51
  561. package/src/components/Meta/Meta.md +0 -14
  562. package/src/components/Meta/Meta.story.tsx +0 -24
  563. package/src/components/Meta/Meta.tsx +0 -26
  564. package/src/components/Meta/index.ts +0 -1
  565. package/src/components/Overlay/Overlay.md +0 -14
  566. package/src/components/Overlay/Overlay.story.tsx +0 -12
  567. package/src/components/PropertyDiff/PropertDiff.story.mdx +0 -46
  568. package/src/components/PropertyDiff/PropertyDiff.tsx +0 -48
  569. package/src/components/PropertyDiff/index.css +0 -33
  570. package/src/components/PropertyDiff/index.ts +0 -1
  571. package/src/components/Relative/Relative.md +0 -16
  572. package/src/components/Relative/Relative.story.tsx +0 -12
  573. package/src/components/Relative/Relative.tsx +0 -9
  574. package/src/components/Relative/index.ts +0 -1
  575. package/src/components/SpeechBubble/SpeechBubble.md +0 -14
  576. package/src/components/SpeechBubble/SpeechBubble.story.tsx +0 -26
  577. package/src/components/StatusLabel/StatusLabel.story.mdx +0 -316
  578. package/src/components/StatusLabel/StatusLabel.tsx +0 -112
  579. package/src/components/StatusLabel/index.css +0 -23
  580. package/src/components/StatusLabel/index.ts +0 -1
  581. package/src/components/StatusPanel/StatusPanel.story.mdx +0 -109
  582. package/src/components/StatusPanel/StatusPanel.tsx +0 -51
  583. package/src/components/StatusPanel/index.css +0 -52
  584. package/src/components/StatusPanel/index.ts +0 -1
  585. package/src/components/Sticky/Sticky.md +0 -16
  586. package/src/components/Sticky/Sticky.story.tsx +0 -12
  587. package/src/components/Sticky/Sticky.tsx +0 -9
  588. package/src/components/Sticky/index.ts +0 -1
  589. package/src/components/Svg/Svg.md +0 -14
  590. package/src/components/Svg/Svg.story.tsx +0 -15
  591. package/src/components/Text/Text.md +0 -14
  592. package/src/components/Text/Text.story.tsx +0 -12
  593. package/src/components/TopBar/TopBar.story.mdx +0 -154
  594. package/src/components/TopBar/TopBar.tsx +0 -40
  595. package/src/components/TopBar/TopBarBreadcrumbs.tsx +0 -79
  596. package/src/components/TopBar/TopBarSubNav.tsx +0 -19
  597. package/src/components/TopBar/TopBarSubNavItem.tsx +0 -21
  598. package/src/components/TopBar/index.css +0 -102
  599. package/src/components/TopBar/index.ts +0 -1
  600. package/src/components/VendorLogo/VendorLogo.story.mdx +0 -209
  601. package/src/components/VendorLogo/VendorLogo.tsx +0 -110
  602. package/src/components/VendorLogo/index.css +0 -46
  603. package/src/components/VendorLogo/index.ts +0 -1
  604. package/src/components/VisuallyHidden/VisuallyHidden.md +0 -23
  605. package/src/components/VisuallyHidden/VisuallyHidden.story.tsx +0 -19
  606. package/src/components/useStep/ExampleSetupWizard.tsx +0 -63
  607. package/src/components/useStep/useStep.story.mdx +0 -76
  608. package/src/docs/TailwindClasses.story.mdx +0 -15
  609. package/src/docs/brand-components/BrandButton.story.mdx +0 -103
  610. package/src/docs/brand-components/BrandCheckbox.story.mdx +0 -63
  611. package/src/docs/brand-components/BrandFormGroup.story.mdx +0 -76
  612. package/src/docs/brand-components/BrandInput.story.mdx +0 -41
  613. package/src/docs/brand-components/BrandRadio.story.mdx +0 -45
  614. package/src/docs/brand-components/BrandTextArea.story.mdx +0 -41
  615. package/src/storybook-components/TailwindPropertyClasses.tsx +0 -285
  616. package/src/tailwind.config.ts +0 -6
  617. package/src/tokens/_tailwind-config.ts +0 -69
@@ -1,9 +1,18 @@
1
- import { Story, Preview, Props, Meta } from "@storybook/addon-docs/blocks";
1
+ import {
2
+ Story,
3
+ Preview,
4
+ Props,
5
+ Meta,
6
+ SourceState,
7
+ } from "@storybook/addon-docs/blocks";
8
+ import classNames from "classnames";
2
9
  import { OptionButton } from "./OptionButton";
3
10
  import { Box } from "../Box";
4
11
  import { Button, BUTTON_SIZE } from "../Button";
5
12
  import { Modal } from "../Modal";
6
13
  import { Stack } from "../Stack";
14
+ import { Flex } from "../Flex";
15
+ import { Icon, ICON_TYPE } from "../Icon";
7
16
  import { useDisclosure } from "../../hooks";
8
17
  import { JUSTIFY } from "../../types";
9
18
 
@@ -17,7 +26,7 @@ The option button component is a fancy radio button used as an option selector.
17
26
  import { OptionButton } from "@conveyorhq/arrow-ds";
18
27
  ```
19
28
 
20
- <Preview>
29
+ <Preview withSource={SourceState.OPEN}>
21
30
  <Story name="OptionButton">
22
31
  <OptionButton
23
32
  heading="Manual"
@@ -28,44 +37,143 @@ import { OptionButton } from "@conveyorhq/arrow-ds";
28
37
 
29
38
  ## Props
30
39
 
31
- These are the custom props that extend `React.HTMLProps<HTMLInputElement>`. Full list of props <a href="#all-props">below</a>.
40
+ ### OptionButton
41
+
42
+ Extends `React.HTMLProps<HTMLInputElement>`
32
43
 
33
44
  <Props of={OptionButton} />
34
45
 
46
+ ### OptionButton.Group
47
+
48
+ Extends `StackProps`
49
+
50
+ <Props of={OptionButton.Group} />
51
+
52
+ ### OptionButton.Root
53
+
54
+ Extends `React.HTMLProps<HTMLLabelElement>`
55
+
56
+ ### OptionButton.Content
57
+
58
+ Extends `BoxProps`
59
+
60
+ ### OptionButton.Heading
61
+
62
+ Extends `TextProps`
63
+
64
+ ### OptionButton.Description
65
+
66
+ Extends `TextProps`
67
+
68
+ ### OptionButton.Input
69
+
70
+ Extends `React.HTMLProps<HTMLInputElement>`
71
+
72
+ ### OptionButton.Backdrop
73
+
74
+ Extends `BoxProps`
75
+
76
+ ### OptionButton.SelectedIcon
77
+
78
+ Extends `BoxProps`
79
+
80
+ ## Component tree
81
+
82
+ Each piece of the `OptionButton` component can be used individually to create a
83
+ component with a custom layout. You’ll also be able to control the style of each
84
+ individual element.
85
+
86
+ The component tree is as follows:
87
+
88
+ ```jsx
89
+ <OptionButton.Root>
90
+ <OptionButton.Content>
91
+ <OptionButton.Heading />
92
+ <OptionButton.Description />
93
+ </OptionButton.Content>
94
+ <OptionButton.Input />
95
+ <OptionButton.Backdrop />
96
+ <OptionButton.SelectedIcon />
97
+ </OptionButton.Root>
98
+ ```
99
+
100
+ 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.
101
+
102
+ - `OptionButton.Heading`
103
+ - `OptionButton.Description`
104
+ - `OptionButton.SelectedIcon`
105
+
35
106
  ## Demos
36
107
 
37
- ### Within Stack
108
+ ### Building a custom implementation
109
+
110
+ This example shows how you can create a list of custom checkboxes.
111
+
112
+ <Preview withSource={SourceState.OPEN}>
113
+ <Story name="Custom implementation">
114
+ <OptionButton.Group name="iconTypes" type="checkbox" spacing={4}>
115
+ {[
116
+ {
117
+ icon: ICON_TYPE.CALCULATOR,
118
+ name: "Calculator",
119
+ },
120
+ {
121
+ icon: ICON_TYPE.ENVELOPE,
122
+ name: "Envelope",
123
+ },
124
+ {
125
+ icon: ICON_TYPE.PAPERCLIP,
126
+ name: "Paperclip",
127
+ },
128
+ ].map((option) => (
129
+ <OptionButton.Root key={option.name} className="rounded p-3">
130
+ <OptionButton.Content>
131
+ <Flex className="items-center gap-x-2">
132
+ <Icon icon={option.icon} />
133
+ <Text className="font-medium">{option.name} icon</Text>
134
+ </Flex>
135
+ </OptionButton.Content>
136
+ <OptionButton.Input value="calculator" disabled={option.disabled} />
137
+ <OptionButton.Backdrop className="bg-white border border-border rounded" />
138
+ </OptionButton.Root>
139
+ ))}
140
+ </OptionButton.Group>
141
+ </Story>
142
+ </Preview>
143
+
144
+ ### Within Group
145
+
146
+ 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`.
38
147
 
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`.
148
+ The `name` prop can be added to `OptionButton.Group` and it will be passed onto each input.
40
149
 
41
- <Preview>
42
- <Story name="Within Stack">
43
- <Stack spacing={4}>
150
+ 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`.
151
+
152
+ <Preview withSource={SourceState.OPEN}>
153
+ <Story name="Within Group">
154
+ <OptionButton.Group name="template" type="radio" spacing={4}>
44
155
  <OptionButton
45
156
  heading="Manual"
46
157
  description="Don’t create any tickets for me, I’ll make them myself."
47
- name="template"
48
158
  value="manual"
49
159
  />
50
160
  <OptionButton
51
161
  heading="Basic Recurring"
52
162
  description="Create tickets based on a single recurring schedule, without an asset type."
53
- name="template"
54
163
  value="basic"
55
164
  />
56
165
  <OptionButton
57
166
  heading="Asset Based"
58
167
  description="Set a default, then create individual recurring or event-based schedules for any asset."
59
- name="template"
60
168
  value="asset"
61
169
  />
62
- </Stack>
170
+ </OptionButton.Group>
63
171
  </Story>
64
172
  </Preview>
65
173
 
66
174
  ### Within Modal
67
175
 
68
- <Preview>
176
+ <Preview withSource={SourceState.OPEN}>
69
177
  <Story name="Within Modal">
70
178
  {() => {
71
179
  const { isOpen, onOpen, onClose } = useDisclosure();
@@ -78,26 +186,27 @@ The main use case for the option button is to display multiple within a [`Stack`
78
186
  onClose={onClose}
79
187
  >
80
188
  <Modal.Body>
81
- <Stack spacing={4}>
189
+ <OptionButton.Group
190
+ name="template-modal"
191
+ type="radio"
192
+ spacing={4}
193
+ >
82
194
  <OptionButton
83
195
  heading="Manual"
84
196
  description="Don’t create any tickets for me, I’ll make them myself."
85
- name="template"
86
197
  value="manual"
87
198
  />
88
199
  <OptionButton
89
200
  heading="Basic Recurring"
90
201
  description="Create tickets based on a single recurring schedule, without an asset type."
91
- name="template"
92
202
  value="basic"
93
203
  />
94
204
  <OptionButton
95
205
  heading="Asset Based"
96
206
  description="Set a default, then create individual recurring or event-based schedules for any asset."
97
- name="template"
98
207
  value="asset"
99
208
  />
100
- </Stack>
209
+ </OptionButton.Group>
101
210
  </Modal.Body>
102
211
  <Modal.Footer>
103
212
  <Stack justify={JUSTIFY.END}>
@@ -111,8 +220,53 @@ The main use case for the option button is to display multiple within a [`Stack`
111
220
  </Story>
112
221
  </Preview>
113
222
 
114
- ## All Props
223
+ ### Disabling an option
115
224
 
116
- Any valid attribute of `React.HTMLProps<HTMLInputElement>` is available to the option button component.
225
+ If you need to disable an option, you can do so by passing `disabled` to
226
+ OptionButton. This will apply different styles to the OptionButton which can’t
227
+ be changed.
117
228
 
118
- <Props of={OptionButton} />
229
+ <Preview withSource={SourceState.OPEN}>
230
+ <Story name="Disabled">
231
+ <OptionButton
232
+ heading="Manual"
233
+ description="Don’t create any tickets for me, I’ll make them myself."
234
+ disabled
235
+ />
236
+ </Story>
237
+ </Preview>
238
+
239
+ You can also build your own custom OptionButton by composing each piece and in
240
+ doing so, you’ll be able to set your own styles for the disabled state.
241
+
242
+ <Preview withSource={SourceState.OPEN}>
243
+ <Story name="Disabled custom">
244
+ {() => {
245
+ const isDisabled = true;
246
+ return (
247
+ <OptionButton.Root
248
+ className={classNames(
249
+ isDisabled && "cursor-not-allowed",
250
+ "rounded p-3",
251
+ )}
252
+ >
253
+ <OptionButton.Content
254
+ className={classNames(isDisabled && "opacity-50")}
255
+ >
256
+ <Flex className="items-center gap-x-2">
257
+ <Icon icon={ICON_TYPE.CALCULATOR} />
258
+ <Text className="font-medium">Calculator icon</Text>
259
+ </Flex>
260
+ </OptionButton.Content>
261
+ <OptionButton.Input value="calculator" disabled={isDisabled} />
262
+ <OptionButton.Backdrop
263
+ className={classNames(
264
+ isDisabled ? "bg-gray-300" : "bg-white",
265
+ "border border-border rounded",
266
+ )}
267
+ />
268
+ </OptionButton.Root>
269
+ );
270
+ }}
271
+ </Story>
272
+ </Preview>
@@ -1,66 +1,255 @@
1
1
  import React, { HTMLProps } from "react";
2
2
  import classNames from "classnames";
3
3
  import { useId } from "@reach/auto-id";
4
- import { Box } from "../Box";
4
+ import { Box, BoxProps } from "../Box";
5
5
  import { Input } from "../Input";
6
- import { Text } from "../Text";
6
+ import { Text, TextProps } from "../Text";
7
7
  import { Icon, ICON_TYPE } from "../Icon";
8
- import { bem } from "../../utilities/bem";
8
+ import { Stack, StackProps } from "../Stack";
9
+ import { bemHOF } from "../../utilities/bem";
9
10
  import isUndefined from "../../utilities/isUndefined";
11
+ import { ORIENTATION } from "../../types";
12
+ import { OptionButtonContext, useOptionButtonContext } from "./context";
10
13
 
11
- const cn = "OptionButton";
14
+ const cn = bemHOF("OptionButton");
12
15
 
16
+ /**
17
+ * OptionButton.Group
18
+ * =============================================================================
19
+ */
20
+ export interface OptionButtonGroupProps extends StackProps {
21
+ /**
22
+ * Using context, the name prop is passed down to each input within the group.
23
+ * You may also define `name` on each individual `OptionButton` or
24
+ * `OptionButton.Input` manually if you choose not to use `OptionButton.Group`.
25
+ */
26
+ name?: string;
27
+ /**
28
+ * Defines the type of control to render each input as. This value is stored
29
+ * in the context and passed onto each input. You may also define `type` on
30
+ * each individual `OptionButton` or `OptionButton.Input` manually if you
31
+ * choose not to use `OptionButton.Group`.
32
+ */
33
+ type?: "radio" | "checkbox";
34
+ }
35
+
36
+ export const OptionButtonGroup = (props: OptionButtonGroupProps) => {
37
+ const {
38
+ name = "",
39
+ type = "radio",
40
+ orientation = ORIENTATION.VERTICAL,
41
+ ...rest
42
+ } = props;
43
+
44
+ return (
45
+ <OptionButtonContext.Provider
46
+ value={{
47
+ name,
48
+ type,
49
+ }}
50
+ >
51
+ <Stack orientation={orientation} {...rest} />
52
+ </OptionButtonContext.Provider>
53
+ );
54
+ };
55
+
56
+ /**
57
+ * OptionButton.Root
58
+ * =============================================================================
59
+ */
60
+ export type OptionButtonRootProps = HTMLProps<HTMLLabelElement>;
61
+
62
+ export const OptionButtonRoot = ({
63
+ children,
64
+ className,
65
+ ...rest
66
+ }: OptionButtonRootProps) => {
67
+ return (
68
+ // eslint-disable-next-line jsx-a11y/label-has-associated-control
69
+ <label className={classNames(cn(), className)} {...rest}>
70
+ {children}
71
+ </label>
72
+ );
73
+ };
74
+
75
+ /**
76
+ * OptionButton.Input
77
+ * =============================================================================
78
+ */
79
+ export type OptionButtonInputProps = HTMLProps<HTMLInputElement>;
80
+
81
+ export const OptionButtonInput = (props: OptionButtonInputProps) => {
82
+ const {
83
+ name: nameFromContext,
84
+ type: typeFromContext,
85
+ } = useOptionButtonContext();
86
+ const {
87
+ id: idProp,
88
+ name: nameProp,
89
+ checked,
90
+ className,
91
+ defaultValue,
92
+ type: typeProp = "radio",
93
+ ...rest
94
+ } = props;
95
+
96
+ const fallbackId = `OptionButton:${useId()}`;
97
+ const id = isUndefined(idProp) ? fallbackId : idProp;
98
+ const name = isUndefined(nameFromContext) ? nameProp : nameFromContext;
99
+ const type = isUndefined(typeFromContext) ? typeProp : typeFromContext;
100
+
101
+ return (
102
+ <Input
103
+ id={id}
104
+ name={name}
105
+ type={type}
106
+ checked={checked}
107
+ className={classNames([cn({ e: "input" }), className])}
108
+ defaultValue={defaultValue}
109
+ aria-checked={checked ? "true" : "false"}
110
+ {...rest}
111
+ />
112
+ );
113
+ };
114
+
115
+ /**
116
+ * OptionButton.Content
117
+ * =============================================================================
118
+ */
119
+ export const OptionButtonContent = ({
120
+ className,
121
+ children,
122
+ ...rest
123
+ }: BoxProps) => (
124
+ <Box className={classNames([cn({ e: "content" }), className])} {...rest}>
125
+ {children}
126
+ </Box>
127
+ );
128
+
129
+ /**
130
+ * OptionButton.Heading
131
+ * =============================================================================
132
+ */
133
+ export const OptionButtonHeading = ({
134
+ className,
135
+ children,
136
+ ...rest
137
+ }: TextProps) => (
138
+ <Text
139
+ as="div"
140
+ className={classNames([cn({ e: "heading" }), className])}
141
+ {...rest}
142
+ >
143
+ {children}
144
+ </Text>
145
+ );
146
+
147
+ /**
148
+ * OptionButton.Description
149
+ * =============================================================================
150
+ */
151
+ export const OptionButtonDescription = ({
152
+ className,
153
+ children,
154
+ ...rest
155
+ }: TextProps) => (
156
+ <Text
157
+ as="div"
158
+ className={classNames([cn({ e: "description" }), className])}
159
+ {...rest}
160
+ >
161
+ {children}
162
+ </Text>
163
+ );
164
+
165
+ /**
166
+ * OptionButton.Backdrop
167
+ * =============================================================================
168
+ */
169
+ export const OptionButtonBackdrop = ({ className, ...rest }: BoxProps) => (
170
+ <Box className={classNames([cn({ e: "backdrop" }), className])} {...rest} />
171
+ );
172
+
173
+ /**
174
+ * OptionButton.SelectedIcon
175
+ * =============================================================================
176
+ */
177
+ export const OptionButtonSelectedIcon = ({ className, ...rest }: BoxProps) => (
178
+ <Box className={classNames([cn({ e: "selected" }), className])} {...rest}>
179
+ <Icon className={cn({ e: "icon" })} icon={ICON_TYPE.CHECK} />
180
+ Selected
181
+ </Box>
182
+ );
183
+
184
+ /**
185
+ * OptionButton
186
+ * =============================================================================
187
+ */
13
188
  interface OptionButtonProps extends HTMLProps<HTMLInputElement> {
14
189
  heading: string;
15
190
  description?: string;
16
191
  }
17
192
 
18
193
  export const OptionButton = (props: OptionButtonProps) => {
194
+ const {
195
+ name: nameFromContext,
196
+ type: typeFromContext,
197
+ } = useOptionButtonContext();
19
198
  const {
20
199
  heading,
21
200
  description,
22
201
  id: idProp,
202
+ name: nameProp,
23
203
  checked,
24
204
  className,
25
205
  defaultValue,
206
+ type: typeProp = "radio",
207
+ disabled = false,
26
208
  ...rest
27
209
  } = props;
28
210
 
29
- const fallbackId = `OptionButton:${useId()}`;
211
+ const fallbackId = `OptionButton-${useId()}`;
30
212
  const id = isUndefined(idProp) ? fallbackId : idProp;
213
+ const name = isUndefined(nameFromContext) ? nameProp : nameFromContext;
214
+ const type = isUndefined(typeFromContext) ? typeProp : typeFromContext;
215
+ const rootClassName = classNames([
216
+ cn(),
217
+ disabled && cn({ m: "disabled" }),
218
+ className,
219
+ ]);
31
220
 
32
221
  return (
33
- <Box as="label" className={classNames(bem(cn), className)}>
34
- <Box className={bem(cn, { e: "content" })}>
35
- {heading && (
36
- <Text as="div" className={bem(cn, { e: "heading" })}>
37
- {heading}
38
- </Text>
39
- )}
222
+ <OptionButtonRoot className={rootClassName}>
223
+ <OptionButtonContent>
224
+ {heading && <OptionButtonHeading>{heading}</OptionButtonHeading>}
40
225
 
41
226
  {description && (
42
- <Text as="div" className={bem(cn, { e: "description" })}>
43
- {description}
44
- </Text>
227
+ <OptionButtonDescription>{description}</OptionButtonDescription>
45
228
  )}
46
- </Box>
229
+ </OptionButtonContent>
47
230
 
48
- <Input
231
+ <OptionButtonInput
49
232
  id={id}
50
- type="radio"
233
+ name={name}
234
+ type={type}
51
235
  checked={checked}
52
- className={bem(cn, { e: "input" })}
53
236
  defaultValue={defaultValue}
54
237
  aria-checked={checked ? "true" : "false"}
238
+ disabled={disabled}
55
239
  {...rest}
56
240
  />
57
241
 
58
- <Box className={bem(cn, { e: "backdrop" })} />
59
-
60
- <Box className={bem(cn, { e: "selected" })}>
61
- <Icon className={bem(cn, { e: "icon" })} icon={ICON_TYPE.CHECK} />
62
- Selected
63
- </Box>
64
- </Box>
242
+ <OptionButtonBackdrop />
243
+ <OptionButtonSelectedIcon />
244
+ </OptionButtonRoot>
65
245
  );
66
246
  };
247
+
248
+ OptionButton.Group = OptionButtonGroup;
249
+ OptionButton.Root = OptionButtonRoot;
250
+ OptionButton.Input = OptionButtonInput;
251
+ OptionButton.Content = OptionButtonContent;
252
+ OptionButton.Heading = OptionButtonHeading;
253
+ OptionButton.Description = OptionButtonDescription;
254
+ OptionButton.Backdrop = OptionButtonBackdrop;
255
+ OptionButton.SelectedIcon = OptionButtonSelectedIcon;
@@ -0,0 +1,22 @@
1
+ import { Context, createContext, useContext } from "react";
2
+
3
+ type OptionButtonContextType =
4
+ | { name?: string; type?: "radio" | "checkbox" }
5
+ | undefined;
6
+
7
+ const defaultContext: OptionButtonContextType = {
8
+ name: "",
9
+ type: "radio",
10
+ };
11
+
12
+ export const OptionButtonContext: Context<OptionButtonContextType> = createContext<OptionButtonContextType>(
13
+ defaultContext,
14
+ );
15
+
16
+ export function useOptionButtonContext() {
17
+ const context = useContext<typeof defaultContext>(OptionButtonContext) || {
18
+ ...defaultContext,
19
+ };
20
+
21
+ return context;
22
+ }
@@ -11,6 +11,10 @@
11
11
  flex: 1 1 0;
12
12
  }
13
13
 
14
+ .ads-OptionButton--disabled {
15
+ @apply cursor-not-allowed;
16
+ }
17
+
14
18
  .ads-OptionButton-content {
15
19
  @apply relative
16
20
  z-default;
@@ -32,6 +36,11 @@
32
36
  leading-normal;
33
37
  }
34
38
 
39
+ .ads-OptionButton--disabled .ads-OptionButton-heading,
40
+ .ads-OptionButton--disabled .ads-OptionButton-description {
41
+ @apply text-gray-600;
42
+ }
43
+
35
44
  .ads-OptionButton-input {
36
45
  @apply visually-hidden;
37
46
  }
@@ -53,14 +62,17 @@
53
62
 
54
63
  .ads-OptionButton-input:checked + .ads-OptionButton-backdrop {
55
64
  @apply bg-gray-200
56
- border-gray-500;
65
+ border-blue-400;
57
66
  }
58
67
 
59
- .ads-OptionButton-input:active + .ads-OptionButton-backdrop,
60
68
  .ads-OptionButton-input:focus + .ads-OptionButton-backdrop {
61
69
  @apply shadow-focus;
62
70
  }
63
71
 
72
+ .ads-OptionButton--disabled .ads-OptionButton-backdrop {
73
+ @apply bg-gray-300;
74
+ }
75
+
64
76
  .ads-OptionButton-selected {
65
77
  @apply items-center
66
78
  justify-center
@@ -0,0 +1,26 @@
1
+ import { Meta, Preview, Props, Story } from "@storybook/addon-docs/blocks";
2
+ import { ComponentHeading } from "../../storybook-components";
3
+ import { Overlay } from "./Overlay";
4
+
5
+ <Meta title="Components/Popovers/Overlay" component={Overlay} />
6
+
7
+ <ComponentHeading
8
+ componentName="Overlay"
9
+ description=""
10
+ sourcePath="src/components/Overlay/Overlay.tsx"
11
+ hideDemosLink
12
+ />
13
+
14
+ ```jsx
15
+ import { Overlay } from "@conveyorhq/arrow-ds";
16
+ ```
17
+
18
+ <Preview>
19
+ <Story name="Overlay">
20
+ <Overlay />
21
+ </Story>
22
+ </Preview>
23
+
24
+ ## Props
25
+
26
+ <Props of={Overlay} />
@@ -1,7 +1,6 @@
1
1
  import React from "react";
2
2
  import classNames from "classnames";
3
- import { BoxProps } from "../Box";
4
- import { Fixed } from "../Fixed";
3
+ import { Box, BoxProps } from "../Box";
5
4
  import { bem } from "../../utilities/bem";
6
5
 
7
6
  const cn = "Overlay";
@@ -9,5 +8,5 @@ const cn = "Overlay";
9
8
  export const Overlay = (props: BoxProps) => {
10
9
  const { className, ...rest } = props;
11
10
 
12
- return <Fixed className={classNames(bem(cn), className)} {...rest} />;
11
+ return <Box className={classNames(bem(cn), className)} {...rest} />;
13
12
  };
@@ -3,6 +3,7 @@
3
3
  left-0
4
4
  bottom-0
5
5
  right-0
6
+ fixed
6
7
  h-screen
7
8
  w-screen
8
9
  bg-screen
@@ -8,8 +8,6 @@ import { Paragraph } from "./Paragraph";
8
8
  The paragraph is used to render text with predefined leading and margin.
9
9
  Use paragraph when you want to show large blocks of text.
10
10
 
11
- Paragraph renders text with the following defaults: `["text-body", "text-gray-700", "leading-normal", "my-6"]`
12
-
13
11
  ```jsx
14
12
  import { Paragraph } from "@conveyorhq/arrow-ds";
15
13
  ```
@@ -23,3 +21,19 @@ import { Paragraph } from "@conveyorhq/arrow-ds";
23
21
  ## Props
24
22
 
25
23
  <Props of={Paragraph} />
24
+
25
+ ## Demos
26
+
27
+ ### Changing styles
28
+
29
+ Paragraph renders text with the following defaults: `["text-body", "text-gray-700", "leading-normal", "my-6"]`.
30
+
31
+ These can be overridden as needed.
32
+
33
+ <Preview>
34
+ <Story name="Paragraph changing styles">
35
+ <Paragraph className="text-h2 text-blue-400 my-2">
36
+ This is the Paragraph component with custom styles
37
+ </Paragraph>
38
+ </Story>
39
+ </Preview>