@openedx/paragon 21.7.0 → 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 (530) 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/filters/TextFilter.js +2 -3
  29. package/dist/DataTable/filters/TextFilter.js.map +1 -1
  30. package/dist/DataTable/index.scss +48 -50
  31. package/dist/Dropdown/dropdown-bootstrap.scss +181 -0
  32. package/dist/Dropdown/index.js +0 -2
  33. package/dist/Dropdown/index.js.map +1 -1
  34. package/dist/Dropdown/index.scss +11 -12
  35. package/dist/Dropzone/index.scss +12 -14
  36. package/dist/Form/_FormText.scss +8 -8
  37. package/dist/Form/_bootstrap-custom-forms.scss +551 -0
  38. package/dist/Form/_bootstrap-forms.scss +381 -0
  39. package/dist/Form/_index.scss +165 -143
  40. package/dist/Form/_input-group.scss +188 -0
  41. package/dist/Form/_mixins.scss +216 -3
  42. package/dist/Hyperlink/index.scss +1 -1
  43. package/dist/Icon/index.scss +10 -12
  44. package/dist/IconButton/_mixins.scss +4 -0
  45. package/dist/IconButton/index.js +5 -11
  46. package/dist/IconButton/index.js.map +1 -1
  47. package/dist/IconButton/index.scss +387 -74
  48. package/dist/IconButtonToggle/index.scss +1 -1
  49. package/dist/Image/index.scss +53 -2
  50. package/dist/Menu/index.scss +25 -27
  51. package/dist/Modal/_ModalDialog.scss +51 -49
  52. package/dist/Modal/index.scss +6 -73
  53. package/dist/Nav/_mixins.scss +4 -4
  54. package/dist/Nav/index.scss +70 -66
  55. package/dist/Navbar/index.scss +276 -2
  56. package/dist/OverflowScroll/data/useOverflowScrollElementAttributes.js +3 -3
  57. package/dist/Overlay/index.js +2 -3
  58. package/dist/Overlay/index.js.map +1 -1
  59. package/dist/PageBanner/index.scss +17 -21
  60. package/dist/Pagination/index.scss +51 -46
  61. package/dist/Pagination/pagination-bootstrap.scss +83 -0
  62. package/dist/Popover/index.scss +9 -10
  63. package/dist/Popover/popover-bootstrap.scss +198 -0
  64. package/dist/ProductTour/Checkpoint.scss +71 -43
  65. package/dist/ProgressBar/_mixins.scss +22 -0
  66. package/dist/ProgressBar/bootstrap-progress.scss +49 -0
  67. package/dist/ProgressBar/index.scss +28 -36
  68. package/dist/Scrollable/index.scss +2 -2
  69. package/dist/SearchField/SearchFieldInput.js +2 -2
  70. package/dist/SearchField/SearchFieldInput.js.map +1 -1
  71. package/dist/SearchField/index.scss +19 -21
  72. package/dist/SelectableBox/index.scss +11 -13
  73. package/dist/Sheet/index.scss +10 -10
  74. package/dist/Spinner/index.scss +57 -2
  75. package/dist/Stack/index.scss +1 -3
  76. package/dist/Stepper/index.scss +19 -20
  77. package/dist/Sticky/index.scss +4 -6
  78. package/dist/Tabs/index.js +0 -2
  79. package/dist/Tabs/index.js.map +1 -1
  80. package/dist/Tabs/index.scss +23 -30
  81. package/dist/Toast/ToastContainer.scss +9 -11
  82. package/dist/Toast/bootstrap-toast.scss +46 -0
  83. package/dist/Toast/index.scss +9 -10
  84. package/dist/Tooltip/index.scss +136 -10
  85. package/dist/ValidationMessage/index.scss +1 -1
  86. package/dist/core.css +16706 -0
  87. package/dist/core.css.map +1 -0
  88. package/dist/core.min.css +2 -0
  89. package/dist/index.js +0 -14
  90. package/dist/index.scss +0 -4
  91. package/dist/light.css +4083 -0
  92. package/dist/light.css.map +1 -0
  93. package/dist/light.min.css +2 -0
  94. package/dist/theme-urls.json +21 -0
  95. package/dist/utils/breakpoints.js +1 -1
  96. package/lib/build-scss.js +188 -0
  97. package/lib/build-tokens.js +119 -0
  98. package/lib/help.js +36 -23
  99. package/lib/replace-variables.js +38 -0
  100. package/lib/utils.js +9 -0
  101. package/package.json +25 -11
  102. package/src/ActionRow/_index.scss +2 -4
  103. package/src/Alert/index.scss +41 -32
  104. package/src/Annotation/_mixins.scss +104 -0
  105. package/src/Annotation/index.scss +130 -103
  106. package/src/Avatar/index.scss +18 -20
  107. package/src/AvatarButton/index.scss +3 -5
  108. package/src/Badge/index.scss +112 -2
  109. package/src/Breadcrumb/index.scss +14 -16
  110. package/src/Bubble/index.scss +25 -12
  111. package/src/Button/README.md +0 -54
  112. package/src/Button/_mixins.scss +14 -0
  113. package/src/Button/button-group.scss +126 -0
  114. package/src/Button/index.jsx +0 -3
  115. package/src/Button/index.scss +855 -358
  116. package/src/Card/card-bootstrap.scss +168 -0
  117. package/src/Card/index.scss +78 -79
  118. package/src/Carousel/index.scss +168 -2
  119. package/src/Chip/index.scss +36 -34
  120. package/src/ChipCarousel/index.scss +1 -3
  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/filters/TextFilter.jsx +2 -3
  127. package/src/DataTable/index.scss +48 -50
  128. package/src/Dropdown/README.md +0 -93
  129. package/src/Dropdown/dropdown-bootstrap.scss +181 -0
  130. package/src/Dropdown/index.jsx +0 -2
  131. package/src/Dropdown/index.scss +11 -12
  132. package/src/Dropzone/index.scss +12 -14
  133. package/src/Form/_FormText.scss +8 -8
  134. package/src/Form/_bootstrap-custom-forms.scss +551 -0
  135. package/src/Form/_bootstrap-forms.scss +381 -0
  136. package/src/Form/_index.scss +165 -143
  137. package/src/Form/_input-group.scss +188 -0
  138. package/src/Form/_mixins.scss +216 -3
  139. package/src/Hyperlink/index.scss +1 -1
  140. package/src/Icon/index.scss +10 -12
  141. package/src/IconButton/README.md +1 -15
  142. package/src/IconButton/__snapshots__/IconButton.test.jsx.snap +5 -26
  143. package/src/IconButton/_mixins.scss +4 -0
  144. package/src/IconButton/index.jsx +6 -13
  145. package/src/IconButton/index.scss +387 -74
  146. package/src/IconButtonToggle/index.scss +1 -1
  147. package/src/Image/index.scss +53 -2
  148. package/src/Menu/index.scss +25 -27
  149. package/src/Modal/_ModalDialog.scss +51 -49
  150. package/src/Modal/index.scss +6 -73
  151. package/src/Nav/_mixins.scss +4 -4
  152. package/src/Nav/index.scss +70 -66
  153. package/src/Navbar/index.scss +276 -2
  154. package/src/OverflowScroll/data/useOverflowScrollElementAttributes.js +3 -3
  155. package/src/Overlay/index.jsx +2 -3
  156. package/src/PageBanner/index.scss +17 -21
  157. package/src/Pagination/index.scss +51 -46
  158. package/src/Pagination/pagination-bootstrap.scss +83 -0
  159. package/src/Popover/index.scss +9 -10
  160. package/src/Popover/popover-bootstrap.scss +198 -0
  161. package/src/ProductTour/Checkpoint.scss +71 -43
  162. package/src/ProgressBar/_mixins.scss +22 -0
  163. package/src/ProgressBar/bootstrap-progress.scss +49 -0
  164. package/src/ProgressBar/index.scss +28 -36
  165. package/src/Scrollable/index.scss +2 -2
  166. package/src/SearchField/SearchFieldInput.jsx +2 -2
  167. package/src/SearchField/__snapshots__/SearchField.test.jsx.snap +12 -8
  168. package/src/SearchField/index.scss +19 -21
  169. package/src/SelectableBox/index.scss +11 -13
  170. package/src/Sheet/index.scss +10 -10
  171. package/src/Spinner/index.scss +57 -2
  172. package/src/Stack/index.scss +1 -3
  173. package/src/Stepper/index.scss +19 -20
  174. package/src/Sticky/index.scss +4 -6
  175. package/src/Tabs/README.md +1 -25
  176. package/src/Tabs/index.jsx +0 -3
  177. package/src/Tabs/index.scss +23 -30
  178. package/src/Toast/ToastContainer.scss +9 -11
  179. package/src/Toast/bootstrap-toast.scss +46 -0
  180. package/src/Toast/index.scss +9 -10
  181. package/src/Tooltip/index.scss +136 -10
  182. package/src/TransitionReplace/README.md +4 -4
  183. package/src/ValidationMessage/index.scss +1 -1
  184. package/src/index.js +0 -14
  185. package/src/index.scss +0 -4
  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 +608 -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 +1629 -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 +20 -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 +101 -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 +19 -0
  228. package/tokens/src/core/components/ChipCarousel.json +9 -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 +25 -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 +44 -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 +18 -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 +15 -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 +19 -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 +36 -0
  304. package/tokens/src/themes/light/components/Dropzone.json +19 -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 +145 -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 +40 -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 +55 -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 -50
  349. package/dist/Button/deprecated/index.js +0 -128
  350. package/dist/Button/deprecated/index.js.map +0 -1
  351. package/dist/Card/_variables.scss +0 -56
  352. package/dist/Carousel/_variables.scss +0 -27
  353. package/dist/CheckBox/index.js +0 -72
  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 -19
  358. package/dist/ChipCarousel/_variables.scss +0 -1
  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 -48
  367. package/dist/Dropdown/deprecated/DropdownButton.js.map +0 -1
  368. package/dist/Dropdown/deprecated/DropdownItem.js +0 -34
  369. package/dist/Dropdown/deprecated/DropdownItem.js.map +0 -1
  370. package/dist/Dropdown/deprecated/DropdownMenu.js +0 -50
  371. package/dist/Dropdown/deprecated/DropdownMenu.js.map +0 -1
  372. package/dist/Dropdown/deprecated/index.js +0 -209
  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 -92
  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 -136
  382. package/dist/Input/index.js.map +0 -1
  383. package/dist/InputSelect/index.js +0 -78
  384. package/dist/InputSelect/index.js.map +0 -1
  385. package/dist/InputText/index.js +0 -43
  386. package/dist/InputText/index.js.map +0 -1
  387. package/dist/ListBox/index.js +0 -116
  388. package/dist/ListBox/index.js.map +0 -1
  389. package/dist/ListBoxOption/index.js +0 -71
  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 -260
  394. package/dist/Modal/index.js.map +0 -1
  395. package/dist/Nav/_variables.scss +0 -59
  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 -52
  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 -157
  404. package/dist/RadioButtonGroup/index.js.map +0 -1
  405. package/dist/SearchField/_variables.scss +0 -16
  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 -130
  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 -198
  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 -90
  420. package/dist/Tabs/deprecated/index.js.map +0 -1
  421. package/dist/TextArea/index.js +0 -42
  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 -105
  426. package/dist/ValidationFormGroup/index.js.map +0 -1
  427. package/dist/paragon.css +0 -39
  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 -50
  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 -56
  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 -19
  451. package/src/ChipCarousel/_variables.scss +0 -1
  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 -314
  491. package/src/Modal/tests/Modal.test.jsx +0 -261
  492. package/src/Nav/_variables.scss +0 -59
  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 -52
  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 -16
  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,116 +0,0 @@
1
- const _excluded = ["children", "className", "selectedOptionIndex", "tag"];
2
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
6
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
8
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
9
- /* eslint-disable max-len */
10
- import classNames from 'classnames';
11
- import PropTypes from 'prop-types';
12
- import React from 'react';
13
- import { nonNegativeInteger } from '../utils/propTypes';
14
- export default class ListBox extends React.Component {
15
- constructor(props) {
16
- super(props);
17
- this.onFocus = this.onFocus.bind(this);
18
- this.onKeyDown = this.onKeyDown.bind(this);
19
- this.state = {
20
- selectedOptionIndex: null
21
- };
22
- }
23
- static getDerivedStateFromProps(nextProps, prevState) {
24
- const {
25
- selectedOptionIndex
26
- } = nextProps;
27
- if (selectedOptionIndex !== prevState.selectedOptionIndex && selectedOptionIndex !== undefined) {
28
- return {
29
- selectedOptionIndex
30
- };
31
- }
32
- return null;
33
- }
34
- onFocus() {
35
- // if no ListBoxOption is selected, select first ListBoxOption on ListBox focus
36
- if (!this.state.selectedOptionIndex) {
37
- this.setState({
38
- selectedOptionIndex: 0
39
- });
40
- }
41
- }
42
- onKeyDown(e) {
43
- switch (e.key) {
44
- case 'ArrowDown':
45
- {
46
- // prevent scrolling entire modal body with arrow keys
47
- e.preventDefault();
48
- if (this.state.selectedOptionIndex < React.Children.count(this.props.children) - 1) {
49
- this.setState(state => ({
50
- selectedOptionIndex: state.selectedOptionIndex + 1
51
- }));
52
- }
53
- break;
54
- }
55
- case 'ArrowUp':
56
- {
57
- // prevent scrolling entire modal body with arrow keys
58
- e.preventDefault();
59
- if (this.state.selectedOptionIndex > 0) {
60
- this.setState(state => ({
61
- selectedOptionIndex: state.selectedOptionIndex - 1
62
- }));
63
- }
64
- break;
65
- }
66
- default:
67
- }
68
- }
69
- renderChildren() {
70
- return React.Children.map(this.props.children, (child, index) => /*#__PURE__*/React.cloneElement(child, {
71
- index,
72
- isSelected: index === this.state.selectedOptionIndex,
73
- onSelect: () => {
74
- this.setState({
75
- selectedOptionIndex: index
76
- });
77
- child.props.onSelect();
78
- }
79
- }));
80
- }
81
- render() {
82
- const _this$props = this.props,
83
- {
84
- children,
85
- className,
86
- selectedOptionIndex,
87
- tag
88
- } = _this$props,
89
- other = _objectWithoutProperties(_this$props, _excluded);
90
- return /*#__PURE__*/React.createElement(this.props.tag, _objectSpread({
91
- 'aria-activedescendant': this.state.selectedOptionIndex === null ? null : `list-box-option-${this.state.selectedOptionIndex}`,
92
- className: classNames(['list-group', this.props.className]),
93
- onFocus: this.onFocus,
94
- onKeyDown: this.onKeyDown,
95
- role: 'listbox',
96
- tabIndex: 0
97
- }, other), this.renderChildren());
98
- }
99
- }
100
- ListBox.propTypes = {
101
- /** specifies the ListBoxOption component(s) that will be displayed within the ListBox element. You can pass in one or more ListBoxOption components.
102
- */
103
- children: PropTypes.node.isRequired,
104
- /** specifies Bootstrap class names to apply to the ListBox component. The default is an empty string. */
105
- className: PropTypes.string,
106
- /** Although the ListBox component keeps track of which ListBoxOption is selected, `selectedOptionIndex` provides a mechanism for an override, if necessary. An example would be to clear the selectedOption when moving between views. Note that override is not permanent and that clicking on a ListBoxOption or interacting with the ListBox with the keyboard will change the selected ListBoxOption relative to the original override. The default is undefined. */
107
- selectedOptionIndex: nonNegativeInteger,
108
- /** used to specify the element type of the rendered ListBox component. The default is div. Example alternatives include ol, ul, span, etc. */
109
- tag: PropTypes.string
110
- };
111
- ListBox.defaultProps = {
112
- className: undefined,
113
- selectedOptionIndex: undefined,
114
- tag: 'div'
115
- };
116
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["classNames","PropTypes","React","nonNegativeInteger","ListBox","Component","constructor","props","onFocus","bind","onKeyDown","state","selectedOptionIndex","getDerivedStateFromProps","nextProps","prevState","undefined","setState","e","key","preventDefault","Children","count","children","renderChildren","map","child","index","cloneElement","isSelected","onSelect","render","_this$props","className","tag","other","_objectWithoutProperties","_excluded","createElement","_objectSpread","role","tabIndex","propTypes","node","isRequired","string","defaultProps"],"sources":["../../src/ListBox/index.jsx"],"sourcesContent":["/* eslint-disable max-len */\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { nonNegativeInteger } from '../utils/propTypes';\n\nexport default class ListBox extends React.Component {\n constructor(props) {\n super(props);\n\n this.onFocus = this.onFocus.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n\n this.state = {\n selectedOptionIndex: null,\n };\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const { selectedOptionIndex } = nextProps;\n\n if (selectedOptionIndex !== prevState.selectedOptionIndex\n && selectedOptionIndex !== undefined) {\n return { selectedOptionIndex };\n }\n\n return null;\n }\n\n onFocus() {\n // if no ListBoxOption is selected, select first ListBoxOption on ListBox focus\n if (!this.state.selectedOptionIndex) {\n this.setState({\n selectedOptionIndex: 0,\n });\n }\n }\n\n onKeyDown(e) {\n switch (e.key) {\n case 'ArrowDown': {\n // prevent scrolling entire modal body with arrow keys\n e.preventDefault();\n if (this.state.selectedOptionIndex < React.Children.count(this.props.children) - 1) {\n this.setState(state => ({\n selectedOptionIndex: state.selectedOptionIndex + 1,\n }));\n }\n break;\n }\n case 'ArrowUp': {\n // prevent scrolling entire modal body with arrow keys\n e.preventDefault();\n\n if (this.state.selectedOptionIndex > 0) {\n this.setState(state => ({\n selectedOptionIndex: state.selectedOptionIndex - 1,\n }));\n }\n break;\n }\n default:\n }\n }\n\n renderChildren() {\n return React.Children.map(this.props.children, (child, index) => React.cloneElement(child, {\n index,\n isSelected: index === this.state.selectedOptionIndex,\n onSelect: () => { this.setState({ selectedOptionIndex: index }); child.props.onSelect(); },\n }));\n }\n\n render() {\n const {\n children,\n className,\n selectedOptionIndex,\n tag,\n ...other\n } = this.props;\n\n return React.createElement(\n this.props.tag,\n {\n 'aria-activedescendant': this.state.selectedOptionIndex === null ? null : `list-box-option-${this.state.selectedOptionIndex}`,\n className: classNames(['list-group', this.props.className]),\n onFocus: this.onFocus,\n onKeyDown: this.onKeyDown,\n role: 'listbox',\n tabIndex: 0,\n ...other,\n },\n this.renderChildren(),\n );\n }\n}\n\nListBox.propTypes = {\n /** specifies the ListBoxOption component(s) that will be displayed within the ListBox element. You can pass in one or more ListBoxOption components.\n */\n children: PropTypes.node.isRequired,\n /** specifies Bootstrap class names to apply to the ListBox component. The default is an empty string. */\n className: PropTypes.string,\n /** Although the ListBox component keeps track of which ListBoxOption is selected, `selectedOptionIndex` provides a mechanism for an override, if necessary. An example would be to clear the selectedOption when moving between views. Note that override is not permanent and that clicking on a ListBoxOption or interacting with the ListBox with the keyboard will change the selected ListBoxOption relative to the original override. The default is undefined. */\n selectedOptionIndex: nonNegativeInteger,\n /** used to specify the element type of the rendered ListBox component. The default is div. Example alternatives include ol, ul, span, etc. */\n tag: PropTypes.string,\n};\n\nListBox.defaultProps = {\n className: undefined,\n selectedOptionIndex: undefined,\n tag: 'div',\n};\n"],"mappings":"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"}
@@ -1,71 +0,0 @@
1
- const _excluded = ["children", "className", "index", "isSelected", "tag"];
2
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
6
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
8
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
9
- import React from 'react';
10
- import classNames from 'classnames';
11
- import PropTypes from 'prop-types';
12
- export default class ListBoxOption extends React.Component {
13
- constructor(props) {
14
- super(props);
15
- this.onMouseDown = this.onMouseDown.bind(this);
16
- }
17
- componentDidUpdate(prevProps) {
18
- if (this.props.isSelected && !prevProps.isSelected) {
19
- this.props.onSelect();
20
- }
21
- }
22
-
23
- /**
24
- * onMouseDown is used instead of onClick because onClick triggers the focus
25
- * event before click event. This focus event bubbles up to the parent
26
- * (since onFocus bubbles in React), which triggers the ListBox's onFocus function.
27
- * This function will select the first ListBoxOption if one is not selected, and this
28
- * causes the user to see the first option selected before their desired option is selected
29
- * when the click event is fired shortly thereafter. The mouseDown event occurs before the
30
- * focus event, which prevents this behavior.
31
- */
32
- onMouseDown() {
33
- this.props.onSelect();
34
- }
35
- render() {
36
- const _this$props = this.props,
37
- {
38
- children,
39
- className,
40
- index,
41
- isSelected,
42
- tag
43
- } = _this$props,
44
- other = _objectWithoutProperties(_this$props, _excluded);
45
- return /*#__PURE__*/React.createElement(this.props.tag, _objectSpread({
46
- 'aria-selected': isSelected,
47
- className: classNames('list-group-item', 'list-group-item-action', {
48
- active: this.props.isSelected
49
- }, className),
50
- id: index === undefined ? null : `list-box-option-${index}`,
51
- onMouseDown: this.onMouseDown,
52
- role: 'option'
53
- }, other), children);
54
- }
55
- }
56
- ListBoxOption.propTypes = {
57
- children: PropTypes.node.isRequired,
58
- className: PropTypes.string,
59
- index: PropTypes.number,
60
- isSelected: PropTypes.bool,
61
- tag: PropTypes.string,
62
- onSelect: PropTypes.func
63
- };
64
- ListBoxOption.defaultProps = {
65
- className: undefined,
66
- index: undefined,
67
- isSelected: false,
68
- tag: 'div',
69
- onSelect: () => {}
70
- };
71
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["React","classNames","PropTypes","ListBoxOption","Component","constructor","props","onMouseDown","bind","componentDidUpdate","prevProps","isSelected","onSelect","render","_this$props","children","className","index","tag","other","_objectWithoutProperties","_excluded","createElement","_objectSpread","active","id","undefined","role","propTypes","node","isRequired","string","number","bool","func","defaultProps"],"sources":["../../src/ListBoxOption/index.jsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nexport default class ListBoxOption extends React.Component {\n constructor(props) {\n super(props);\n\n this.onMouseDown = this.onMouseDown.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.isSelected && !prevProps.isSelected) {\n this.props.onSelect();\n }\n }\n\n /**\n * onMouseDown is used instead of onClick because onClick triggers the focus\n * event before click event. This focus event bubbles up to the parent\n * (since onFocus bubbles in React), which triggers the ListBox's onFocus function.\n * This function will select the first ListBoxOption if one is not selected, and this\n * causes the user to see the first option selected before their desired option is selected\n * when the click event is fired shortly thereafter. The mouseDown event occurs before the\n * focus event, which prevents this behavior.\n */\n onMouseDown() {\n this.props.onSelect();\n }\n\n render() {\n const {\n children,\n className,\n index,\n isSelected,\n tag,\n ...other\n } = this.props;\n\n return React.createElement(\n this.props.tag,\n {\n 'aria-selected': isSelected,\n className: classNames(\n 'list-group-item',\n 'list-group-item-action',\n {\n active: this.props.isSelected,\n },\n className,\n ),\n id: index === undefined ? null : `list-box-option-${index}`,\n onMouseDown: this.onMouseDown,\n role: 'option',\n ...other,\n },\n children,\n );\n }\n}\n\nListBoxOption.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n index: PropTypes.number,\n isSelected: PropTypes.bool,\n tag: PropTypes.string,\n onSelect: PropTypes.func,\n};\n\nListBoxOption.defaultProps = {\n className: undefined,\n index: undefined,\n isSelected: false,\n tag: 'div',\n onSelect: () => { },\n};\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,YAAY;AAElC,eAAe,MAAMC,aAAa,SAASH,KAAK,CAACI,SAAS,CAAC;EACzDC,WAAWA,CAACC,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC;IAEZ,IAAI,CAACC,WAAW,GAAG,IAAI,CAACA,WAAW,CAACC,IAAI,CAAC,IAAI,CAAC;EAChD;EAEAC,kBAAkBA,CAACC,SAAS,EAAE;IAC5B,IAAI,IAAI,CAACJ,KAAK,CAACK,UAAU,IAAI,CAACD,SAAS,CAACC,UAAU,EAAE;MAClD,IAAI,CAACL,KAAK,CAACM,QAAQ,CAAC,CAAC;IACvB;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEL,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACD,KAAK,CAACM,QAAQ,CAAC,CAAC;EACvB;EAEAC,MAAMA,CAAA,EAAG;IACP,MAAAC,WAAA,GAOI,IAAI,CAACR,KAAK;MAPR;QACJS,QAAQ;QACRC,SAAS;QACTC,KAAK;QACLN,UAAU;QACVO;MAEF,CAAC,GAAAJ,WAAA;MADIK,KAAK,GAAAC,wBAAA,CAAAN,WAAA,EAAAO,SAAA;IAGV,oBAAOrB,KAAK,CAACsB,aAAa,CACxB,IAAI,CAAChB,KAAK,CAACY,GAAG,EAAAK,aAAA;MAEZ,eAAe,EAAEZ,UAAU;MAC3BK,SAAS,EAAEf,UAAU,CACnB,iBAAiB,EACjB,wBAAwB,EACxB;QACEuB,MAAM,EAAE,IAAI,CAAClB,KAAK,CAACK;MACrB,CAAC,EACDK,SACF,CAAC;MACDS,EAAE,EAAER,KAAK,KAAKS,SAAS,GAAG,IAAI,GAAI,mBAAkBT,KAAM,EAAC;MAC3DV,WAAW,EAAE,IAAI,CAACA,WAAW;MAC7BoB,IAAI,EAAE;IAAQ,GACXR,KAAK,GAEVJ,QACF,CAAC;EACH;AACF;AAEAZ,aAAa,CAACyB,SAAS,GAAG;EACxBb,QAAQ,EAAEb,SAAS,CAAC2B,IAAI,CAACC,UAAU;EACnCd,SAAS,EAAEd,SAAS,CAAC6B,MAAM;EAC3Bd,KAAK,EAAEf,SAAS,CAAC8B,MAAM;EACvBrB,UAAU,EAAET,SAAS,CAAC+B,IAAI;EAC1Bf,GAAG,EAAEhB,SAAS,CAAC6B,MAAM;EACrBnB,QAAQ,EAAEV,SAAS,CAACgC;AACtB,CAAC;AAED/B,aAAa,CAACgC,YAAY,GAAG;EAC3BnB,SAAS,EAAEU,SAAS;EACpBT,KAAK,EAAES,SAAS;EAChBf,UAAU,EAAE,KAAK;EACjBO,GAAG,EAAE,KAAK;EACVN,QAAQ,EAAEA,CAAA,KAAM,CAAE;AACpB,CAAC"}
@@ -1,24 +0,0 @@
1
- $menu-box-shadow: $box-shadow !default;
2
- $menu-border-radius: .25em !default;
3
- $menu-bg: $white !default;
4
- $menu-max-height: 16.813rem !default;
5
- $menu-item-height: 3rem !default;
6
- $menu-item-width: 19rem !default;
7
- $menu-item-width-xs: 13.438rem !default;
8
- $menu-item-color: $body-color !default;
9
- $menu-item-bg: transparent !default;
10
- $menu-item-border-color: $menu-item-bg !default;
11
- $menu-item-border-width: $btn-border-width !default;
12
- $menu-item-hover-border: $menu-item-bg !default;
13
- $menu-item-padding-x: $btn-padding-x !default;
14
- $menu-item-padding-y: $btn-padding-y !default;
15
- $menu-item-hover-color: $btn-tertiary-color !default;
16
- $menu-item-hover-border-color: $menu-item-bg !default;
17
- $menu-item-hover-bg: $btn-tertiary-hover-bg !default;
18
- $menu-item-icon-margin-left: .25em !default;
19
- $menu-item-icon-margin-right: $menu-item-icon-margin-left !default;
20
- $menu-item-focus-bg: $btn-tertiary-active-bg !default;
21
- $menu-item-border: $menu-item-border-width solid $menu-item-border-color !default;
22
- $menu-select-btn-link-color: $primary-500 !default;
23
- $menu-select-btn-link-text-decoration-line: underline !default;
24
- $menu-select-btn-link-text-decoration-thickness: .125rem !default;
@@ -1,50 +0,0 @@
1
- // Modals
2
-
3
- // Padding applied to the modal body
4
- $modal-inner-padding: 1.5rem !default;
5
- $modal-inner-padding-bottom: .7rem !default;
6
-
7
- // Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding
8
- $modal-footer-margin-between: .5rem !default;
9
-
10
- $modal-dialog-margin: 1.5rem !default;
11
- $modal-dialog-margin-y-sm-up: 1.75rem !default;
12
-
13
- $modal-title-line-height: $line-height-base !default;
14
-
15
- $modal-content-color: null !default;
16
- $modal-content-bg: $white !default;
17
- $modal-content-border-color: rgba($black, .2) !default;
18
- $modal-content-border-width: 0 !default;
19
- $modal-content-border-radius: $border-radius-lg !default;
20
- $modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;
21
- $modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;
22
- $modal-content-box-shadow-sm-up: 0 10px 20px rgba($black, .15), 0 8px 20px rgba($black, .15) !default;
23
-
24
- $modal-backdrop-bg: $black !default;
25
- $modal-backdrop-opacity: .5 !default;
26
- $modal-header-border-color: $border-color !default;
27
- $modal-footer-border-color: $modal-header-border-color !default;
28
- $modal-header-border-width: $modal-content-border-width !default;
29
- $modal-footer-border-width: $modal-header-border-width !default;
30
- $modal-header-padding-y: 1rem !default;
31
- $modal-header-padding-x: 1.5rem !default;
32
- $modal-close-container-top: .625rem !default;
33
-
34
- // Keep this for backwards compatibility
35
- $modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default;
36
- $modal-footer-padding-y: 1rem !default;
37
- $modal-footer-padding-x: 1.5rem !default;
38
-
39
- // Keep this for backwards compatibility
40
- $modal-footer-padding: $modal-footer-padding-y $modal-footer-padding-x !default;
41
-
42
- $modal-xl: 1140px !default;
43
- $modal-lg: 800px !default;
44
- $modal-md: 500px !default;
45
- $modal-sm: 400px !default;
46
-
47
- $modal-fade-transform: translate(0, -50px) !default;
48
- $modal-show-transform: none !default;
49
- $modal-transition: transform .3s ease-out !default;
50
- $modal-scale-transform: scale(1.02) !default;
@@ -1,260 +0,0 @@
1
- const _excluded = ["label"];
2
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
5
- /* eslint-disable max-len */
6
- import React from 'react';
7
- import ReactDOM from 'react-dom';
8
- import classNames from 'classnames';
9
- import PropTypes from 'prop-types';
10
- import { FocusOn } from 'react-focus-on';
11
- import { tabbable } from 'tabbable';
12
- import { Close } from '../../icons';
13
- import Button from '../Button';
14
- import Icon from '../Icon';
15
- import newId from '../utils/newId';
16
- import Variant from '../utils/constants';
17
- class Modal extends React.Component {
18
- constructor(props) {
19
- super(props);
20
- this.close = this.close.bind(this);
21
- this.headerId = newId();
22
- this.modalBodyRef = /*#__PURE__*/React.createRef();
23
- if (typeof document !== 'undefined') {
24
- this.el = document.createElement('div');
25
- // Sets true for IE11, false otherwise: https://stackoverflow.com/a/22082397/6620612
26
- this.isIE11 = !!global.MSInputMethodContext && !!document.documentMode;
27
- }
28
- this.state = {
29
- open: props.open
30
- };
31
- }
32
- componentDidMount() {
33
- const {
34
- parentSelector
35
- } = this.props;
36
- this.parentElement = document.querySelector(parentSelector);
37
- if (this.parentElement === null) {
38
- throw new Error(`Modal received invalid parentSelector: ${parentSelector}, no matching element found`);
39
- }
40
- this.parentElement.appendChild(this.el);
41
- }
42
- componentDidUpdate(prevProps, prevState) {
43
- const {
44
- open
45
- } = this.props;
46
- if (open !== prevProps.open || open !== prevState.open) {
47
- // eslint-disable-next-line react/no-did-update-set-state
48
- this.setState({
49
- open
50
- });
51
- }
52
- }
53
- componentWillUnmount() {
54
- if (this.parentElement) {
55
- ReactDOM.unmountComponentAtNode(this.parentElement);
56
- }
57
- }
58
- getVariantIconClassName() {
59
- const {
60
- variant
61
- } = this.props;
62
- let variantIconClassName;
63
- switch (variant.status) {
64
- case Variant.status.WARNING:
65
- variantIconClassName = classNames('fa', 'fa-exclamation-triangle', 'fa-3x', `text-${variant.status.toLowerCase()}`);
66
- break;
67
- default:
68
- break;
69
- }
70
- return variantIconClassName;
71
- }
72
- getVariantGridBody(body) {
73
- const {
74
- variant
75
- } = this.props;
76
- return /*#__PURE__*/React.createElement("div", {
77
- className: "container-fluid"
78
- }, /*#__PURE__*/React.createElement("div", {
79
- className: "row"
80
- }, /*#__PURE__*/React.createElement("div", {
81
- className: "col-md-10"
82
- }, /*#__PURE__*/React.createElement("div", null, body)), /*#__PURE__*/React.createElement("div", {
83
- className: "col-md-2",
84
- "data-testid": "modal-icon"
85
- }, /*#__PURE__*/React.createElement(Icon, {
86
- id: newId(`Modal-${variant.status}`),
87
- className: this.getVariantIconClassName()
88
- }))));
89
- }
90
- getTabbableBodyElements() {
91
- if (this.modalBodyRef?.current) {
92
- return tabbable(this.modalBodyRef.current);
93
- }
94
- return [];
95
- }
96
- isValidVariantStatus() {
97
- const {
98
- variant
99
- } = this.props;
100
- return Object.values(Variant.status).includes(variant.status);
101
- }
102
- close(e) {
103
- if (e) {
104
- e.stopPropagation();
105
- }
106
- this.setState({
107
- open: false
108
- });
109
- this.props.onClose();
110
- }
111
- renderButtons() {
112
- return this.props.buttons.map(button => {
113
- // button is either a React component that we want clone or a set of props
114
- if ( /*#__PURE__*/React.isValidElement(button)) {
115
- return /*#__PURE__*/React.cloneElement(button, {
116
- key: button.props.children
117
- });
118
- }
119
- const {
120
- label
121
- } = button,
122
- buttonProps = _objectWithoutProperties(button, _excluded);
123
- return /*#__PURE__*/React.createElement(Button.Deprecated, _extends({}, buttonProps, {
124
- key: label
125
- }), label);
126
- });
127
- }
128
- renderBody() {
129
- let {
130
- body
131
- } = this.props;
132
- if (typeof body === 'string') {
133
- body = /*#__PURE__*/React.createElement("p", null, body);
134
- }
135
- if (this.isValidVariantStatus()) {
136
- body = this.getVariantGridBody(body);
137
- }
138
- return body;
139
- }
140
- renderModal() {
141
- const {
142
- open
143
- } = this.state;
144
- const {
145
- dialogClassName,
146
- renderDefaultCloseButton,
147
- renderHeaderCloseButton,
148
- buttons,
149
- closeText,
150
- title
151
- } = this.props;
152
- const hasTabbableElements = renderDefaultCloseButton || renderHeaderCloseButton || buttons.length > 0 || this.getTabbableBodyElements().length > 0;
153
- const renderModalFooter = renderDefaultCloseButton || buttons.length > 0;
154
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
155
- className: classNames({
156
- 'modal-backdrop': open,
157
- show: open,
158
- fade: !open
159
- }),
160
- role: "presentation",
161
- "data-testid": "modal-backdrop"
162
- }), /*#__PURE__*/React.createElement("div", {
163
- className: classNames('modal', {
164
- show: open,
165
- fade: !open,
166
- 'd-block': open,
167
- 'is-ie11': this.isIE11
168
- }),
169
- role: "presentation",
170
- "data-testid": "modal"
171
- }, /*#__PURE__*/React.createElement("div", {
172
- className: classNames({
173
- 'modal-dialog': open
174
- }, dialogClassName),
175
- role: "dialog",
176
- "aria-modal": true,
177
- "aria-labelledby": this.headerId
178
- }, /*#__PURE__*/React.createElement(FocusOn, {
179
- enabled: open,
180
- onClickOutside: this.close,
181
- onEscapeKey: this.close
182
- }, /*#__PURE__*/React.createElement("div", _extends({
183
- className: "modal-content",
184
- "data-testid": "modal-content"
185
- // if the modal doesn't contain any tabbable elements, make this element programmatically focusable.
186
- }, !hasTabbableElements ? {
187
- tabIndex: -1
188
- } : {}), /*#__PURE__*/React.createElement("div", {
189
- className: "modal-header"
190
- }, /*#__PURE__*/React.createElement("h2", {
191
- className: "modal-title",
192
- id: this.headerId
193
- }, title), renderHeaderCloseButton && /*#__PURE__*/React.createElement(Button.Deprecated, {
194
- className: "p-1",
195
- onClick: this.close,
196
- "data-testid": "modal-header-btn"
197
- }, /*#__PURE__*/React.createElement(Icon, {
198
- src: Close,
199
- screenReaderText: closeText
200
- }))), /*#__PURE__*/React.createElement("div", {
201
- className: "modal-body",
202
- ref: this.modalBodyRef,
203
- "data-testid": "modal-body"
204
- }, this.renderBody()), renderModalFooter && /*#__PURE__*/React.createElement("div", {
205
- className: "modal-footer"
206
- }, renderDefaultCloseButton && /*#__PURE__*/React.createElement(Button, {
207
- variant: "link",
208
- onClick: this.close,
209
- "data-testid": "modal-footer-btn"
210
- }, closeText), this.renderButtons()))))));
211
- }
212
- render() {
213
- if (!this.el) {
214
- return null;
215
- }
216
- return /*#__PURE__*/ReactDOM.createPortal(this.renderModal(), this.el);
217
- }
218
- }
219
- Modal.propTypes = {
220
- /** specifies whether the modal renders open or closed on the initial render. It defaults to false. */
221
- open: PropTypes.bool,
222
- /** is the selector for an element in the dom which the modal should be rendered under. It uses querySelector to find the first element that matches that selector, and then creates a react portal to a div underneath the parent element.
223
- */
224
- parentSelector: PropTypes.string,
225
- /** a string or an element that is rendered inside of the modal title, above the modal body. */
226
- title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,
227
- /** a string or an element that is rendered inside of the modal body, between the title and the footer. */
228
- body: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,
229
- /** an array of either elements or shapes that take the form of the buttonPropTypes. See the [buttonPropTypes](https://github.com/openedx/paragon/blob/master/src/Button/index.jsx#L40) for a list of acceptable props to pass as part of a button. */
230
- buttons: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.element, PropTypes.shape({}) // TODO: Only accept nodes in the future
231
- ])),
232
-
233
- /** specifies the display text of the default Close button. It defaults to "Close". */
234
- closeText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
235
- /** a function that is called on close. It can be used to perform actions upon closing of the modal, such as restoring focus to the previous logical focusable element. */
236
- onClose: PropTypes.func.isRequired,
237
- variant: PropTypes.shape({
238
- status: PropTypes.string
239
- }),
240
- /** specifies whether the default close button is rendered in the footer. It defaults to true. */
241
- renderDefaultCloseButton: PropTypes.bool,
242
- /** specifies whether a close button is rendered in the modal header. It defaults to true. */
243
- renderHeaderCloseButton: PropTypes.bool,
244
- /**
245
- * Specifies optional classes to add to the element with the '.modal-dialog' class. See Bootstrap documentation for possible classes. Some options: modal-lg, modal-sm, modal-dialog-centered
246
- */
247
- dialogClassName: PropTypes.string
248
- };
249
- Modal.defaultProps = {
250
- open: false,
251
- parentSelector: 'body',
252
- buttons: [],
253
- closeText: 'Close',
254
- variant: {},
255
- renderDefaultCloseButton: true,
256
- renderHeaderCloseButton: true,
257
- dialogClassName: undefined
258
- };
259
- export default Modal;
260
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["React","ReactDOM","classNames","PropTypes","FocusOn","tabbable","Close","Button","Icon","newId","Variant","Modal","Component","constructor","props","close","bind","headerId","modalBodyRef","createRef","document","el","createElement","isIE11","global","MSInputMethodContext","documentMode","state","open","componentDidMount","parentSelector","parentElement","querySelector","Error","appendChild","componentDidUpdate","prevProps","prevState","setState","componentWillUnmount","unmountComponentAtNode","getVariantIconClassName","variant","variantIconClassName","status","WARNING","toLowerCase","getVariantGridBody","body","className","id","getTabbableBodyElements","current","isValidVariantStatus","Object","values","includes","e","stopPropagation","onClose","renderButtons","buttons","map","button","isValidElement","cloneElement","key","children","label","buttonProps","_objectWithoutProperties","_excluded","Deprecated","_extends","renderBody","renderModal","dialogClassName","renderDefaultCloseButton","renderHeaderCloseButton","closeText","title","hasTabbableElements","length","renderModalFooter","Fragment","show","fade","role","enabled","onClickOutside","onEscapeKey","tabIndex","onClick","src","screenReaderText","ref","render","createPortal","propTypes","bool","string","oneOfType","element","isRequired","arrayOf","shape","func","defaultProps","undefined"],"sources":["../../src/Modal/index.jsx"],"sourcesContent":["/* eslint-disable max-len */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { FocusOn } from 'react-focus-on';\nimport { tabbable } from 'tabbable';\n\nimport { Close } from '../../icons';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport newId from '../utils/newId';\nimport Variant from '../utils/constants';\n\nclass Modal extends React.Component {\n constructor(props) {\n super(props);\n\n this.close = this.close.bind(this);\n\n this.headerId = newId();\n this.modalBodyRef = React.createRef();\n\n if (typeof document !== 'undefined') {\n this.el = document.createElement('div');\n // Sets true for IE11, false otherwise: https://stackoverflow.com/a/22082397/6620612\n this.isIE11 = !!global.MSInputMethodContext && !!document.documentMode;\n }\n\n this.state = {\n open: props.open,\n };\n }\n\n componentDidMount() {\n const { parentSelector } = this.props;\n this.parentElement = document.querySelector(parentSelector);\n if (this.parentElement === null) {\n throw new Error(`Modal received invalid parentSelector: ${parentSelector}, no matching element found`);\n }\n this.parentElement.appendChild(this.el);\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { open } = this.props;\n if (open !== prevProps.open || open !== prevState.open) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ open });\n }\n }\n\n componentWillUnmount() {\n if (this.parentElement) {\n ReactDOM.unmountComponentAtNode(this.parentElement);\n }\n }\n\n getVariantIconClassName() {\n const { variant } = this.props;\n let variantIconClassName;\n\n switch (variant.status) {\n case Variant.status.WARNING:\n variantIconClassName = classNames(\n 'fa',\n 'fa-exclamation-triangle',\n 'fa-3x',\n `text-${variant.status.toLowerCase()}`,\n );\n break;\n default:\n break;\n }\n\n return variantIconClassName;\n }\n\n getVariantGridBody(body) {\n const { variant } = this.props;\n\n return (\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-md-10\">\n <div>\n {body}\n </div>\n </div>\n <div className=\"col-md-2\" data-testid=\"modal-icon\">\n <Icon\n id={newId(`Modal-${variant.status}`)}\n className={this.getVariantIconClassName()}\n />\n </div>\n </div>\n </div>\n );\n }\n\n getTabbableBodyElements() {\n if (this.modalBodyRef?.current) {\n return tabbable(this.modalBodyRef.current);\n }\n return [];\n }\n\n isValidVariantStatus() {\n const { variant } = this.props;\n return Object.values(Variant.status).includes(variant.status);\n }\n\n close(e) {\n if (e) {\n e.stopPropagation();\n }\n\n this.setState({ open: false });\n this.props.onClose();\n }\n\n renderButtons() {\n return this.props.buttons.map((button) => {\n // button is either a React component that we want clone or a set of props\n if (React.isValidElement(button)) {\n return React.cloneElement(button, {\n key: button.props.children,\n });\n }\n\n const { label, ...buttonProps } = button;\n\n return (\n <Button.Deprecated\n {...buttonProps}\n key={label}\n >\n {label}\n </Button.Deprecated>\n );\n });\n }\n\n renderBody() {\n let { body } = this.props;\n\n if (typeof body === 'string') {\n body = <p>{body}</p>;\n }\n\n if (this.isValidVariantStatus()) {\n body = this.getVariantGridBody(body);\n }\n\n return body;\n }\n\n renderModal() {\n const { open } = this.state;\n const {\n dialogClassName,\n renderDefaultCloseButton,\n renderHeaderCloseButton,\n buttons,\n closeText,\n title,\n } = this.props;\n\n const hasTabbableElements = (\n renderDefaultCloseButton\n || renderHeaderCloseButton\n || buttons.length > 0\n || this.getTabbableBodyElements().length > 0\n );\n const renderModalFooter = renderDefaultCloseButton || buttons.length > 0;\n\n return (\n <>\n <div\n className={classNames({\n 'modal-backdrop': open,\n show: open,\n fade: !open,\n })}\n role=\"presentation\"\n data-testid=\"modal-backdrop\"\n />\n <div\n className={classNames(\n 'modal',\n {\n show: open,\n fade: !open,\n 'd-block': open,\n 'is-ie11': this.isIE11,\n },\n )}\n role=\"presentation\"\n data-testid=\"modal\"\n >\n <div\n className={classNames(\n {\n 'modal-dialog': open,\n },\n dialogClassName,\n )}\n role=\"dialog\"\n aria-modal\n aria-labelledby={this.headerId}\n >\n <FocusOn\n enabled={open}\n onClickOutside={this.close}\n onEscapeKey={this.close}\n >\n <div\n className=\"modal-content\"\n data-testid=\"modal-content\"\n // if the modal doesn't contain any tabbable elements, make this element programmatically focusable.\n {...(!hasTabbableElements ? { tabIndex: -1 } : {})}\n >\n <div className=\"modal-header\">\n <h2 className=\"modal-title\" id={this.headerId}>{title}</h2>\n {renderHeaderCloseButton && (\n <Button.Deprecated\n className=\"p-1\"\n onClick={this.close}\n data-testid=\"modal-header-btn\"\n >\n <Icon src={Close} screenReaderText={closeText} />\n </Button.Deprecated>\n )}\n </div>\n <div className=\"modal-body\" ref={this.modalBodyRef} data-testid=\"modal-body\">\n {this.renderBody()}\n </div>\n {renderModalFooter && (\n <div className=\"modal-footer\">\n {renderDefaultCloseButton && (\n <Button\n variant=\"link\"\n onClick={this.close}\n data-testid=\"modal-footer-btn\"\n >\n {closeText}\n </Button>\n )}\n {this.renderButtons()}\n </div>\n )}\n </div>\n </FocusOn>\n </div>\n </div>\n </>\n );\n }\n\n render() {\n if (!this.el) {\n return null;\n }\n\n return ReactDOM.createPortal(\n this.renderModal(),\n this.el,\n );\n }\n}\n\nModal.propTypes = {\n /** specifies whether the modal renders open or closed on the initial render. It defaults to false. */\n open: PropTypes.bool,\n /** is the selector for an element in the dom which the modal should be rendered under. It uses querySelector to find the first element that matches that selector, and then creates a react portal to a div underneath the parent element.\n */\n parentSelector: PropTypes.string,\n /** a string or an element that is rendered inside of the modal title, above the modal body. */\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n /** a string or an element that is rendered inside of the modal body, between the title and the footer. */\n body: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n /** an array of either elements or shapes that take the form of the buttonPropTypes. See the [buttonPropTypes](https://github.com/openedx/paragon/blob/master/src/Button/index.jsx#L40) for a list of acceptable props to pass as part of a button. */\n buttons: PropTypes.arrayOf(PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({}), // TODO: Only accept nodes in the future\n ])),\n /** specifies the display text of the default Close button. It defaults to \"Close\". */\n closeText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /** a function that is called on close. It can be used to perform actions upon closing of the modal, such as restoring focus to the previous logical focusable element. */\n onClose: PropTypes.func.isRequired,\n variant: PropTypes.shape({\n status: PropTypes.string,\n }),\n /** specifies whether the default close button is rendered in the footer. It defaults to true. */\n renderDefaultCloseButton: PropTypes.bool,\n /** specifies whether a close button is rendered in the modal header. It defaults to true. */\n renderHeaderCloseButton: PropTypes.bool,\n /**\n * Specifies optional classes to add to the element with the '.modal-dialog' class. See Bootstrap documentation for possible classes. Some options: modal-lg, modal-sm, modal-dialog-centered\n */\n dialogClassName: PropTypes.string,\n};\n\nModal.defaultProps = {\n open: false,\n parentSelector: 'body',\n buttons: [],\n closeText: 'Close',\n variant: {},\n renderDefaultCloseButton: true,\n renderHeaderCloseButton: true,\n dialogClassName: undefined,\n};\n\nexport default Modal;\n"],"mappings":"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"}