@openedx/paragon 21.7.1 → 22.0.0-alpha.15

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 (543) hide show
  1. package/README.md +36 -5
  2. package/bin/paragon-scripts.js +128 -10
  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 -358
  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 +36 -34
  21. package/dist/ChipCarousel/index.scss +1 -3
  22. package/dist/CloseButton/index.scss +31 -2
  23. package/dist/Code/index.scss +47 -2
  24. package/dist/Collapsible/index.scss +15 -15
  25. package/dist/ColorPicker/index.scss +9 -11
  26. package/dist/DataTable/CollapsibleButtonGroup.js +2 -2
  27. package/dist/DataTable/CollapsibleButtonGroup.js.map +1 -1
  28. package/dist/DataTable/ExpandRow.js +8 -3
  29. package/dist/DataTable/ExpandRow.js.map +1 -1
  30. package/dist/DataTable/filters/TextFilter.js +2 -3
  31. package/dist/DataTable/filters/TextFilter.js.map +1 -1
  32. package/dist/DataTable/index.scss +48 -50
  33. package/dist/DataTable/selection/ControlledSelect.js +7 -3
  34. package/dist/DataTable/selection/ControlledSelect.js.map +1 -1
  35. package/dist/DataTable/selection/ControlledSelectHeader.js +7 -3
  36. package/dist/DataTable/selection/ControlledSelectHeader.js.map +1 -1
  37. package/dist/DataTable/selection/ControlledSelectionStatus.js +14 -5
  38. package/dist/DataTable/selection/ControlledSelectionStatus.js.map +1 -1
  39. package/dist/Dropdown/dropdown-bootstrap.scss +181 -0
  40. package/dist/Dropdown/index.js +0 -2
  41. package/dist/Dropdown/index.js.map +1 -1
  42. package/dist/Dropdown/index.scss +11 -12
  43. package/dist/Dropzone/index.scss +12 -14
  44. package/dist/Form/_FormText.scss +8 -8
  45. package/dist/Form/_bootstrap-custom-forms.scss +551 -0
  46. package/dist/Form/_bootstrap-forms.scss +381 -0
  47. package/dist/Form/_index.scss +165 -143
  48. package/dist/Form/_input-group.scss +188 -0
  49. package/dist/Form/_mixins.scss +216 -3
  50. package/dist/Hyperlink/index.scss +1 -1
  51. package/dist/Icon/index.scss +10 -12
  52. package/dist/IconButton/_mixins.scss +4 -0
  53. package/dist/IconButton/index.js +5 -11
  54. package/dist/IconButton/index.js.map +1 -1
  55. package/dist/IconButton/index.scss +387 -74
  56. package/dist/IconButtonToggle/index.scss +1 -1
  57. package/dist/Image/index.scss +53 -2
  58. package/dist/Menu/index.scss +25 -27
  59. package/dist/Modal/_ModalDialog.scss +51 -49
  60. package/dist/Modal/index.scss +6 -73
  61. package/dist/Nav/_mixins.scss +4 -4
  62. package/dist/Nav/index.scss +70 -66
  63. package/dist/Navbar/index.scss +276 -2
  64. package/dist/OverflowScroll/data/useOverflowScrollElementAttributes.js +3 -3
  65. package/dist/Overlay/index.js +2 -3
  66. package/dist/Overlay/index.js.map +1 -1
  67. package/dist/PageBanner/index.scss +17 -21
  68. package/dist/Pagination/index.scss +51 -46
  69. package/dist/Pagination/pagination-bootstrap.scss +83 -0
  70. package/dist/Popover/index.scss +9 -10
  71. package/dist/Popover/popover-bootstrap.scss +198 -0
  72. package/dist/ProductTour/Checkpoint.scss +71 -43
  73. package/dist/ProgressBar/_mixins.scss +22 -0
  74. package/dist/ProgressBar/bootstrap-progress.scss +49 -0
  75. package/dist/ProgressBar/index.scss +28 -36
  76. package/dist/Scrollable/index.scss +2 -2
  77. package/dist/SearchField/SearchFieldInput.js +2 -2
  78. package/dist/SearchField/SearchFieldInput.js.map +1 -1
  79. package/dist/SearchField/index.scss +19 -21
  80. package/dist/SelectableBox/index.scss +11 -13
  81. package/dist/Sheet/index.scss +10 -10
  82. package/dist/Spinner/index.scss +57 -2
  83. package/dist/Stack/index.scss +1 -3
  84. package/dist/Stepper/index.scss +19 -20
  85. package/dist/Sticky/index.scss +4 -6
  86. package/dist/Tabs/index.js +0 -2
  87. package/dist/Tabs/index.js.map +1 -1
  88. package/dist/Tabs/index.scss +23 -30
  89. package/dist/Toast/ToastContainer.scss +9 -11
  90. package/dist/Toast/bootstrap-toast.scss +46 -0
  91. package/dist/Toast/index.scss +9 -10
  92. package/dist/Tooltip/index.scss +136 -10
  93. package/dist/ValidationMessage/index.scss +1 -1
  94. package/dist/core.css +16706 -0
  95. package/dist/core.css.map +1 -0
  96. package/dist/core.min.css +2 -0
  97. package/dist/index.js +0 -14
  98. package/dist/index.scss +0 -4
  99. package/dist/light.css +4083 -0
  100. package/dist/light.css.map +1 -0
  101. package/dist/light.min.css +2 -0
  102. package/dist/theme-urls.json +21 -0
  103. package/dist/utils/breakpoints.js +1 -1
  104. package/lib/build-scss.js +188 -0
  105. package/lib/build-tokens.js +119 -0
  106. package/lib/help.js +36 -23
  107. package/lib/replace-variables.js +38 -0
  108. package/lib/utils.js +9 -0
  109. package/package.json +25 -11
  110. package/src/ActionRow/_index.scss +2 -4
  111. package/src/Alert/index.scss +41 -32
  112. package/src/Annotation/_mixins.scss +104 -0
  113. package/src/Annotation/index.scss +130 -103
  114. package/src/Avatar/index.scss +18 -20
  115. package/src/AvatarButton/index.scss +3 -5
  116. package/src/Badge/index.scss +112 -2
  117. package/src/Breadcrumb/index.scss +14 -16
  118. package/src/Bubble/index.scss +25 -12
  119. package/src/Button/README.md +0 -54
  120. package/src/Button/_mixins.scss +14 -0
  121. package/src/Button/button-group.scss +126 -0
  122. package/src/Button/index.jsx +0 -3
  123. package/src/Button/index.scss +855 -358
  124. package/src/Card/card-bootstrap.scss +168 -0
  125. package/src/Card/index.scss +78 -79
  126. package/src/Carousel/index.scss +168 -2
  127. package/src/Chip/index.scss +36 -34
  128. package/src/ChipCarousel/index.scss +1 -3
  129. package/src/CloseButton/index.scss +31 -2
  130. package/src/Code/index.scss +47 -2
  131. package/src/Collapsible/index.scss +15 -15
  132. package/src/ColorPicker/index.scss +9 -11
  133. package/src/DataTable/CollapsibleButtonGroup.jsx +2 -2
  134. package/src/DataTable/ExpandRow.jsx +2 -2
  135. package/src/DataTable/filters/TextFilter.jsx +2 -3
  136. package/src/DataTable/index.scss +48 -50
  137. package/src/DataTable/selection/ControlledSelect.jsx +2 -1
  138. package/src/DataTable/selection/ControlledSelectHeader.jsx +2 -1
  139. package/src/DataTable/selection/ControlledSelectionStatus.jsx +2 -1
  140. package/src/DataTable/tests/ExpandRow.test.jsx +8 -2
  141. package/src/Dropdown/README.md +0 -93
  142. package/src/Dropdown/dropdown-bootstrap.scss +181 -0
  143. package/src/Dropdown/index.jsx +0 -2
  144. package/src/Dropdown/index.scss +11 -12
  145. package/src/Dropzone/index.scss +12 -14
  146. package/src/Form/_FormText.scss +8 -8
  147. package/src/Form/_bootstrap-custom-forms.scss +551 -0
  148. package/src/Form/_bootstrap-forms.scss +381 -0
  149. package/src/Form/_index.scss +165 -143
  150. package/src/Form/_input-group.scss +188 -0
  151. package/src/Form/_mixins.scss +216 -3
  152. package/src/Hyperlink/index.scss +1 -1
  153. package/src/Icon/index.scss +10 -12
  154. package/src/IconButton/README.md +1 -15
  155. package/src/IconButton/__snapshots__/IconButton.test.jsx.snap +5 -26
  156. package/src/IconButton/_mixins.scss +4 -0
  157. package/src/IconButton/index.jsx +6 -13
  158. package/src/IconButton/index.scss +387 -74
  159. package/src/IconButtonToggle/index.scss +1 -1
  160. package/src/Image/index.scss +53 -2
  161. package/src/Menu/index.scss +25 -27
  162. package/src/Modal/_ModalDialog.scss +51 -49
  163. package/src/Modal/index.scss +6 -73
  164. package/src/Nav/_mixins.scss +4 -4
  165. package/src/Nav/index.scss +70 -66
  166. package/src/Navbar/index.scss +276 -2
  167. package/src/OverflowScroll/data/useOverflowScrollElementAttributes.js +3 -3
  168. package/src/Overlay/index.jsx +2 -3
  169. package/src/PageBanner/index.scss +17 -21
  170. package/src/Pagination/index.scss +51 -46
  171. package/src/Pagination/pagination-bootstrap.scss +83 -0
  172. package/src/Popover/index.scss +9 -10
  173. package/src/Popover/popover-bootstrap.scss +198 -0
  174. package/src/ProductTour/Checkpoint.scss +71 -43
  175. package/src/ProgressBar/_mixins.scss +22 -0
  176. package/src/ProgressBar/bootstrap-progress.scss +49 -0
  177. package/src/ProgressBar/index.scss +28 -36
  178. package/src/Scrollable/index.scss +2 -2
  179. package/src/SearchField/SearchFieldInput.jsx +2 -2
  180. package/src/SearchField/__snapshots__/SearchField.test.jsx.snap +12 -8
  181. package/src/SearchField/index.scss +19 -21
  182. package/src/SelectableBox/index.scss +11 -13
  183. package/src/Sheet/index.scss +10 -10
  184. package/src/Spinner/index.scss +57 -2
  185. package/src/Stack/index.scss +1 -3
  186. package/src/Stepper/index.scss +19 -20
  187. package/src/Sticky/index.scss +4 -6
  188. package/src/Tabs/README.md +1 -25
  189. package/src/Tabs/index.jsx +0 -3
  190. package/src/Tabs/index.scss +23 -30
  191. package/src/Toast/ToastContainer.scss +9 -11
  192. package/src/Toast/bootstrap-toast.scss +46 -0
  193. package/src/Toast/index.scss +9 -10
  194. package/src/Tooltip/index.scss +136 -10
  195. package/src/TransitionReplace/README.md +4 -4
  196. package/src/ValidationMessage/index.scss +1 -1
  197. package/src/index.js +0 -14
  198. package/src/index.scss +0 -4
  199. package/src/utils/breakpoints.js +1 -1
  200. package/styles/css/core/custom-media-breakpoints.css +17 -0
  201. package/styles/css/core/index.css +2 -0
  202. package/styles/css/core/variables.css +608 -0
  203. package/styles/css/themes/light/index.css +2 -0
  204. package/styles/css/themes/light/utility-classes.css +2454 -0
  205. package/styles/css/themes/light/variables.css +1629 -0
  206. package/{scss → styles/scss}/core/_functions.scss +1 -1
  207. package/styles/scss/core/_grid.scss +21 -0
  208. package/{scss → styles/scss}/core/_utilities.scss +17 -11
  209. package/styles/scss/core/_variables.scss +869 -0
  210. package/styles/scss/core/bootstrap-override/_functions.scss +104 -0
  211. package/styles/scss/core/bootstrap-override/_mixins.scss +4 -0
  212. package/styles/scss/core/bootstrap-override/_utilities.scss +4 -0
  213. package/styles/scss/core/bootstrap-override/bootstrap.scss +2 -0
  214. package/styles/scss/core/bootstrap-override/mixins/_grid-framework.scss +80 -0
  215. package/styles/scss/core/bootstrap-override/mixins/_grid.scss +69 -0
  216. package/styles/scss/core/bootstrap-override/mixins/_list-group.scss +22 -0
  217. package/styles/scss/core/bootstrap-override/utilities/_background.scss +7 -0
  218. package/styles/scss/core/bootstrap-override/utilities/_borders.scss +67 -0
  219. package/styles/scss/core/bootstrap-override/utilities/_spacing.scss +70 -0
  220. package/styles/scss/core/bootstrap-override/utilities/_text.scss +68 -0
  221. package/styles/scss/core/core.scss +20 -0
  222. package/{scss → styles/scss}/core/utilities-only.scss +1 -0
  223. package/tokens/README.md +158 -0
  224. package/tokens/css-utilities.js +56 -0
  225. package/tokens/map-scss-to-css.js +24 -0
  226. package/tokens/replace-variables.js +32 -0
  227. package/tokens/sass-helpers.js +98 -0
  228. package/tokens/src/core/alias/size.json +15 -0
  229. package/tokens/src/core/components/ActionRow.json +10 -0
  230. package/tokens/src/core/components/Alert.json +30 -0
  231. package/tokens/src/core/components/Annotation.json +25 -0
  232. package/tokens/src/core/components/Avatar.json +17 -0
  233. package/tokens/src/core/components/AvatarButton.json +11 -0
  234. package/tokens/src/core/components/Badge.json +33 -0
  235. package/tokens/src/core/components/Breadcrumb.json +37 -0
  236. package/tokens/src/core/components/Bubble.json +10 -0
  237. package/tokens/src/core/components/Button/core.json +101 -0
  238. package/tokens/src/core/components/Card.json +91 -0
  239. package/tokens/src/core/components/Carousel.json +37 -0
  240. package/tokens/src/core/components/Chip.json +19 -0
  241. package/tokens/src/core/components/ChipCarousel.json +9 -0
  242. package/tokens/src/core/components/CloseButton.json +14 -0
  243. package/tokens/src/core/components/Code.json +34 -0
  244. package/tokens/src/core/components/Collapsible.json +29 -0
  245. package/tokens/src/core/components/ColorPicker.json +8 -0
  246. package/tokens/src/core/components/Container.json +13 -0
  247. package/tokens/src/core/components/DataTable.json +27 -0
  248. package/tokens/src/core/components/Dropdown.json +67 -0
  249. package/tokens/src/core/components/Dropzone.json +25 -0
  250. package/tokens/src/core/components/Form/other.json +14 -0
  251. package/tokens/src/core/components/Form/size.json +233 -0
  252. package/tokens/src/core/components/Form/spacing.json +155 -0
  253. package/tokens/src/core/components/Form/transition.json +16 -0
  254. package/tokens/src/core/components/Form/typography.json +122 -0
  255. package/tokens/src/core/components/Icon.json +11 -0
  256. package/tokens/src/core/components/IconButton.json +15 -0
  257. package/tokens/src/core/components/Image.json +28 -0
  258. package/tokens/src/core/components/Menu.json +48 -0
  259. package/tokens/src/core/components/Modal.json +47 -0
  260. package/tokens/src/core/components/Nav.json +55 -0
  261. package/tokens/src/core/components/Navbar.json +70 -0
  262. package/tokens/src/core/components/Pagination.json +70 -0
  263. package/tokens/src/core/components/Popover.json +48 -0
  264. package/tokens/src/core/components/ProductTour.json +37 -0
  265. package/tokens/src/core/components/ProgressBar.json +44 -0
  266. package/tokens/src/core/components/SearchField.json +23 -0
  267. package/tokens/src/core/components/SelectableBox.json +9 -0
  268. package/tokens/src/core/components/Sheet.json +10 -0
  269. package/tokens/src/core/components/Spinner.json +19 -0
  270. package/tokens/src/core/components/Stack.json +7 -0
  271. package/tokens/src/core/components/Stepper.json +42 -0
  272. package/tokens/src/core/components/Sticky.json +7 -0
  273. package/tokens/src/core/components/Tab.json +18 -0
  274. package/tokens/src/core/components/Tabs.json +19 -0
  275. package/tokens/src/core/components/Toast.json +30 -0
  276. package/tokens/src/core/components/Tooltip.json +33 -0
  277. package/tokens/src/core/components/general/caret.json +13 -0
  278. package/tokens/src/core/components/general/headings.json +16 -0
  279. package/tokens/src/core/components/general/hr.json +10 -0
  280. package/tokens/src/core/components/general/input.json +51 -0
  281. package/tokens/src/core/components/general/link.json +30 -0
  282. package/tokens/src/core/components/general/list.json +26 -0
  283. package/tokens/src/core/components/general/text.json +24 -0
  284. package/tokens/src/core/global/breakpoints.json +12 -0
  285. package/tokens/src/core/global/display.json +21 -0
  286. package/tokens/src/core/global/elevation.json +19 -0
  287. package/tokens/src/core/global/other.json +4 -0
  288. package/tokens/src/core/global/spacing.json +35 -0
  289. package/tokens/src/core/global/transition.json +14 -0
  290. package/tokens/src/core/global/typography.json +91 -0
  291. package/tokens/src/core/utilities/color.json +12 -0
  292. package/tokens/src/themes/light/alias/color.json +114 -0
  293. package/tokens/src/themes/light/components/Alert.json +47 -0
  294. package/tokens/src/themes/light/components/Annotation.json +29 -0
  295. package/tokens/src/themes/light/components/Avatar.json +7 -0
  296. package/tokens/src/themes/light/components/Badge.json +186 -0
  297. package/tokens/src/themes/light/components/Breadcrumb.json +15 -0
  298. package/tokens/src/themes/light/components/Bubble.json +18 -0
  299. package/tokens/src/themes/light/components/Button/brand.json +260 -0
  300. package/tokens/src/themes/light/components/Button/core.json +24 -0
  301. package/tokens/src/themes/light/components/Button/danger.json +247 -0
  302. package/tokens/src/themes/light/components/Button/dark.json +230 -0
  303. package/tokens/src/themes/light/components/Button/info.json +238 -0
  304. package/tokens/src/themes/light/components/Button/light.json +236 -0
  305. package/tokens/src/themes/light/components/Button/primary.json +250 -0
  306. package/tokens/src/themes/light/components/Button/secondary.json +278 -0
  307. package/tokens/src/themes/light/components/Button/success.json +253 -0
  308. package/tokens/src/themes/light/components/Button/tertiary.json +109 -0
  309. package/tokens/src/themes/light/components/Button/warning.json +276 -0
  310. package/tokens/src/themes/light/components/Card.json +40 -0
  311. package/tokens/src/themes/light/components/Carousel.json +45 -0
  312. package/tokens/src/themes/light/components/Chip.json +19 -0
  313. package/tokens/src/themes/light/components/CloseButton.json +10 -0
  314. package/tokens/src/themes/light/components/Code.json +23 -0
  315. package/tokens/src/themes/light/components/DataTable.json +26 -0
  316. package/tokens/src/themes/light/components/Dropdown.json +36 -0
  317. package/tokens/src/themes/light/components/Dropzone.json +19 -0
  318. package/tokens/src/themes/light/components/Form/color.json +270 -0
  319. package/tokens/src/themes/light/components/Form/elevation.json +76 -0
  320. package/tokens/src/themes/light/components/Form/other.json +131 -0
  321. package/tokens/src/themes/light/components/IconButton.json +451 -0
  322. package/tokens/src/themes/light/components/Image.json +18 -0
  323. package/tokens/src/themes/light/components/Menu.json +30 -0
  324. package/tokens/src/themes/light/components/Modal.json +37 -0
  325. package/tokens/src/themes/light/components/Nav.json +145 -0
  326. package/tokens/src/themes/light/components/Navbar.json +136 -0
  327. package/tokens/src/themes/light/components/OverflowScroll.json +9 -0
  328. package/tokens/src/themes/light/components/PageBanner.json +24 -0
  329. package/tokens/src/themes/light/components/Pagination.json +40 -0
  330. package/tokens/src/themes/light/components/Popover.json +55 -0
  331. package/tokens/src/themes/light/components/ProductTour.json +35 -0
  332. package/tokens/src/themes/light/components/ProgressBar.json +20 -0
  333. package/tokens/src/themes/light/components/Scrollable.json +14 -0
  334. package/tokens/src/themes/light/components/SearchField.json +25 -0
  335. package/tokens/src/themes/light/components/Sheet.json +22 -0
  336. package/tokens/src/themes/light/components/Stepper.json +34 -0
  337. package/tokens/src/themes/light/components/Sticky.json +18 -0
  338. package/tokens/src/themes/light/components/Tab.json +55 -0
  339. package/tokens/src/themes/light/components/Toast.json +33 -0
  340. package/tokens/src/themes/light/components/Tooltip.json +30 -0
  341. package/tokens/src/themes/light/components/general/body.json +8 -0
  342. package/tokens/src/themes/light/components/general/headings.json +7 -0
  343. package/tokens/src/themes/light/components/general/hr.json +15 -0
  344. package/tokens/src/themes/light/components/general/input.json +18 -0
  345. package/tokens/src/themes/light/components/general/link.json +109 -0
  346. package/tokens/src/themes/light/components/general/list.json +38 -0
  347. package/tokens/src/themes/light/components/general/text.json +6 -0
  348. package/tokens/src/themes/light/global/color.json +1661 -0
  349. package/tokens/src/themes/light/global/elevation.json +201 -0
  350. package/tokens/src/themes/light/global/other.json +4 -0
  351. package/tokens/style-dictionary.js +223 -0
  352. package/tokens/utils.js +210 -0
  353. package/dist/ActionRow/_variables.scss +0 -2
  354. package/dist/Alert/_variables.scss +0 -24
  355. package/dist/Annotation/_variables.scss +0 -18
  356. package/dist/Avatar/_variables.scss +0 -10
  357. package/dist/AvatarButton/_variables.scss +0 -3
  358. package/dist/Badge/_variables.scss +0 -16
  359. package/dist/Breadcrumb/_variables.scss +0 -27
  360. package/dist/Bubble/_variables.scss +0 -8
  361. package/dist/Button/_variables.scss +0 -50
  362. package/dist/Button/deprecated/index.js +0 -128
  363. package/dist/Button/deprecated/index.js.map +0 -1
  364. package/dist/Card/_variables.scss +0 -56
  365. package/dist/Carousel/_variables.scss +0 -27
  366. package/dist/CheckBox/index.js +0 -72
  367. package/dist/CheckBox/index.js.map +0 -1
  368. package/dist/CheckBoxGroup/index.js +0 -15
  369. package/dist/CheckBoxGroup/index.js.map +0 -1
  370. package/dist/Chip/_variables.scss +0 -19
  371. package/dist/ChipCarousel/_variables.scss +0 -1
  372. package/dist/CloseButton/_variables.scss +0 -6
  373. package/dist/Code/_variables.scss +0 -17
  374. package/dist/Collapsible/_variables.scss +0 -12
  375. package/dist/ColorPicker/_variables.scss +0 -2
  376. package/dist/Container/_variables.scss +0 -5
  377. package/dist/DataTable/_variables.scss +0 -11
  378. package/dist/Dropdown/_variables.scss +0 -33
  379. package/dist/Dropdown/deprecated/DropdownButton.js +0 -48
  380. package/dist/Dropdown/deprecated/DropdownButton.js.map +0 -1
  381. package/dist/Dropdown/deprecated/DropdownItem.js +0 -34
  382. package/dist/Dropdown/deprecated/DropdownItem.js.map +0 -1
  383. package/dist/Dropdown/deprecated/DropdownMenu.js +0 -50
  384. package/dist/Dropdown/deprecated/DropdownMenu.js.map +0 -1
  385. package/dist/Dropdown/deprecated/index.js +0 -209
  386. package/dist/Dropdown/deprecated/index.js.map +0 -1
  387. package/dist/Dropzone/_variables.scss +0 -9
  388. package/dist/Fieldset/index.js +0 -92
  389. package/dist/Fieldset/index.js.map +0 -1
  390. package/dist/Fieldset/index.scss +0 -12
  391. package/dist/Form/_variables.scss +0 -267
  392. package/dist/Icon/_variables.scss +0 -7
  393. package/dist/Image/_variables.scss +0 -13
  394. package/dist/Input/index.js +0 -136
  395. package/dist/Input/index.js.map +0 -1
  396. package/dist/InputSelect/index.js +0 -78
  397. package/dist/InputSelect/index.js.map +0 -1
  398. package/dist/InputText/index.js +0 -43
  399. package/dist/InputText/index.js.map +0 -1
  400. package/dist/ListBox/index.js +0 -116
  401. package/dist/ListBox/index.js.map +0 -1
  402. package/dist/ListBoxOption/index.js +0 -71
  403. package/dist/ListBoxOption/index.js.map +0 -1
  404. package/dist/Menu/_variables.scss +0 -24
  405. package/dist/Modal/_variables.scss +0 -50
  406. package/dist/Modal/index.js +0 -260
  407. package/dist/Modal/index.js.map +0 -1
  408. package/dist/Nav/_variables.scss +0 -59
  409. package/dist/Navbar/_variables.scss +0 -40
  410. package/dist/OverflowScroll/_variables.scss +0 -5
  411. package/dist/OverflowScroll/index.scss +0 -1
  412. package/dist/Pagination/_variables.scss +0 -52
  413. package/dist/Popover/_variables.scss +0 -36
  414. package/dist/ProductTour/_variables.scss +0 -15
  415. package/dist/ProgressBar/_variables.scss +0 -23
  416. package/dist/RadioButtonGroup/index.js +0 -157
  417. package/dist/RadioButtonGroup/index.js.map +0 -1
  418. package/dist/SearchField/_variables.scss +0 -16
  419. package/dist/SelectableBox/_variables.scss +0 -5
  420. package/dist/Spinner/_variables.scss +0 -9
  421. package/dist/Stack/_variables.scss +0 -1
  422. package/dist/StatusAlert/index.js +0 -130
  423. package/dist/StatusAlert/index.js.map +0 -1
  424. package/dist/Stepper/_variables.scss +0 -18
  425. package/dist/Sticky/_variables.scss +0 -3
  426. package/dist/Table/_variables.scss +0 -34
  427. package/dist/Table/index.js +0 -198
  428. package/dist/Table/index.js.map +0 -1
  429. package/dist/Table/index.scss +0 -12
  430. package/dist/Tabs/_variables.scss +0 -24
  431. package/dist/Tabs/deprecated/Tabs.scss +0 -3
  432. package/dist/Tabs/deprecated/index.js +0 -90
  433. package/dist/Tabs/deprecated/index.js.map +0 -1
  434. package/dist/TextArea/index.js +0 -42
  435. package/dist/TextArea/index.js.map +0 -1
  436. package/dist/Toast/_variables.scss +0 -19
  437. package/dist/Tooltip/_variables.scss +0 -21
  438. package/dist/ValidationFormGroup/index.js +0 -105
  439. package/dist/ValidationFormGroup/index.js.map +0 -1
  440. package/dist/paragon.css +0 -39
  441. package/scss/core/_grid.scss +0 -21
  442. package/scss/core/_variables.scss +0 -875
  443. package/scss/core/core.scss +0 -21
  444. package/src/ActionRow/_variables.scss +0 -2
  445. package/src/Alert/_variables.scss +0 -24
  446. package/src/Annotation/_variables.scss +0 -18
  447. package/src/Avatar/_variables.scss +0 -10
  448. package/src/AvatarButton/_variables.scss +0 -3
  449. package/src/Badge/_variables.scss +0 -16
  450. package/src/Breadcrumb/_variables.scss +0 -27
  451. package/src/Bubble/_variables.scss +0 -8
  452. package/src/Button/_variables.scss +0 -50
  453. package/src/Button/deprecated/Button.test.jsx +0 -34
  454. package/src/Button/deprecated/index.jsx +0 -145
  455. package/src/Card/_variables.scss +0 -56
  456. package/src/Carousel/_variables.scss +0 -27
  457. package/src/CheckBox/CheckBox.test.jsx +0 -65
  458. package/src/CheckBox/README.md +0 -93
  459. package/src/CheckBox/index.jsx +0 -80
  460. package/src/CheckBoxGroup/CheckBoxGroup.test.jsx +0 -33
  461. package/src/CheckBoxGroup/README.md +0 -35
  462. package/src/CheckBoxGroup/index.jsx +0 -19
  463. package/src/Chip/_variables.scss +0 -19
  464. package/src/ChipCarousel/_variables.scss +0 -1
  465. package/src/CloseButton/_variables.scss +0 -6
  466. package/src/Code/_variables.scss +0 -17
  467. package/src/Collapsible/_variables.scss +0 -12
  468. package/src/ColorPicker/_variables.scss +0 -2
  469. package/src/Container/_variables.scss +0 -5
  470. package/src/DataTable/_variables.scss +0 -11
  471. package/src/Dropdown/_variables.scss +0 -33
  472. package/src/Dropdown/deprecated/Dropdown.test.jsx +0 -238
  473. package/src/Dropdown/deprecated/DropdownButton.jsx +0 -52
  474. package/src/Dropdown/deprecated/DropdownItem.jsx +0 -34
  475. package/src/Dropdown/deprecated/DropdownMenu.jsx +0 -50
  476. package/src/Dropdown/deprecated/__snapshots__/Dropdown.test.jsx.snap +0 -229
  477. package/src/Dropdown/deprecated/index.jsx +0 -222
  478. package/src/Dropzone/_variables.scss +0 -9
  479. package/src/Fieldset/Fieldset.test.jsx +0 -101
  480. package/src/Fieldset/README.md +0 -146
  481. package/src/Fieldset/index.jsx +0 -107
  482. package/src/Fieldset/index.scss +0 -12
  483. package/src/Form/_variables.scss +0 -267
  484. package/src/Icon/_variables.scss +0 -7
  485. package/src/Image/_variables.scss +0 -13
  486. package/src/Input/README.md +0 -74
  487. package/src/Input/__snapshots__/input.test.jsx.snap +0 -53
  488. package/src/Input/index.jsx +0 -151
  489. package/src/Input/input.test.jsx +0 -85
  490. package/src/InputSelect/README.md +0 -136
  491. package/src/InputSelect/index.jsx +0 -92
  492. package/src/InputText/InputText.test.jsx +0 -74
  493. package/src/InputText/README.md +0 -293
  494. package/src/InputText/index.jsx +0 -49
  495. package/src/ListBox/ListBox.test.jsx +0 -161
  496. package/src/ListBox/README.md +0 -185
  497. package/src/ListBox/index.jsx +0 -115
  498. package/src/ListBoxOption/ListBoxOption.test.jsx +0 -154
  499. package/src/ListBoxOption/index.jsx +0 -78
  500. package/src/Menu/_variables.scss +0 -24
  501. package/src/Modal/README.md +0 -148
  502. package/src/Modal/_variables.scss +0 -50
  503. package/src/Modal/index.jsx +0 -314
  504. package/src/Modal/tests/Modal.test.jsx +0 -261
  505. package/src/Nav/_variables.scss +0 -59
  506. package/src/Navbar/_variables.scss +0 -40
  507. package/src/OverflowScroll/_variables.scss +0 -5
  508. package/src/OverflowScroll/index.scss +0 -1
  509. package/src/Pagination/_variables.scss +0 -52
  510. package/src/Popover/_variables.scss +0 -36
  511. package/src/ProductTour/_variables.scss +0 -15
  512. package/src/ProgressBar/_variables.scss +0 -23
  513. package/src/RadioButtonGroup/README.md +0 -50
  514. package/src/RadioButtonGroup/RadioButtonGroup.test.jsx +0 -127
  515. package/src/RadioButtonGroup/index.jsx +0 -185
  516. package/src/SearchField/_variables.scss +0 -16
  517. package/src/SelectableBox/_variables.scss +0 -5
  518. package/src/Spinner/_variables.scss +0 -9
  519. package/src/Stack/_variables.scss +0 -1
  520. package/src/StatusAlert/README.md +0 -149
  521. package/src/StatusAlert/StatusAlert.test.jsx +0 -150
  522. package/src/StatusAlert/index.jsx +0 -144
  523. package/src/Stepper/_variables.scss +0 -18
  524. package/src/Sticky/_variables.scss +0 -3
  525. package/src/Table/README.md +0 -506
  526. package/src/Table/Table.test.jsx +0 -367
  527. package/src/Table/_variables.scss +0 -34
  528. package/src/Table/index.jsx +0 -264
  529. package/src/Table/index.scss +0 -12
  530. package/src/Tabs/_variables.scss +0 -24
  531. package/src/Tabs/deprecated/Tabs.scss +0 -3
  532. package/src/Tabs/deprecated/Tabs.test.jsx +0 -50
  533. package/src/Tabs/deprecated/index.jsx +0 -117
  534. package/src/TextArea/README.md +0 -63
  535. package/src/TextArea/index.jsx +0 -48
  536. package/src/Toast/_variables.scss +0 -19
  537. package/src/Tooltip/_variables.scss +0 -21
  538. package/src/ValidationFormGroup/README.md +0 -116
  539. package/src/ValidationFormGroup/ValidationFormGroup.test.jsx +0 -146
  540. package/src/ValidationFormGroup/__snapshots__/ValidationFormGroup.test.jsx.snap +0 -161
  541. package/src/ValidationFormGroup/index.jsx +0 -114
  542. /package/{scss → styles/scss}/core/_exports.module.scss +0 -0
  543. /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
- });