@openedx/paragon 22.4.0 → 23.0.0-alpha.1

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 (530) hide show
  1. package/README.md +36 -5
  2. package/bin/paragon-scripts.js +128 -9
  3. package/dist/ActionRow/_index.scss +2 -4
  4. package/dist/Alert/index.scss +41 -32
  5. package/dist/Annotation/_mixins.scss +104 -0
  6. package/dist/Annotation/index.scss +130 -103
  7. package/dist/Avatar/index.scss +18 -20
  8. package/dist/AvatarButton/index.scss +3 -5
  9. package/dist/Badge/index.scss +112 -2
  10. package/dist/Breadcrumb/index.scss +14 -16
  11. package/dist/Bubble/index.scss +25 -12
  12. package/dist/Button/_mixins.scss +14 -0
  13. package/dist/Button/button-group.scss +126 -0
  14. package/dist/Button/index.js +0 -2
  15. package/dist/Button/index.js.map +1 -1
  16. package/dist/Button/index.scss +855 -370
  17. package/dist/Card/card-bootstrap.scss +168 -0
  18. package/dist/Card/index.scss +78 -79
  19. package/dist/Carousel/index.scss +168 -2
  20. package/dist/Chip/index.scss +46 -37
  21. package/dist/Chip/mixins.scss +8 -3
  22. package/dist/ChipCarousel/index.scss +4 -4
  23. package/dist/CloseButton/index.scss +31 -2
  24. package/dist/Code/index.scss +47 -2
  25. package/dist/Collapsible/index.scss +15 -15
  26. package/dist/ColorPicker/index.scss +9 -11
  27. package/dist/DataTable/CollapsibleButtonGroup.js +2 -2
  28. package/dist/DataTable/CollapsibleButtonGroup.js.map +1 -1
  29. package/dist/DataTable/index.scss +48 -50
  30. package/dist/Dropdown/dropdown-bootstrap.scss +181 -0
  31. package/dist/Dropdown/index.js +0 -2
  32. package/dist/Dropdown/index.js.map +1 -1
  33. package/dist/Dropdown/index.scss +11 -12
  34. package/dist/Dropzone/index.scss +12 -14
  35. package/dist/Form/_FormText.scss +8 -8
  36. package/dist/Form/_bootstrap-custom-forms.scss +551 -0
  37. package/dist/Form/_bootstrap-forms.scss +381 -0
  38. package/dist/Form/_index.scss +168 -146
  39. package/dist/Form/_input-group.scss +188 -0
  40. package/dist/Form/_mixins.scss +216 -3
  41. package/dist/Hyperlink/index.scss +1 -1
  42. package/dist/Icon/index.scss +10 -12
  43. package/dist/IconButton/_mixins.scss +4 -0
  44. package/dist/IconButton/index.js +5 -11
  45. package/dist/IconButton/index.js.map +1 -1
  46. package/dist/IconButton/index.scss +387 -74
  47. package/dist/IconButtonToggle/index.scss +1 -1
  48. package/dist/Image/index.scss +53 -2
  49. package/dist/Menu/index.scss +25 -27
  50. package/dist/Modal/_ModalDialog.scss +52 -50
  51. package/dist/Modal/index.scss +6 -73
  52. package/dist/Nav/_mixins.scss +4 -4
  53. package/dist/Nav/index.scss +70 -66
  54. package/dist/Navbar/index.scss +276 -2
  55. package/dist/OverflowScroll/data/useOverflowScrollElementAttributes.js +3 -3
  56. package/dist/Overlay/index.js +2 -3
  57. package/dist/Overlay/index.js.map +1 -1
  58. package/dist/PageBanner/index.scss +17 -21
  59. package/dist/Pagination/index.scss +32 -34
  60. package/dist/Pagination/pagination-bootstrap.scss +83 -0
  61. package/dist/Popover/index.scss +9 -10
  62. package/dist/Popover/popover-bootstrap.scss +198 -0
  63. package/dist/ProductTour/Checkpoint.scss +71 -43
  64. package/dist/ProgressBar/_mixins.scss +22 -0
  65. package/dist/ProgressBar/bootstrap-progress.scss +49 -0
  66. package/dist/ProgressBar/index.scss +28 -36
  67. package/dist/Scrollable/index.scss +2 -2
  68. package/dist/SearchField/SearchFieldInput.js +2 -2
  69. package/dist/SearchField/SearchFieldInput.js.map +1 -1
  70. package/dist/SearchField/index.scss +15 -17
  71. package/dist/SelectableBox/index.scss +11 -13
  72. package/dist/Sheet/index.scss +10 -10
  73. package/dist/Spinner/index.scss +57 -2
  74. package/dist/Stack/index.scss +1 -3
  75. package/dist/Stepper/index.scss +19 -20
  76. package/dist/Sticky/index.scss +4 -6
  77. package/dist/Tabs/index.js +0 -2
  78. package/dist/Tabs/index.js.map +1 -1
  79. package/dist/Tabs/index.scss +26 -25
  80. package/dist/Toast/ToastContainer.scss +9 -11
  81. package/dist/Toast/bootstrap-toast.scss +46 -0
  82. package/dist/Toast/index.scss +9 -10
  83. package/dist/Tooltip/index.scss +136 -10
  84. package/dist/ValidationMessage/index.scss +1 -1
  85. package/dist/core.css +16788 -0
  86. package/dist/core.css.map +1 -0
  87. package/dist/core.min.css +2 -0
  88. package/dist/index.js +0 -14
  89. package/dist/index.scss +0 -4
  90. package/dist/light.css +4098 -0
  91. package/dist/light.css.map +1 -0
  92. package/dist/light.min.css +2 -0
  93. package/dist/theme-urls.json +21 -0
  94. package/dist/utils/breakpoints.js +1 -1
  95. package/lib/build-scss.js +188 -0
  96. package/lib/build-tokens.js +119 -0
  97. package/lib/help.js +36 -23
  98. package/lib/replace-variables.js +38 -0
  99. package/lib/utils.js +30 -0
  100. package/package.json +25 -10
  101. package/src/ActionRow/_index.scss +2 -4
  102. package/src/Alert/index.scss +41 -32
  103. package/src/Annotation/_mixins.scss +104 -0
  104. package/src/Annotation/index.scss +130 -103
  105. package/src/Avatar/index.scss +18 -20
  106. package/src/AvatarButton/index.scss +3 -5
  107. package/src/Badge/index.scss +112 -2
  108. package/src/Breadcrumb/index.scss +14 -16
  109. package/src/Bubble/index.scss +25 -12
  110. package/src/Button/README.md +0 -84
  111. package/src/Button/_mixins.scss +14 -0
  112. package/src/Button/button-group.scss +126 -0
  113. package/src/Button/index.jsx +0 -3
  114. package/src/Button/index.scss +855 -370
  115. package/src/Card/card-bootstrap.scss +168 -0
  116. package/src/Card/index.scss +78 -79
  117. package/src/Carousel/index.scss +168 -2
  118. package/src/Chip/index.scss +46 -37
  119. package/src/Chip/mixins.scss +8 -3
  120. package/src/ChipCarousel/index.scss +4 -4
  121. package/src/CloseButton/index.scss +31 -2
  122. package/src/Code/index.scss +47 -2
  123. package/src/Collapsible/index.scss +15 -15
  124. package/src/ColorPicker/index.scss +9 -11
  125. package/src/DataTable/CollapsibleButtonGroup.jsx +2 -2
  126. package/src/DataTable/index.scss +48 -50
  127. package/src/Dropdown/README.md +0 -93
  128. package/src/Dropdown/dropdown-bootstrap.scss +181 -0
  129. package/src/Dropdown/index.jsx +0 -2
  130. package/src/Dropdown/index.scss +11 -12
  131. package/src/Dropzone/index.scss +12 -14
  132. package/src/Form/_FormText.scss +8 -8
  133. package/src/Form/_bootstrap-custom-forms.scss +551 -0
  134. package/src/Form/_bootstrap-forms.scss +381 -0
  135. package/src/Form/_index.scss +168 -146
  136. package/src/Form/_input-group.scss +188 -0
  137. package/src/Form/_mixins.scss +216 -3
  138. package/src/Hyperlink/index.scss +1 -1
  139. package/src/Icon/index.scss +10 -12
  140. package/src/IconButton/README.md +1 -15
  141. package/src/IconButton/__snapshots__/IconButton.test.jsx.snap +5 -28
  142. package/src/IconButton/_mixins.scss +4 -0
  143. package/src/IconButton/index.jsx +6 -13
  144. package/src/IconButton/index.scss +387 -74
  145. package/src/IconButtonToggle/index.scss +1 -1
  146. package/src/Image/index.scss +53 -2
  147. package/src/Menu/index.scss +25 -27
  148. package/src/Modal/_ModalDialog.scss +52 -50
  149. package/src/Modal/index.scss +6 -73
  150. package/src/Nav/_mixins.scss +4 -4
  151. package/src/Nav/index.scss +70 -66
  152. package/src/Navbar/index.scss +276 -2
  153. package/src/OverflowScroll/data/useOverflowScrollElementAttributes.js +3 -3
  154. package/src/Overlay/index.jsx +2 -3
  155. package/src/PageBanner/index.scss +17 -21
  156. package/src/Pagination/index.scss +32 -34
  157. package/src/Pagination/pagination-bootstrap.scss +83 -0
  158. package/src/Popover/index.scss +9 -10
  159. package/src/Popover/popover-bootstrap.scss +198 -0
  160. package/src/ProductTour/Checkpoint.scss +71 -43
  161. package/src/ProgressBar/_mixins.scss +22 -0
  162. package/src/ProgressBar/bootstrap-progress.scss +49 -0
  163. package/src/ProgressBar/index.scss +28 -36
  164. package/src/Scrollable/index.scss +2 -2
  165. package/src/SearchField/SearchFieldInput.jsx +2 -2
  166. package/src/SearchField/__snapshots__/SearchField.test.jsx.snap +12 -8
  167. package/src/SearchField/index.scss +15 -17
  168. package/src/SelectableBox/index.scss +11 -13
  169. package/src/Sheet/index.scss +10 -10
  170. package/src/Spinner/index.scss +57 -2
  171. package/src/Stack/index.scss +1 -3
  172. package/src/Stepper/index.scss +19 -20
  173. package/src/Sticky/index.scss +4 -6
  174. package/src/Tabs/README.md +1 -23
  175. package/src/Tabs/index.jsx +0 -3
  176. package/src/Tabs/index.scss +26 -25
  177. package/src/Toast/ToastContainer.scss +9 -11
  178. package/src/Toast/bootstrap-toast.scss +46 -0
  179. package/src/Toast/index.scss +9 -10
  180. package/src/Tooltip/index.scss +136 -10
  181. package/src/TransitionReplace/README.md +4 -4
  182. package/src/ValidationMessage/index.scss +1 -1
  183. package/src/index.js +0 -14
  184. package/src/index.scss +0 -4
  185. package/src/setupTest.js +0 -6
  186. package/src/utils/breakpoints.js +1 -1
  187. package/styles/css/core/custom-media-breakpoints.css +17 -0
  188. package/styles/css/core/index.css +2 -0
  189. package/styles/css/core/variables.css +614 -0
  190. package/styles/css/themes/light/index.css +2 -0
  191. package/styles/css/themes/light/utility-classes.css +2454 -0
  192. package/styles/css/themes/light/variables.css +1644 -0
  193. package/{scss → styles/scss}/core/_functions.scss +1 -1
  194. package/styles/scss/core/_grid.scss +21 -0
  195. package/{scss → styles/scss}/core/_utilities.scss +17 -11
  196. package/styles/scss/core/_variables.scss +869 -0
  197. package/styles/scss/core/bootstrap-override/_functions.scss +104 -0
  198. package/styles/scss/core/bootstrap-override/_mixins.scss +4 -0
  199. package/styles/scss/core/bootstrap-override/_utilities.scss +4 -0
  200. package/styles/scss/core/bootstrap-override/bootstrap.scss +2 -0
  201. package/styles/scss/core/bootstrap-override/mixins/_grid-framework.scss +80 -0
  202. package/styles/scss/core/bootstrap-override/mixins/_grid.scss +69 -0
  203. package/styles/scss/core/bootstrap-override/mixins/_list-group.scss +22 -0
  204. package/styles/scss/core/bootstrap-override/utilities/_background.scss +7 -0
  205. package/styles/scss/core/bootstrap-override/utilities/_borders.scss +67 -0
  206. package/styles/scss/core/bootstrap-override/utilities/_spacing.scss +70 -0
  207. package/styles/scss/core/bootstrap-override/utilities/_text.scss +68 -0
  208. package/styles/scss/core/core.scss +21 -0
  209. package/{scss → styles/scss}/core/utilities-only.scss +1 -0
  210. package/tokens/README.md +158 -0
  211. package/tokens/css-utilities.js +56 -0
  212. package/tokens/map-scss-to-css.js +24 -0
  213. package/tokens/replace-variables.js +32 -0
  214. package/tokens/sass-helpers.js +98 -0
  215. package/tokens/src/core/alias/size.json +15 -0
  216. package/tokens/src/core/components/ActionRow.json +10 -0
  217. package/tokens/src/core/components/Alert.json +30 -0
  218. package/tokens/src/core/components/Annotation.json +25 -0
  219. package/tokens/src/core/components/Avatar.json +17 -0
  220. package/tokens/src/core/components/AvatarButton.json +11 -0
  221. package/tokens/src/core/components/Badge.json +33 -0
  222. package/tokens/src/core/components/Breadcrumb.json +37 -0
  223. package/tokens/src/core/components/Bubble.json +10 -0
  224. package/tokens/src/core/components/Button/core.json +105 -0
  225. package/tokens/src/core/components/Card.json +91 -0
  226. package/tokens/src/core/components/Carousel.json +37 -0
  227. package/tokens/src/core/components/Chip.json +43 -0
  228. package/tokens/src/core/components/ChipCarousel.json +15 -0
  229. package/tokens/src/core/components/CloseButton.json +14 -0
  230. package/tokens/src/core/components/Code.json +34 -0
  231. package/tokens/src/core/components/Collapsible.json +29 -0
  232. package/tokens/src/core/components/ColorPicker.json +8 -0
  233. package/tokens/src/core/components/Container.json +13 -0
  234. package/tokens/src/core/components/DataTable.json +27 -0
  235. package/tokens/src/core/components/Dropdown.json +67 -0
  236. package/tokens/src/core/components/Dropzone.json +21 -0
  237. package/tokens/src/core/components/Form/other.json +14 -0
  238. package/tokens/src/core/components/Form/size.json +233 -0
  239. package/tokens/src/core/components/Form/spacing.json +155 -0
  240. package/tokens/src/core/components/Form/transition.json +16 -0
  241. package/tokens/src/core/components/Form/typography.json +122 -0
  242. package/tokens/src/core/components/Icon.json +11 -0
  243. package/tokens/src/core/components/IconButton.json +15 -0
  244. package/tokens/src/core/components/Image.json +28 -0
  245. package/tokens/src/core/components/Menu.json +48 -0
  246. package/tokens/src/core/components/Modal.json +47 -0
  247. package/tokens/src/core/components/Nav.json +55 -0
  248. package/tokens/src/core/components/Navbar.json +70 -0
  249. package/tokens/src/core/components/Pagination.json +70 -0
  250. package/tokens/src/core/components/Popover.json +48 -0
  251. package/tokens/src/core/components/ProductTour.json +37 -0
  252. package/tokens/src/core/components/ProgressBar.json +39 -0
  253. package/tokens/src/core/components/SearchField.json +23 -0
  254. package/tokens/src/core/components/SelectableBox.json +9 -0
  255. package/tokens/src/core/components/Sheet.json +10 -0
  256. package/tokens/src/core/components/Spinner.json +19 -0
  257. package/tokens/src/core/components/Stack.json +7 -0
  258. package/tokens/src/core/components/Stepper.json +42 -0
  259. package/tokens/src/core/components/Sticky.json +7 -0
  260. package/tokens/src/core/components/Tab.json +19 -0
  261. package/tokens/src/core/components/Tabs.json +19 -0
  262. package/tokens/src/core/components/Toast.json +30 -0
  263. package/tokens/src/core/components/Tooltip.json +33 -0
  264. package/tokens/src/core/components/general/caret.json +13 -0
  265. package/tokens/src/core/components/general/headings.json +16 -0
  266. package/tokens/src/core/components/general/hr.json +10 -0
  267. package/tokens/src/core/components/general/input.json +51 -0
  268. package/tokens/src/core/components/general/link.json +30 -0
  269. package/tokens/src/core/components/general/list.json +26 -0
  270. package/tokens/src/core/components/general/text.json +24 -0
  271. package/tokens/src/core/global/breakpoints.json +12 -0
  272. package/tokens/src/core/global/display.json +21 -0
  273. package/tokens/src/core/global/elevation.json +19 -0
  274. package/tokens/src/core/global/other.json +4 -0
  275. package/tokens/src/core/global/spacing.json +35 -0
  276. package/tokens/src/core/global/transition.json +14 -0
  277. package/tokens/src/core/global/typography.json +91 -0
  278. package/tokens/src/core/utilities/color.json +12 -0
  279. package/tokens/src/themes/light/alias/color.json +114 -0
  280. package/tokens/src/themes/light/components/Alert.json +47 -0
  281. package/tokens/src/themes/light/components/Annotation.json +29 -0
  282. package/tokens/src/themes/light/components/Avatar.json +7 -0
  283. package/tokens/src/themes/light/components/Badge.json +186 -0
  284. package/tokens/src/themes/light/components/Breadcrumb.json +14 -0
  285. package/tokens/src/themes/light/components/Bubble.json +18 -0
  286. package/tokens/src/themes/light/components/Button/brand.json +260 -0
  287. package/tokens/src/themes/light/components/Button/core.json +24 -0
  288. package/tokens/src/themes/light/components/Button/danger.json +247 -0
  289. package/tokens/src/themes/light/components/Button/dark.json +230 -0
  290. package/tokens/src/themes/light/components/Button/info.json +238 -0
  291. package/tokens/src/themes/light/components/Button/light.json +236 -0
  292. package/tokens/src/themes/light/components/Button/primary.json +250 -0
  293. package/tokens/src/themes/light/components/Button/secondary.json +278 -0
  294. package/tokens/src/themes/light/components/Button/success.json +253 -0
  295. package/tokens/src/themes/light/components/Button/tertiary.json +109 -0
  296. package/tokens/src/themes/light/components/Button/warning.json +276 -0
  297. package/tokens/src/themes/light/components/Card.json +40 -0
  298. package/tokens/src/themes/light/components/Carousel.json +45 -0
  299. package/tokens/src/themes/light/components/Chip.json +50 -0
  300. package/tokens/src/themes/light/components/CloseButton.json +10 -0
  301. package/tokens/src/themes/light/components/Code.json +23 -0
  302. package/tokens/src/themes/light/components/DataTable.json +26 -0
  303. package/tokens/src/themes/light/components/Dropdown.json +41 -0
  304. package/tokens/src/themes/light/components/Dropzone.json +23 -0
  305. package/tokens/src/themes/light/components/Form/color.json +270 -0
  306. package/tokens/src/themes/light/components/Form/elevation.json +76 -0
  307. package/tokens/src/themes/light/components/Form/other.json +131 -0
  308. package/tokens/src/themes/light/components/IconButton.json +451 -0
  309. package/tokens/src/themes/light/components/Image.json +18 -0
  310. package/tokens/src/themes/light/components/Menu.json +30 -0
  311. package/tokens/src/themes/light/components/Modal.json +37 -0
  312. package/tokens/src/themes/light/components/Nav.json +166 -0
  313. package/tokens/src/themes/light/components/Navbar.json +136 -0
  314. package/tokens/src/themes/light/components/OverflowScroll.json +9 -0
  315. package/tokens/src/themes/light/components/PageBanner.json +24 -0
  316. package/tokens/src/themes/light/components/Pagination.json +45 -0
  317. package/tokens/src/themes/light/components/Popover.json +55 -0
  318. package/tokens/src/themes/light/components/ProductTour.json +35 -0
  319. package/tokens/src/themes/light/components/ProgressBar.json +20 -0
  320. package/tokens/src/themes/light/components/Scrollable.json +14 -0
  321. package/tokens/src/themes/light/components/SearchField.json +25 -0
  322. package/tokens/src/themes/light/components/Sheet.json +22 -0
  323. package/tokens/src/themes/light/components/Stepper.json +34 -0
  324. package/tokens/src/themes/light/components/Sticky.json +18 -0
  325. package/tokens/src/themes/light/components/Tab.json +62 -0
  326. package/tokens/src/themes/light/components/Toast.json +33 -0
  327. package/tokens/src/themes/light/components/Tooltip.json +30 -0
  328. package/tokens/src/themes/light/components/general/body.json +8 -0
  329. package/tokens/src/themes/light/components/general/headings.json +7 -0
  330. package/tokens/src/themes/light/components/general/hr.json +15 -0
  331. package/tokens/src/themes/light/components/general/input.json +18 -0
  332. package/tokens/src/themes/light/components/general/link.json +109 -0
  333. package/tokens/src/themes/light/components/general/list.json +38 -0
  334. package/tokens/src/themes/light/components/general/text.json +6 -0
  335. package/tokens/src/themes/light/global/color.json +1661 -0
  336. package/tokens/src/themes/light/global/elevation.json +201 -0
  337. package/tokens/src/themes/light/global/other.json +4 -0
  338. package/tokens/style-dictionary.js +223 -0
  339. package/tokens/utils.js +210 -0
  340. package/dist/ActionRow/_variables.scss +0 -2
  341. package/dist/Alert/_variables.scss +0 -24
  342. package/dist/Annotation/_variables.scss +0 -18
  343. package/dist/Avatar/_variables.scss +0 -10
  344. package/dist/AvatarButton/_variables.scss +0 -3
  345. package/dist/Badge/_variables.scss +0 -16
  346. package/dist/Breadcrumb/_variables.scss +0 -27
  347. package/dist/Bubble/_variables.scss +0 -8
  348. package/dist/Button/_variables.scss +0 -52
  349. package/dist/Button/deprecated/index.js +0 -149
  350. package/dist/Button/deprecated/index.js.map +0 -1
  351. package/dist/Card/_variables.scss +0 -55
  352. package/dist/Carousel/_variables.scss +0 -27
  353. package/dist/CheckBox/index.js +0 -102
  354. package/dist/CheckBox/index.js.map +0 -1
  355. package/dist/CheckBoxGroup/index.js +0 -15
  356. package/dist/CheckBoxGroup/index.js.map +0 -1
  357. package/dist/Chip/_variables.scss +0 -28
  358. package/dist/ChipCarousel/_variables.scss +0 -3
  359. package/dist/CloseButton/_variables.scss +0 -6
  360. package/dist/Code/_variables.scss +0 -17
  361. package/dist/Collapsible/_variables.scss +0 -12
  362. package/dist/ColorPicker/_variables.scss +0 -2
  363. package/dist/Container/_variables.scss +0 -5
  364. package/dist/DataTable/_variables.scss +0 -11
  365. package/dist/Dropdown/_variables.scss +0 -33
  366. package/dist/Dropdown/deprecated/DropdownButton.js +0 -44
  367. package/dist/Dropdown/deprecated/DropdownButton.js.map +0 -1
  368. package/dist/Dropdown/deprecated/DropdownItem.js +0 -33
  369. package/dist/Dropdown/deprecated/DropdownItem.js.map +0 -1
  370. package/dist/Dropdown/deprecated/DropdownMenu.js +0 -46
  371. package/dist/Dropdown/deprecated/DropdownMenu.js.map +0 -1
  372. package/dist/Dropdown/deprecated/index.js +0 -241
  373. package/dist/Dropdown/deprecated/index.js.map +0 -1
  374. package/dist/Dropzone/_variables.scss +0 -9
  375. package/dist/Fieldset/index.js +0 -117
  376. package/dist/Fieldset/index.js.map +0 -1
  377. package/dist/Fieldset/index.scss +0 -12
  378. package/dist/Form/_variables.scss +0 -267
  379. package/dist/Icon/_variables.scss +0 -7
  380. package/dist/Image/_variables.scss +0 -13
  381. package/dist/Input/index.js +0 -166
  382. package/dist/Input/index.js.map +0 -1
  383. package/dist/InputSelect/index.js +0 -105
  384. package/dist/InputSelect/index.js.map +0 -1
  385. package/dist/InputText/index.js +0 -45
  386. package/dist/InputText/index.js.map +0 -1
  387. package/dist/ListBox/index.js +0 -148
  388. package/dist/ListBox/index.js.map +0 -1
  389. package/dist/ListBoxOption/index.js +0 -94
  390. package/dist/ListBoxOption/index.js.map +0 -1
  391. package/dist/Menu/_variables.scss +0 -24
  392. package/dist/Modal/_variables.scss +0 -50
  393. package/dist/Modal/index.js +0 -292
  394. package/dist/Modal/index.js.map +0 -1
  395. package/dist/Nav/_variables.scss +0 -58
  396. package/dist/Navbar/_variables.scss +0 -40
  397. package/dist/OverflowScroll/_variables.scss +0 -5
  398. package/dist/OverflowScroll/index.scss +0 -1
  399. package/dist/Pagination/_variables.scss +0 -19
  400. package/dist/Popover/_variables.scss +0 -36
  401. package/dist/ProductTour/_variables.scss +0 -15
  402. package/dist/ProgressBar/_variables.scss +0 -23
  403. package/dist/RadioButtonGroup/index.js +0 -188
  404. package/dist/RadioButtonGroup/index.js.map +0 -1
  405. package/dist/SearchField/_variables.scss +0 -14
  406. package/dist/SelectableBox/_variables.scss +0 -5
  407. package/dist/Spinner/_variables.scss +0 -9
  408. package/dist/Stack/_variables.scss +0 -1
  409. package/dist/StatusAlert/index.js +0 -168
  410. package/dist/StatusAlert/index.js.map +0 -1
  411. package/dist/Stepper/_variables.scss +0 -18
  412. package/dist/Sticky/_variables.scss +0 -3
  413. package/dist/Table/_variables.scss +0 -34
  414. package/dist/Table/index.js +0 -267
  415. package/dist/Table/index.js.map +0 -1
  416. package/dist/Table/index.scss +0 -12
  417. package/dist/Tabs/_variables.scss +0 -24
  418. package/dist/Tabs/deprecated/Tabs.scss +0 -3
  419. package/dist/Tabs/deprecated/index.js +0 -123
  420. package/dist/Tabs/deprecated/index.js.map +0 -1
  421. package/dist/TextArea/index.js +0 -44
  422. package/dist/TextArea/index.js.map +0 -1
  423. package/dist/Toast/_variables.scss +0 -19
  424. package/dist/Tooltip/_variables.scss +0 -21
  425. package/dist/ValidationFormGroup/index.js +0 -106
  426. package/dist/ValidationFormGroup/index.js.map +0 -1
  427. package/dist/paragon.css +0 -45
  428. package/scss/core/_grid.scss +0 -21
  429. package/scss/core/_variables.scss +0 -875
  430. package/scss/core/core.scss +0 -21
  431. package/src/ActionRow/_variables.scss +0 -2
  432. package/src/Alert/_variables.scss +0 -24
  433. package/src/Annotation/_variables.scss +0 -18
  434. package/src/Avatar/_variables.scss +0 -10
  435. package/src/AvatarButton/_variables.scss +0 -3
  436. package/src/Badge/_variables.scss +0 -16
  437. package/src/Breadcrumb/_variables.scss +0 -27
  438. package/src/Bubble/_variables.scss +0 -8
  439. package/src/Button/_variables.scss +0 -52
  440. package/src/Button/deprecated/Button.test.jsx +0 -34
  441. package/src/Button/deprecated/index.jsx +0 -145
  442. package/src/Card/_variables.scss +0 -55
  443. package/src/Carousel/_variables.scss +0 -27
  444. package/src/CheckBox/CheckBox.test.jsx +0 -65
  445. package/src/CheckBox/README.md +0 -93
  446. package/src/CheckBox/index.jsx +0 -80
  447. package/src/CheckBoxGroup/CheckBoxGroup.test.jsx +0 -33
  448. package/src/CheckBoxGroup/README.md +0 -35
  449. package/src/CheckBoxGroup/index.jsx +0 -19
  450. package/src/Chip/_variables.scss +0 -28
  451. package/src/ChipCarousel/_variables.scss +0 -3
  452. package/src/CloseButton/_variables.scss +0 -6
  453. package/src/Code/_variables.scss +0 -17
  454. package/src/Collapsible/_variables.scss +0 -12
  455. package/src/ColorPicker/_variables.scss +0 -2
  456. package/src/Container/_variables.scss +0 -5
  457. package/src/DataTable/_variables.scss +0 -11
  458. package/src/Dropdown/_variables.scss +0 -33
  459. package/src/Dropdown/deprecated/Dropdown.test.jsx +0 -238
  460. package/src/Dropdown/deprecated/DropdownButton.jsx +0 -52
  461. package/src/Dropdown/deprecated/DropdownItem.jsx +0 -34
  462. package/src/Dropdown/deprecated/DropdownMenu.jsx +0 -50
  463. package/src/Dropdown/deprecated/__snapshots__/Dropdown.test.jsx.snap +0 -229
  464. package/src/Dropdown/deprecated/index.jsx +0 -222
  465. package/src/Dropzone/_variables.scss +0 -9
  466. package/src/Fieldset/Fieldset.test.jsx +0 -101
  467. package/src/Fieldset/README.md +0 -146
  468. package/src/Fieldset/index.jsx +0 -107
  469. package/src/Fieldset/index.scss +0 -12
  470. package/src/Form/_variables.scss +0 -267
  471. package/src/Icon/_variables.scss +0 -7
  472. package/src/Image/_variables.scss +0 -13
  473. package/src/Input/README.md +0 -74
  474. package/src/Input/__snapshots__/input.test.jsx.snap +0 -53
  475. package/src/Input/index.jsx +0 -151
  476. package/src/Input/input.test.jsx +0 -85
  477. package/src/InputSelect/README.md +0 -136
  478. package/src/InputSelect/index.jsx +0 -92
  479. package/src/InputText/InputText.test.jsx +0 -74
  480. package/src/InputText/README.md +0 -293
  481. package/src/InputText/index.jsx +0 -49
  482. package/src/ListBox/ListBox.test.jsx +0 -161
  483. package/src/ListBox/README.md +0 -185
  484. package/src/ListBox/index.jsx +0 -115
  485. package/src/ListBoxOption/ListBoxOption.test.jsx +0 -154
  486. package/src/ListBoxOption/index.jsx +0 -78
  487. package/src/Menu/_variables.scss +0 -24
  488. package/src/Modal/README.md +0 -148
  489. package/src/Modal/_variables.scss +0 -50
  490. package/src/Modal/index.jsx +0 -319
  491. package/src/Modal/tests/Modal.test.jsx +0 -261
  492. package/src/Nav/_variables.scss +0 -58
  493. package/src/Navbar/_variables.scss +0 -40
  494. package/src/OverflowScroll/_variables.scss +0 -5
  495. package/src/OverflowScroll/index.scss +0 -1
  496. package/src/Pagination/_variables.scss +0 -19
  497. package/src/Popover/_variables.scss +0 -36
  498. package/src/ProductTour/_variables.scss +0 -15
  499. package/src/ProgressBar/_variables.scss +0 -23
  500. package/src/RadioButtonGroup/README.md +0 -50
  501. package/src/RadioButtonGroup/RadioButtonGroup.test.jsx +0 -127
  502. package/src/RadioButtonGroup/index.jsx +0 -185
  503. package/src/SearchField/_variables.scss +0 -14
  504. package/src/SelectableBox/_variables.scss +0 -5
  505. package/src/Spinner/_variables.scss +0 -9
  506. package/src/Stack/_variables.scss +0 -1
  507. package/src/StatusAlert/README.md +0 -149
  508. package/src/StatusAlert/StatusAlert.test.jsx +0 -150
  509. package/src/StatusAlert/index.jsx +0 -144
  510. package/src/Stepper/_variables.scss +0 -18
  511. package/src/Sticky/_variables.scss +0 -3
  512. package/src/Table/README.md +0 -506
  513. package/src/Table/Table.test.jsx +0 -367
  514. package/src/Table/_variables.scss +0 -34
  515. package/src/Table/index.jsx +0 -264
  516. package/src/Table/index.scss +0 -12
  517. package/src/Tabs/_variables.scss +0 -24
  518. package/src/Tabs/deprecated/Tabs.scss +0 -3
  519. package/src/Tabs/deprecated/Tabs.test.jsx +0 -50
  520. package/src/Tabs/deprecated/index.jsx +0 -117
  521. package/src/TextArea/README.md +0 -63
  522. package/src/TextArea/index.jsx +0 -48
  523. package/src/Toast/_variables.scss +0 -19
  524. package/src/Tooltip/_variables.scss +0 -21
  525. package/src/ValidationFormGroup/README.md +0 -116
  526. package/src/ValidationFormGroup/ValidationFormGroup.test.jsx +0 -146
  527. package/src/ValidationFormGroup/__snapshots__/ValidationFormGroup.test.jsx.snap +0 -161
  528. package/src/ValidationFormGroup/index.jsx +0 -114
  529. /package/{scss → styles/scss}/core/_exports.module.scss +0 -0
  530. /package/{scss → styles/scss}/core/_typography.scss +0 -0
@@ -1,24 +0,0 @@
1
- $tab-notification-height: 1rem !default;
2
- $tab-notification-width: 1rem !default;
3
- $tab-notification-font-size: $font-size-xs !default;
4
- $tab-more-link-dropdown-toggle-padding-x: .7rem !default;
5
- $tab-more-link-dropdown-toggle-padding-y: $spacer !default;
6
- $tab-more-link-dropdown-toggle-focus-bg: $primary-500 !default;
7
- $tab-more-link-dropdown-toggle-focus-border-color: $tab-more-link-dropdown-toggle-focus-bg !default;
8
- $tab-more-link-dropdown-toggle-focus-color: $white !default;
9
- $tab-more-link-dropdown-toggle-btn-focus-color: $tab-more-link-dropdown-toggle-focus-color !default;
10
- $tab-more-link-dropdown-toggle-btn-focus-border-color: $tab-more-link-dropdown-toggle-focus-bg !default;
11
- $tab-more-link-dropdown-toggle-active-color: $tab-more-link-dropdown-toggle-focus-color !default;
12
- $tab-more-link-dropdown-toggle-hover-color: $tab-more-link-dropdown-toggle-focus-bg !default;
13
- $tab-inverse-pills-link-dropdown-toggle-padding-x: .625rem !default;
14
- $tab-inverse-pills-link-dropdown-toggle-padding-y: $spacer !default;
15
- $tab-inverse-pills-link-dropdown-toggle-focus-bg: $white !default;
16
- $tab-inverse-pills-link-dropdown-toggle-focus-color: $primary-500 !default;
17
- $tab-inverse-pills-link-dropdown-toggle-focus-border-color: $tab-inverse-pills-link-dropdown-toggle-focus-bg !default;
18
- $tab-inverse-pills-link-dropdown-toggle-active-color: $tab-inverse-pills-link-dropdown-toggle-focus-color !default;
19
- $tab-inverse-pills-link-dropdown-toggle-active-hover-color: $tab-inverse-pills-link-dropdown-toggle-focus-bg !default;
20
- $tab-inverse-pills-link-dropdown-toggle-active-hover-bg: $primary-300 !default;
21
- $tab-inverse-pills-link-dropdown-distance: 5px !default;
22
- $tab-inverse-tabs-link-dropdown-toggle-padding-x: .625rem !default;
23
- $tab-inverse-tabs-link-dropdown-toggle-padding-y: $spacer !default;
24
- $tab-inverse-tabs-link-dropdown-toggle-hover-bg: transparent !default;
@@ -1,3 +0,0 @@
1
- .nav-tabs .nav-link {
2
- background: transparent;
3
- }
@@ -1,50 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import userEvent from '@testing-library/user-event';
4
-
5
- import Tabs from '.';
6
-
7
- const props = {
8
- labels: [
9
- 'first',
10
- 'second',
11
- 'third',
12
- ],
13
- children: [
14
- <div key="first">first</div>,
15
- <div key="second">second</div>,
16
- <div key="third">third</div>,
17
- ],
18
- };
19
-
20
- const tabSelectedAtIndex = (index, container) => {
21
- const tabButtons = container.querySelectorAll('button');
22
- const tabPanes = container.querySelectorAll('.tab-pane');
23
-
24
- tabButtons.forEach((node, i) => {
25
- expect(node.getAttribute('aria-selected')).toEqual(i === index ? 'true' : 'false');
26
- });
27
-
28
- tabPanes.forEach((node, i) => {
29
- expect(node.classList.contains('active')).toEqual(i === index);
30
- });
31
- };
32
-
33
- describe('<Tabs />', () => {
34
- it('renders with first tab selected', () => {
35
- const { container } = render(<Tabs {...props} />);
36
- tabSelectedAtIndex(0, container);
37
- });
38
-
39
- describe('switches tab selection', () => {
40
- it('on click', () => {
41
- const { container } = render(<Tabs {...props} />);
42
- const tabButtons = container.querySelectorAll('button');
43
-
44
- tabButtons.forEach((node, i) => {
45
- userEvent.click(node);
46
- tabSelectedAtIndex(i, container);
47
- });
48
- });
49
- });
50
- });
@@ -1,117 +0,0 @@
1
- // TODO: @jaebradley fix these eslint errors
2
- /* eslint-disable jsx-a11y/click-events-have-key-events */
3
- /* eslint-disable jsx-a11y/anchor-is-valid */
4
- /* eslint-disable max-len */
5
- import React from 'react';
6
- import classNames from 'classnames';
7
- import PropTypes from 'prop-types';
8
-
9
- import newId from '../../utils/newId';
10
-
11
- class Tabs extends React.Component {
12
- constructor(props) {
13
- super(props);
14
-
15
- this.toggle = this.toggle.bind(this);
16
- this.state = {
17
- activeTab: 0,
18
- uuid: newId('tabInterface'),
19
- };
20
- }
21
-
22
- toggle(tab) {
23
- if (this.state.activeTab !== tab) {
24
- this.setState({
25
- activeTab: tab,
26
- });
27
- }
28
- }
29
-
30
- genLabelId(index) {
31
- return `tab-label-${this.state.uuid}-${index}`;
32
- }
33
-
34
- genPanelId(index) {
35
- return `tab-panel-${this.state.uuid}-${index}`;
36
- }
37
-
38
- buildLabels() {
39
- return this.props.labels.map((label, i) => {
40
- const selected = this.state.activeTab === i;
41
- const labelId = this.genLabelId(i);
42
-
43
- return (
44
- <li key={labelId}>
45
- {/* eslint-disable-next-line react/button-has-type */}
46
- <button
47
- role="tab"
48
- aria-selected={selected}
49
- aria-controls={this.genPanelId(i)}
50
- id={labelId}
51
- onClick={() => { this.toggle(i); }}
52
- className={classNames('nav-link nav-item', {
53
- active: selected,
54
- })}
55
- >
56
- {label}
57
- </button>
58
- </li>
59
- );
60
- });
61
- }
62
-
63
- buildPanels() {
64
- return this.props.children.map((panel, i) => {
65
- const selected = this.state.activeTab === i;
66
- const panelId = this.genPanelId(i);
67
-
68
- return (
69
- <div
70
- aria-hidden={!selected}
71
- aria-labelledby={this.genLabelId(i)}
72
- className={classNames(
73
- 'tab-pane',
74
- { active: selected },
75
- )}
76
- id={panelId}
77
- key={panelId}
78
- role="tabpanel"
79
- >
80
- {panel}
81
- </div>
82
- );
83
- });
84
- }
85
-
86
- render() {
87
- const labels = this.buildLabels();
88
- const panels = this.buildPanels();
89
-
90
- return (
91
- <div className="tabs">
92
- <ul
93
- role="tablist"
94
- className={classNames([
95
- 'nav',
96
- 'nav-tabs',
97
- ])}
98
- >
99
- {labels}
100
- </ul>
101
- <div role="tabpanel" className="tab-content">
102
- {panels}
103
- </div>
104
- </div>
105
- );
106
- }
107
- }
108
- // TODO: custom validator that ensures labels and panels are the same length
109
- Tabs.propTypes = {
110
- /** specifies the list of elements that will be displayed within each of the tabbed views. It is the content relevant to each label. Children should not be passed as Props, but should instead be nested between the opening and closing `<Tabs> </Tabs>` tags. */
111
- labels: PropTypes.arrayOf(PropTypes.node).isRequired,
112
- /** specifies the list of headings that will appear on all of the tabs that will be created.
113
- */
114
- children: PropTypes.arrayOf(PropTypes.element).isRequired,
115
- };
116
-
117
- export default Tabs;
@@ -1,63 +0,0 @@
1
- ---
2
- title: 'TextArea'
3
- type: 'component'
4
- components:
5
- - TextArea
6
- categories:
7
- - Forms (deprecated)
8
- status: 'Deprecate Soon'
9
- designStatus: 'TBD'
10
- devStatus: 'To Do'
11
- notes: |
12
- Replaced by Form.Control
13
- ---
14
-
15
- ## Minimal usage
16
-
17
- ```jsx live
18
- <TextArea
19
- name="name"
20
- label="First Name"
21
- value="Foo Bar"
22
- />
23
- ```
24
-
25
- ## Scrollable
26
-
27
- ```jsx live
28
- <TextArea
29
- name="name"
30
- label="Information"
31
- value="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
32
- />
33
- ```
34
-
35
- ## Validation
36
-
37
- ```jsx live
38
- <TextArea
39
- name="username"
40
- label="Username"
41
- description="The unique name that identifies you throughout the site."
42
- validator={value => {
43
- let feedback = { isValid: true };
44
- if (value.length < 3) {
45
- feedback = {
46
- isValid: false,
47
- validationMessage: 'Username must be at least 3 characters in length.',
48
- };
49
- }
50
- return feedback;
51
- }}
52
- />
53
- ```
54
-
55
- ## Label as element
56
-
57
- ```jsx live
58
- <TextArea
59
- name="username"
60
- label={<span lang="en">Element</span>}
61
- value="Label is wrapped in language span"
62
- />
63
- ```
@@ -1,48 +0,0 @@
1
- /* eslint-disable max-len */
2
- import React from 'react';
3
- import PropTypes from 'prop-types';
4
-
5
- import asInput from '../asInput';
6
- import withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';
7
-
8
- function Text(props) {
9
- const {
10
- className,
11
- inputRef,
12
- ...others
13
- } = props;
14
-
15
- return (
16
- <textarea
17
- {...others}
18
- className={className}
19
- ref={inputRef}
20
- />
21
- );
22
- }
23
-
24
- Text.propTypes = {
25
- className: PropTypes.string,
26
- /** specifies all of the properties that are necessary from the included `asInput` component. Please see details for input requirements within that component.
27
- */
28
- inputRef: PropTypes.oneOfType([
29
- PropTypes.func,
30
- PropTypes.shape({ current: PropTypes.instanceOf(PropTypes.element) }),
31
- ]),
32
- };
33
-
34
- Text.defaultProps = {
35
- className: undefined,
36
- inputRef: undefined,
37
- };
38
-
39
- const TextArea = asInput(withDeprecatedProps(Text, 'TextArea', {
40
- className: {
41
- deprType: DeprTypes.FORMAT,
42
- expect: value => typeof value === 'string',
43
- transform: value => (Array.isArray(value) ? value.join(' ') : value),
44
- message: 'It should be a string.',
45
- },
46
- }));
47
-
48
- export default TextArea;
@@ -1,19 +0,0 @@
1
- // Toasts
2
-
3
- $toast-max-width: 400px !default;
4
- $toast-padding-x: .75rem !default;
5
- $toast-padding-y: .25rem !default;
6
- $toast-font-size: .875rem !default;
7
- $toast-color: null !default;
8
- $toast-background-color: $gray-700 !default;
9
- $toast-border-width: 1px !default;
10
- $toast-border-color: rgba(0, 0, 0, .1) !default;
11
- $toast-border-radius: .25rem !default;
12
- $toast-box-shadow: 0 1.25rem 2.5rem rgba($black, .15), 0 .5rem 3rem rgba($black, .15) !default;
13
-
14
- $toast-header-color: $white !default;
15
- $toast-header-background-color: $gray-700 !default;
16
- $toast-header-border-color: rgba(0, 0, 0, .5) !default;
17
-
18
- $toast-container-gutter-lg: 1.25rem !default;
19
- $toast-container-gutter-sm: .625rem !default;
@@ -1,21 +0,0 @@
1
- // Tooltips
2
-
3
- $tooltip-font-size: $font-size-sm !default;
4
- $tooltip-max-width: 200px !default;
5
- $tooltip-color: $white !default;
6
- $tooltip-bg: $black !default;
7
- $tooltip-border-radius: $border-radius !default;
8
- $tooltip-opacity: 1 !default;
9
- $tooltip-padding-y: .5rem !default;
10
- $tooltip-padding-x: .5rem !default;
11
- $tooltip-margin: 0 !default;
12
- $tooltip-box-shadow: drop-shadow(0 2px 4px rgba(0, 0, 0, .15))
13
- drop-shadow(0 2px 8px rgba(0, 0, 0, .15)) !default;
14
-
15
- $tooltip-arrow-width: .8rem !default;
16
- $tooltip-arrow-height: .4rem !default;
17
- $tooltip-arrow-color: $tooltip-bg !default;
18
-
19
- $tooltip-color-light: $black !default;
20
- $tooltip-bg-light: $white !default;
21
- $tooltip-arrow-color-light: $white !default;
@@ -1,116 +0,0 @@
1
- ---
2
- title: 'ValidationFormGroup'
3
- type: 'component'
4
- components:
5
- - ValidationFormGroup
6
- categories:
7
- - Forms (deprecated)
8
- status: 'Deprecate Soon'
9
- designStatus: 'Done'
10
- devStatus: 'Done'
11
- notes: |
12
- Replaced by Form.Group
13
- ---
14
-
15
- Handles bootstrap style field validation and handles related aria attributes.
16
-
17
- Manages the rendering of bootstrap-style:
18
-
19
- - Help text
20
- - Valid and invalid feedback
21
-
22
- For children of type input, textarea, and select:
23
-
24
- - Appends bootstrap validation class names
25
- - Appends aria-describedby attributes (for help text and feedback)
26
-
27
- ## basic usage
28
-
29
- ```jsx live
30
- <ValidationFormGroup
31
- for="firstName"
32
- helpText="This is your name."
33
- >
34
- <label htmlFor="firstName">First Name</label>
35
- <Input
36
- type="text"
37
- id="firstName"
38
- name="first-name"
39
- value="Casey"
40
- onChange={() => {}}
41
- />
42
- </ValidationFormGroup>
43
- ```
44
-
45
- ## invalid message
46
-
47
- ```jsx live
48
- <ValidationFormGroup
49
- for="firstName"
50
- invalid
51
- invalidMessage="Wrong!"
52
- >
53
- <label htmlFor="firstName">First Name</label>
54
- <Input
55
- type="text"
56
- id="firstName"
57
- name="first-name"
58
- value="Casey"
59
- onChange={() => {}}
60
- />
61
- </ValidationFormGroup>
62
- ```
63
-
64
- ## valid message
65
-
66
- ```jsx live
67
- <ValidationFormGroup
68
- for="firstName"
69
- valid
70
- validMessage="What a nice name!"
71
- >
72
- <label htmlFor="firstName">First Name</label>
73
- <Input
74
- type="text"
75
- id="firstName"
76
- name="first-name"
77
- value="Casey"
78
- onChange={() => {}}
79
- />
80
- </ValidationFormGroup>
81
- ```
82
-
83
- ## with any kind of input
84
-
85
- ```jsx live
86
- <>
87
- <ValidationFormGroup
88
- for="weatherToday"
89
- helpText="Look out the window to see."
90
- valid
91
- validMessage="Correct!"
92
- >
93
- <label htmlFor="weatherToday">How is the weather today?</label>
94
- <select
95
- className="form-control"
96
- id="weatherToday"
97
- name="weather"
98
- value="Sunny"
99
- onChange={() => {}}
100
- >
101
- <option>Sunny</option>
102
- <option>Cloudy</option>
103
- <option>Rainy</option>
104
- <option>Snowy</option>
105
- </select>
106
- </ValidationFormGroup>
107
- <ValidationFormGroup
108
- for="weatherTomorrow"
109
- helpText="Incoming weather."
110
- invalid
111
- invalidMessage="No good!"
112
- >
113
- <Form.Control type='text' value='Cloudy' />
114
- </ValidationFormGroup>
115
- </>
116
- ```
@@ -1,146 +0,0 @@
1
- import React from 'react';
2
- import renderer from 'react-test-renderer';
3
- import { render, screen } from '@testing-library/react';
4
-
5
- import Input from '../Input';
6
- import { FormControl, Form } from '..';
7
- import ValidationFormGroup from '.';
8
-
9
- describe('ValidationFormGroup', () => {
10
- const labelAndInputComponents = (
11
- <>
12
- <label htmlFor="firstName">First Name</label>
13
- <input
14
- className="form-control"
15
- type="text"
16
- id="firstName"
17
- name="first-name"
18
- value="Adam"
19
- onChange={() => {}}
20
- />
21
- </>
22
- );
23
-
24
- it('renders', () => {
25
- const tree = renderer.create((
26
- <ValidationFormGroup
27
- for="firstName"
28
- >
29
- {labelAndInputComponents}
30
- </ValidationFormGroup>
31
- )).toJSON();
32
- expect(tree).toMatchSnapshot();
33
- });
34
-
35
- it('renders with help text', () => {
36
- const tree = renderer.create((
37
- <ValidationFormGroup
38
- for="firstName"
39
- helpText="This is your first name."
40
- >
41
- {labelAndInputComponents}
42
- </ValidationFormGroup>
43
- )).toJSON();
44
- expect(tree).toMatchSnapshot();
45
- });
46
-
47
- it('renders an invalid message', () => {
48
- const tree = renderer.create((
49
- <ValidationFormGroup
50
- for="firstName"
51
- helpText="This is your first name."
52
- invalid
53
- invalidMessage="This is not your name."
54
- >
55
- {labelAndInputComponents}
56
- </ValidationFormGroup>
57
- )).toJSON();
58
- expect(tree).toMatchSnapshot();
59
- });
60
-
61
- it('renders a valid message', () => {
62
- const tree = renderer.create((
63
- <ValidationFormGroup
64
- for="firstName"
65
- helpText="This is your first name."
66
- valid
67
- validMessage="What a nice name."
68
- >
69
- {labelAndInputComponents}
70
- </ValidationFormGroup>
71
- )).toJSON();
72
- expect(tree).toMatchSnapshot();
73
- });
74
-
75
- it('renders an invalid message with a select input', () => {
76
- const tree = renderer.create((
77
- <ValidationFormGroup
78
- for="weatherToday"
79
- helpText="Look out the window to see."
80
- valid
81
- validMessage="Correct!"
82
- >
83
- <label htmlFor="weatherToday">How is the weather today?</label>
84
- <select id="weatherToday" name="weather" value="Sunny" onChange={() => {}}>
85
- <option>Sunny</option>
86
- <option>Cloudy</option>
87
- <option>Rainy</option>
88
- <option>Snowy</option>
89
- </select>
90
- </ValidationFormGroup>
91
- )).toJSON();
92
- expect(tree).toMatchSnapshot();
93
- });
94
- [
95
- { Component: Input, name: 'Input' },
96
- { Component: FormControl, name: 'FormControl' },
97
- { Component: Form.Control, name: 'Form.Control' },
98
- ].forEach(({ Component, name }) => {
99
- const formControlId = 'bestForm';
100
- const formControlHelp = 'So helpful';
101
- const validMessage = 'Valid feedback';
102
- const invalidMessage = 'Exterminate, Exterminate';
103
-
104
- it(`renders a ${name} child with the correct aria attributes and helptext`, () => {
105
- render(
106
- <ValidationFormGroup
107
- for={formControlId}
108
- helpText={formControlHelp}
109
- validMessage={validMessage}
110
- valid
111
- >
112
- <Component id={formControlId} />
113
- </ValidationFormGroup>,
114
- );
115
- const component = screen.getByRole('textbox');
116
- expect(component.getAttribute('aria-describedby')).toBe(`${formControlId}-help-text ${formControlId}-valid-feedback`);
117
- expect(screen.getByText(formControlHelp)).toBeTruthy();
118
- });
119
- it(`renders a ${name} child with the correct valid message`, () => {
120
- render(
121
- <ValidationFormGroup
122
- for={formControlId}
123
- helpText={formControlHelp}
124
- validMessage={validMessage}
125
- valid
126
- >
127
- <Component id={formControlId} />
128
- </ValidationFormGroup>,
129
- );
130
- expect(screen.getByText(validMessage)).toBeTruthy();
131
- });
132
- it(`renders a ${name} child with the correct invalid message`, () => {
133
- render(
134
- <ValidationFormGroup
135
- for={formControlId}
136
- helpText={formControlHelp}
137
- invalidMessage={invalidMessage}
138
- invalid
139
- >
140
- <Component id={formControlId} />
141
- </ValidationFormGroup>,
142
- );
143
- expect(screen.getByText(invalidMessage)).toBeTruthy();
144
- });
145
- });
146
- });