@openedx/paragon 21.12.1 → 21.12.3

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 (416) hide show
  1. package/dist/ActionRow/index.js +7 -8
  2. package/dist/ActionRow/index.js.map +1 -1
  3. package/dist/Alert/index.js +33 -25
  4. package/dist/Alert/index.js.map +1 -1
  5. package/dist/Annotation/index.js +7 -9
  6. package/dist/Annotation/index.js.map +1 -1
  7. package/dist/Avatar/index.js +5 -7
  8. package/dist/Avatar/index.js.map +1 -1
  9. package/dist/AvatarButton/index.js +10 -12
  10. package/dist/AvatarButton/index.js.map +1 -1
  11. package/dist/Badge/index.js +6 -4
  12. package/dist/Badge/index.js.map +1 -1
  13. package/dist/Breadcrumb/BreadcrumbLink.js +11 -14
  14. package/dist/Breadcrumb/BreadcrumbLink.js.map +1 -1
  15. package/dist/Breadcrumb/index.js +29 -29
  16. package/dist/Breadcrumb/index.js.map +1 -1
  17. package/dist/Bubble/index.js +11 -13
  18. package/dist/Bubble/index.js.map +1 -1
  19. package/dist/Button/deprecated/index.js +87 -66
  20. package/dist/Button/deprecated/index.js.map +1 -1
  21. package/dist/Button/index.js +10 -11
  22. package/dist/Button/index.js.map +1 -1
  23. package/dist/Card/CardBody.js +4 -6
  24. package/dist/Card/CardBody.js.map +1 -1
  25. package/dist/Card/CardCarousel/CardCarousel.js +11 -13
  26. package/dist/Card/CardCarousel/CardCarousel.js.map +1 -1
  27. package/dist/Card/CardCarousel/CardCarouselControls.js +6 -7
  28. package/dist/Card/CardCarousel/CardCarouselControls.js.map +1 -1
  29. package/dist/Card/CardCarousel/CardCarouselHeader.js +9 -12
  30. package/dist/Card/CardCarousel/CardCarouselHeader.js.map +1 -1
  31. package/dist/Card/CardCarousel/CardCarouselItems.js +6 -9
  32. package/dist/Card/CardCarousel/CardCarouselItems.js.map +1 -1
  33. package/dist/Card/CardCarousel/CardCarouselProvider.js +27 -28
  34. package/dist/Card/CardCarousel/CardCarouselProvider.js.map +1 -1
  35. package/dist/Card/CardCarousel/CardCarouselSubtitle.js +4 -6
  36. package/dist/Card/CardCarousel/CardCarouselSubtitle.js.map +1 -1
  37. package/dist/Card/CardCarousel/CardCarouselTitle.js +4 -6
  38. package/dist/Card/CardCarousel/CardCarouselTitle.js.map +1 -1
  39. package/dist/Card/CardContext.js +8 -10
  40. package/dist/Card/CardContext.js.map +1 -1
  41. package/dist/Card/CardDeck.js +19 -17
  42. package/dist/Card/CardDeck.js.map +1 -1
  43. package/dist/Card/CardDivider.js +3 -5
  44. package/dist/Card/CardDivider.js.map +1 -1
  45. package/dist/Card/CardFooter.js +15 -18
  46. package/dist/Card/CardFooter.js.map +1 -1
  47. package/dist/Card/CardGrid.js +13 -11
  48. package/dist/Card/CardGrid.js.map +1 -1
  49. package/dist/Card/CardHeader.js +17 -22
  50. package/dist/Card/CardHeader.js.map +1 -1
  51. package/dist/Card/CardImageCap.js +48 -33
  52. package/dist/Card/CardImageCap.js.map +1 -1
  53. package/dist/Card/CardSection.js +11 -14
  54. package/dist/Card/CardSection.js.map +1 -1
  55. package/dist/Card/CardStatus.js +11 -14
  56. package/dist/Card/CardStatus.js.map +1 -1
  57. package/dist/Card/index.js +18 -20
  58. package/dist/Card/index.js.map +1 -1
  59. package/dist/Carousel/index.js +17 -11
  60. package/dist/Carousel/index.js.map +1 -1
  61. package/dist/CheckBox/index.js +66 -36
  62. package/dist/CheckBox/index.js.map +1 -1
  63. package/dist/Chip/index.js +14 -16
  64. package/dist/Chip/index.js.map +1 -1
  65. package/dist/ChipCarousel/index.js +29 -30
  66. package/dist/ChipCarousel/index.js.map +1 -1
  67. package/dist/Collapsible/CollapsibleAdvanced.js +82 -62
  68. package/dist/Collapsible/CollapsibleAdvanced.js.map +1 -1
  69. package/dist/Collapsible/CollapsibleBody.js +13 -15
  70. package/dist/Collapsible/CollapsibleBody.js.map +1 -1
  71. package/dist/Collapsible/CollapsibleTrigger.js +18 -20
  72. package/dist/Collapsible/CollapsibleTrigger.js.map +1 -1
  73. package/dist/Collapsible/CollapsibleVisible.js +6 -9
  74. package/dist/Collapsible/CollapsibleVisible.js.map +1 -1
  75. package/dist/Collapsible/index.js +17 -18
  76. package/dist/Collapsible/index.js.map +1 -1
  77. package/dist/ColorPicker/index.js +58 -33
  78. package/dist/ColorPicker/index.js.map +1 -1
  79. package/dist/Container/index.js +8 -9
  80. package/dist/Container/index.js.map +1 -1
  81. package/dist/DataTable/ActionDisplay.js +8 -9
  82. package/dist/DataTable/ActionDisplay.js.map +1 -1
  83. package/dist/DataTable/BulkActions.js +23 -20
  84. package/dist/DataTable/BulkActions.js.map +1 -1
  85. package/dist/DataTable/CardView.js +46 -43
  86. package/dist/DataTable/CardView.js.map +1 -1
  87. package/dist/DataTable/CollapsibleButtonGroup.js +57 -39
  88. package/dist/DataTable/CollapsibleButtonGroup.js.map +1 -1
  89. package/dist/DataTable/DataTableContext.js +1 -1
  90. package/dist/DataTable/DataTableContext.js.map +1 -1
  91. package/dist/DataTable/DataTableLayout.js +6 -9
  92. package/dist/DataTable/DataTableLayout.js.map +1 -1
  93. package/dist/DataTable/DataViewToggle.js +25 -20
  94. package/dist/DataTable/DataViewToggle.js.map +1 -1
  95. package/dist/DataTable/DropdownFilters.js +41 -28
  96. package/dist/DataTable/DropdownFilters.js.map +1 -1
  97. package/dist/DataTable/EmptyTable.js +6 -9
  98. package/dist/DataTable/EmptyTable.js.map +1 -1
  99. package/dist/DataTable/ExpandAll.js +2 -4
  100. package/dist/DataTable/ExpandAll.js.map +1 -1
  101. package/dist/DataTable/ExpandRow.js +2 -4
  102. package/dist/DataTable/ExpandRow.js.map +1 -1
  103. package/dist/DataTable/FilterStatus.js +18 -17
  104. package/dist/DataTable/FilterStatus.js.map +1 -1
  105. package/dist/DataTable/RowStatus.js +15 -18
  106. package/dist/DataTable/RowStatus.js.map +1 -1
  107. package/dist/DataTable/SidebarFilters.js +16 -13
  108. package/dist/DataTable/SidebarFilters.js.map +1 -1
  109. package/dist/DataTable/SmartStatus.js +14 -16
  110. package/dist/DataTable/SmartStatus.js.map +1 -1
  111. package/dist/DataTable/Table.js +17 -19
  112. package/dist/DataTable/Table.js.map +1 -1
  113. package/dist/DataTable/TableActions.js +11 -13
  114. package/dist/DataTable/TableActions.js.map +1 -1
  115. package/dist/DataTable/TableCell.js +6 -10
  116. package/dist/DataTable/TableCell.js.map +1 -1
  117. package/dist/DataTable/TableControlBar.js +7 -12
  118. package/dist/DataTable/TableControlBar.js.map +1 -1
  119. package/dist/DataTable/TableFilters.js +14 -12
  120. package/dist/DataTable/TableFilters.js.map +1 -1
  121. package/dist/DataTable/TableFooter.js +5 -8
  122. package/dist/DataTable/TableFooter.js.map +1 -1
  123. package/dist/DataTable/TableHeaderCell.js +11 -15
  124. package/dist/DataTable/TableHeaderCell.js.map +1 -1
  125. package/dist/DataTable/TableHeaderRow.js +6 -4
  126. package/dist/DataTable/TableHeaderRow.js.map +1 -1
  127. package/dist/DataTable/TablePagination.js +8 -7
  128. package/dist/DataTable/TablePagination.js.map +1 -1
  129. package/dist/DataTable/TablePaginationMinimal.js +9 -8
  130. package/dist/DataTable/TablePaginationMinimal.js.map +1 -1
  131. package/dist/DataTable/TableRow.js +15 -18
  132. package/dist/DataTable/TableRow.js.map +1 -1
  133. package/dist/DataTable/_variables.scss +1 -1
  134. package/dist/DataTable/filters/CheckboxFilter.js +23 -22
  135. package/dist/DataTable/filters/CheckboxFilter.js.map +1 -1
  136. package/dist/DataTable/filters/DropdownFilter.js +14 -19
  137. package/dist/DataTable/filters/DropdownFilter.js.map +1 -1
  138. package/dist/DataTable/filters/MultiSelectDropdownFilter.js +19 -20
  139. package/dist/DataTable/filters/MultiSelectDropdownFilter.js.map +1 -1
  140. package/dist/DataTable/filters/TextFilter.js +10 -13
  141. package/dist/DataTable/filters/TextFilter.js.map +1 -1
  142. package/dist/DataTable/hooks.js +29 -25
  143. package/dist/DataTable/hooks.js.map +1 -1
  144. package/dist/DataTable/index.js +120 -104
  145. package/dist/DataTable/index.js.map +1 -1
  146. package/dist/DataTable/selection/BaseSelectionStatus.js +29 -31
  147. package/dist/DataTable/selection/BaseSelectionStatus.js.map +1 -1
  148. package/dist/DataTable/selection/ControlledSelect.js +13 -9
  149. package/dist/DataTable/selection/ControlledSelect.js.map +1 -1
  150. package/dist/DataTable/selection/ControlledSelectHeader.js +19 -15
  151. package/dist/DataTable/selection/ControlledSelectHeader.js.map +1 -1
  152. package/dist/DataTable/selection/ControlledSelectionStatus.js +34 -24
  153. package/dist/DataTable/selection/ControlledSelectionStatus.js.map +1 -1
  154. package/dist/DataTable/selection/SelectionStatus.js +23 -23
  155. package/dist/DataTable/selection/SelectionStatus.js.map +1 -1
  156. package/dist/DataTable/utils/getVisibleColumns.js +36 -44
  157. package/dist/DataTable/utils/getVisibleColumns.js.map +1 -1
  158. package/dist/Dropdown/deprecated/DropdownButton.js +9 -13
  159. package/dist/Dropdown/deprecated/DropdownButton.js.map +1 -1
  160. package/dist/Dropdown/deprecated/DropdownItem.js +7 -8
  161. package/dist/Dropdown/deprecated/DropdownItem.js.map +1 -1
  162. package/dist/Dropdown/deprecated/DropdownMenu.js +8 -12
  163. package/dist/Dropdown/deprecated/DropdownMenu.js.map +1 -1
  164. package/dist/Dropdown/deprecated/index.js +136 -103
  165. package/dist/Dropdown/deprecated/index.js.map +1 -1
  166. package/dist/Dropdown/index.js +32 -29
  167. package/dist/Dropdown/index.js.map +1 -1
  168. package/dist/Dropzone/DefaultContent.js +13 -13
  169. package/dist/Dropzone/DefaultContent.js.map +1 -1
  170. package/dist/Dropzone/DragError.js +1 -3
  171. package/dist/Dropzone/DragError.js.map +1 -1
  172. package/dist/Dropzone/GenericError.js +7 -7
  173. package/dist/Dropzone/GenericError.js.map +1 -1
  174. package/dist/Dropzone/UploadProgress.js +6 -8
  175. package/dist/Dropzone/UploadProgress.js.map +1 -1
  176. package/dist/Dropzone/index.js +145 -86
  177. package/dist/Dropzone/index.js.map +1 -1
  178. package/dist/Fieldset/index.js +82 -57
  179. package/dist/Fieldset/index.js.map +1 -1
  180. package/dist/Form/FormAutosuggest.js +137 -95
  181. package/dist/Form/FormAutosuggest.js.map +1 -1
  182. package/dist/Form/FormAutosuggestOption.js +4 -6
  183. package/dist/Form/FormAutosuggestOption.js.map +1 -1
  184. package/dist/Form/FormCheckbox.js +35 -42
  185. package/dist/Form/FormCheckbox.js.map +1 -1
  186. package/dist/Form/FormCheckboxSet.js +13 -16
  187. package/dist/Form/FormCheckboxSet.js.map +1 -1
  188. package/dist/Form/FormCheckboxSetContext.js +39 -34
  189. package/dist/Form/FormCheckboxSetContext.js.map +1 -1
  190. package/dist/Form/FormControl.js +41 -35
  191. package/dist/Form/FormControl.js.map +1 -1
  192. package/dist/Form/FormControlDecorator.js +3 -5
  193. package/dist/Form/FormControlDecorator.js.map +1 -1
  194. package/dist/Form/FormControlDecoratorGroup.js +8 -10
  195. package/dist/Form/FormControlDecoratorGroup.js.map +1 -1
  196. package/dist/Form/FormControlFeedback.js +12 -15
  197. package/dist/Form/FormControlFeedback.js.map +1 -1
  198. package/dist/Form/FormControlFloatingLabel.js +3 -6
  199. package/dist/Form/FormControlFloatingLabel.js.map +1 -1
  200. package/dist/Form/FormControlSet.js +8 -9
  201. package/dist/Form/FormControlSet.js.map +1 -1
  202. package/dist/Form/FormGroup.js +11 -12
  203. package/dist/Form/FormGroup.js.map +1 -1
  204. package/dist/Form/FormGroupContext.js +64 -39
  205. package/dist/Form/FormGroupContext.js.map +1 -1
  206. package/dist/Form/FormLabel.js +15 -17
  207. package/dist/Form/FormLabel.js.map +1 -1
  208. package/dist/Form/FormRadio.js +19 -22
  209. package/dist/Form/FormRadio.js.map +1 -1
  210. package/dist/Form/FormRadioSet.js +13 -16
  211. package/dist/Form/FormRadioSet.js.map +1 -1
  212. package/dist/Form/FormRadioSetContext.js +39 -34
  213. package/dist/Form/FormRadioSetContext.js.map +1 -1
  214. package/dist/Form/FormSwitch.js +16 -20
  215. package/dist/Form/FormSwitch.js.map +1 -1
  216. package/dist/Form/FormText.js +20 -29
  217. package/dist/Form/FormText.js.map +1 -1
  218. package/dist/Form/useCheckboxSetValues.js +46 -23
  219. package/dist/Form/useCheckboxSetValues.js.map +1 -1
  220. package/dist/Hyperlink/index.js +25 -25
  221. package/dist/Hyperlink/index.js.map +1 -1
  222. package/dist/Hyperlink/index.scss +2 -2
  223. package/dist/Icon/index.js +21 -20
  224. package/dist/Icon/index.js.map +1 -1
  225. package/dist/IconButton/index.js +30 -32
  226. package/dist/IconButton/index.js.map +1 -1
  227. package/dist/IconButtonToggle/index.js +16 -16
  228. package/dist/IconButtonToggle/index.js.map +1 -1
  229. package/dist/Input/index.js +122 -92
  230. package/dist/Input/index.js.map +1 -1
  231. package/dist/InputSelect/index.js +78 -51
  232. package/dist/InputSelect/index.js.map +1 -1
  233. package/dist/InputText/index.js +11 -9
  234. package/dist/InputText/index.js.map +1 -1
  235. package/dist/Layout/index.js +33 -29
  236. package/dist/Layout/index.js.map +1 -1
  237. package/dist/ListBox/index.js +112 -80
  238. package/dist/ListBox/index.js.map +1 -1
  239. package/dist/ListBoxOption/index.js +68 -45
  240. package/dist/ListBoxOption/index.js.map +1 -1
  241. package/dist/MailtoLink/index.js +37 -34
  242. package/dist/MailtoLink/index.js.map +1 -1
  243. package/dist/Menu/MenuItem.js +13 -14
  244. package/dist/Menu/MenuItem.js.map +1 -1
  245. package/dist/Menu/SelectMenu.js +68 -44
  246. package/dist/Menu/SelectMenu.js.map +1 -1
  247. package/dist/Menu/index.js +10 -11
  248. package/dist/Menu/index.js.map +1 -1
  249. package/dist/Modal/AlertModal.js +5 -7
  250. package/dist/Modal/AlertModal.js.map +1 -1
  251. package/dist/Modal/FullscreenModal.js +6 -8
  252. package/dist/Modal/FullscreenModal.js.map +1 -1
  253. package/dist/Modal/MarketingModal.js +8 -10
  254. package/dist/Modal/MarketingModal.js.map +1 -1
  255. package/dist/Modal/ModalCloseButton.js +13 -15
  256. package/dist/Modal/ModalCloseButton.js.map +1 -1
  257. package/dist/Modal/ModalContext.js +13 -13
  258. package/dist/Modal/ModalContext.js.map +1 -1
  259. package/dist/Modal/ModalDialog.js +22 -23
  260. package/dist/Modal/ModalDialog.js.map +1 -1
  261. package/dist/Modal/ModalDialogBody.js +22 -11
  262. package/dist/Modal/ModalDialogBody.js.map +1 -1
  263. package/dist/Modal/ModalDialogFooter.js +6 -7
  264. package/dist/Modal/ModalDialogFooter.js.map +1 -1
  265. package/dist/Modal/ModalDialogHeader.js +6 -7
  266. package/dist/Modal/ModalDialogHeader.js.map +1 -1
  267. package/dist/Modal/ModalDialogHero.js +6 -7
  268. package/dist/Modal/ModalDialogHero.js.map +1 -1
  269. package/dist/Modal/ModalDialogHeroBackground.js +8 -9
  270. package/dist/Modal/ModalDialogHeroBackground.js.map +1 -1
  271. package/dist/Modal/ModalDialogHeroContent.js +6 -7
  272. package/dist/Modal/ModalDialogHeroContent.js.map +1 -1
  273. package/dist/Modal/ModalDialogTitle.js +6 -7
  274. package/dist/Modal/ModalDialogTitle.js.map +1 -1
  275. package/dist/Modal/ModalLayer.js +11 -17
  276. package/dist/Modal/ModalLayer.js.map +1 -1
  277. package/dist/Modal/ModalPopup.js +17 -17
  278. package/dist/Modal/ModalPopup.js.map +1 -1
  279. package/dist/Modal/PopperElement.js +25 -18
  280. package/dist/Modal/PopperElement.js.map +1 -1
  281. package/dist/Modal/Portal.js +40 -18
  282. package/dist/Modal/Portal.js.map +1 -1
  283. package/dist/Modal/StandardModal.js +6 -8
  284. package/dist/Modal/StandardModal.js.map +1 -1
  285. package/dist/Modal/index.js +215 -187
  286. package/dist/Modal/index.js.map +1 -1
  287. package/dist/Nav/index.js +3 -2
  288. package/dist/Nav/index.js.map +1 -1
  289. package/dist/Navbar/index.js +7 -6
  290. package/dist/Navbar/index.js.map +1 -1
  291. package/dist/OverflowScroll/OverflowScroll.js +45 -37
  292. package/dist/OverflowScroll/OverflowScroll.js.map +1 -1
  293. package/dist/OverflowScroll/OverflowScrollContext.js +1 -1
  294. package/dist/OverflowScroll/OverflowScrollContext.js.map +1 -1
  295. package/dist/OverflowScroll/OverflowScrollItems.js +2 -4
  296. package/dist/OverflowScroll/OverflowScrollItems.js.map +1 -1
  297. package/dist/Overlay/index.js +4 -4
  298. package/dist/Overlay/index.js.map +1 -1
  299. package/dist/PageBanner/index.js +11 -13
  300. package/dist/PageBanner/index.js.map +1 -1
  301. package/dist/Pagination/index.js +331 -296
  302. package/dist/Pagination/index.js.map +1 -1
  303. package/dist/Pagination/index.scss +1 -0
  304. package/dist/Popover/index.js +11 -14
  305. package/dist/Popover/index.js.map +1 -1
  306. package/dist/ProductTour/Checkpoint.js +29 -22
  307. package/dist/ProductTour/Checkpoint.js.map +1 -1
  308. package/dist/ProductTour/CheckpointActionRow.js +18 -16
  309. package/dist/ProductTour/CheckpointActionRow.js.map +1 -1
  310. package/dist/ProductTour/CheckpointBody.js +2 -4
  311. package/dist/ProductTour/CheckpointBody.js.map +1 -1
  312. package/dist/ProductTour/CheckpointBreadcrumbs.js +16 -16
  313. package/dist/ProductTour/CheckpointBreadcrumbs.js.map +1 -1
  314. package/dist/ProductTour/CheckpointTitle.js +2 -4
  315. package/dist/ProductTour/CheckpointTitle.js.map +1 -1
  316. package/dist/ProductTour/index.js +66 -47
  317. package/dist/ProductTour/index.js.map +1 -1
  318. package/dist/ProgressBar/index.js +37 -35
  319. package/dist/ProgressBar/index.js.map +1 -1
  320. package/dist/RadioButtonGroup/index.js +133 -102
  321. package/dist/RadioButtonGroup/index.js.map +1 -1
  322. package/dist/Scrollable/index.js +30 -15
  323. package/dist/Scrollable/index.js.map +1 -1
  324. package/dist/SearchField/SearchFieldAdvanced.js +54 -44
  325. package/dist/SearchField/SearchFieldAdvanced.js.map +1 -1
  326. package/dist/SearchField/SearchFieldClearButton.js +7 -8
  327. package/dist/SearchField/SearchFieldClearButton.js.map +1 -1
  328. package/dist/SearchField/SearchFieldInput.js +8 -9
  329. package/dist/SearchField/SearchFieldInput.js.map +1 -1
  330. package/dist/SearchField/SearchFieldLabel.js +5 -8
  331. package/dist/SearchField/SearchFieldLabel.js.map +1 -1
  332. package/dist/SearchField/SearchFieldSubmitButton.js +12 -15
  333. package/dist/SearchField/SearchFieldSubmitButton.js.map +1 -1
  334. package/dist/SearchField/index.js +22 -22
  335. package/dist/SearchField/index.js.map +1 -1
  336. package/dist/SelectableBox/SelectableBoxSet.js +25 -26
  337. package/dist/SelectableBox/SelectableBoxSet.js.map +1 -1
  338. package/dist/SelectableBox/index.js +42 -38
  339. package/dist/SelectableBox/index.js.map +1 -1
  340. package/dist/Sheet/SheetContainer.js +38 -16
  341. package/dist/Sheet/SheetContainer.js.map +1 -1
  342. package/dist/Sheet/index.js +65 -43
  343. package/dist/Sheet/index.js.map +1 -1
  344. package/dist/Spinner/index.js +8 -9
  345. package/dist/Spinner/index.js.map +1 -1
  346. package/dist/Stack/index.js +9 -11
  347. package/dist/Stack/index.js.map +1 -1
  348. package/dist/StatefulButton/index.js +15 -17
  349. package/dist/StatefulButton/index.js.map +1 -1
  350. package/dist/StatusAlert/index.js +120 -82
  351. package/dist/StatusAlert/index.js.map +1 -1
  352. package/dist/Stepper/Stepper.js +2 -4
  353. package/dist/Stepper/Stepper.js.map +1 -1
  354. package/dist/Stepper/StepperActionRow.js +7 -10
  355. package/dist/Stepper/StepperActionRow.js.map +1 -1
  356. package/dist/Stepper/StepperContext.js +64 -32
  357. package/dist/Stepper/StepperContext.js.map +1 -1
  358. package/dist/Stepper/StepperHeader.js +23 -30
  359. package/dist/Stepper/StepperHeader.js.map +1 -1
  360. package/dist/Stepper/StepperHeaderStep.js +14 -17
  361. package/dist/Stepper/StepperHeaderStep.js.map +1 -1
  362. package/dist/Stepper/StepperStep.js +23 -24
  363. package/dist/Stepper/StepperStep.js.map +1 -1
  364. package/dist/Sticky/index.js +30 -22
  365. package/dist/Sticky/index.js.map +1 -1
  366. package/dist/Table/index.js +178 -109
  367. package/dist/Table/index.js.map +1 -1
  368. package/dist/Tabs/deprecated/index.js +99 -66
  369. package/dist/Tabs/deprecated/index.js.map +1 -1
  370. package/dist/Tabs/index.js +65 -49
  371. package/dist/Tabs/index.js.map +1 -1
  372. package/dist/TextArea/index.js +10 -8
  373. package/dist/TextArea/index.js.map +1 -1
  374. package/dist/Toast/ToastContainer.js +38 -16
  375. package/dist/Toast/ToastContainer.js.map +1 -1
  376. package/dist/Toast/index.js +33 -18
  377. package/dist/Toast/index.js.map +1 -1
  378. package/dist/Tooltip/index.js +8 -9
  379. package/dist/Tooltip/index.js.map +1 -1
  380. package/dist/TransitionReplace/DemoTransitionReplace.js +12 -3
  381. package/dist/TransitionReplace/DemoTransitionReplace.js.map +1 -1
  382. package/dist/TransitionReplace/index.js +136 -100
  383. package/dist/TransitionReplace/index.js.map +1 -1
  384. package/dist/Truncate/index.js +30 -24
  385. package/dist/Truncate/index.js.map +1 -1
  386. package/dist/ValidationFormGroup/index.js +38 -37
  387. package/dist/ValidationFormGroup/index.js.map +1 -1
  388. package/dist/ValidationMessage/index.js +76 -51
  389. package/dist/ValidationMessage/index.js.map +1 -1
  390. package/dist/asInput/index.js +251 -202
  391. package/dist/asInput/index.js.map +1 -1
  392. package/dist/hooks/useArrowKeyNavigation.js +46 -43
  393. package/dist/hooks/useArrowKeyNavigation.js.map +1 -1
  394. package/dist/hooks/useIndexOfLastVisibleChild.js +40 -26
  395. package/dist/hooks/useIndexOfLastVisibleChild.js.map +1 -1
  396. package/dist/hooks/useIsVisible.js +20 -13
  397. package/dist/hooks/useIsVisible.js.map +1 -1
  398. package/dist/hooks/useToggle.js +18 -11
  399. package/dist/hooks/useToggle.js.map +1 -1
  400. package/dist/hooks/useWindowSize.js +17 -6
  401. package/dist/hooks/useWindowSize.js.map +1 -1
  402. package/dist/paragon.css +1 -1
  403. package/dist/withDeprecatedProps.js +79 -58
  404. package/dist/withDeprecatedProps.js.map +1 -1
  405. package/package.json +1 -5
  406. package/src/Button/index.jsx +2 -2
  407. package/src/DataTable/_variables.scss +1 -1
  408. package/src/Dropzone/index.jsx +1 -1
  409. package/src/Hyperlink/index.scss +2 -2
  410. package/src/Icon/index.jsx +1 -1
  411. package/src/IconButton/__snapshots__/IconButton.test.jsx.snap +12 -10
  412. package/src/IconButton/index.jsx +1 -1
  413. package/src/Menu/MenuItem.jsx +2 -2
  414. package/src/Overlay/README.md +1 -1
  415. package/src/Overlay/index.jsx +1 -1
  416. package/src/Pagination/index.scss +1 -0
@@ -1,7 +1,20 @@
1
- const _excluded = ["label"];
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ var _excluded = ["label"];
2
3
  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
4
  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
5
  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; }
6
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
8
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
9
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
+ 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); }
11
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
12
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
13
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
14
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
15
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
16
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
17
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
5
18
  import React from 'react';
6
19
  import ReactDOM from 'react-dom';
7
20
  import classNames from 'classnames';
@@ -13,208 +26,223 @@ import Button from '../Button';
13
26
  import Icon from '../Icon';
14
27
  import newId from '../utils/newId';
15
28
  import Variant from '../utils/constants';
16
- class Modal extends React.Component {
17
- constructor(props) {
18
- super(props);
19
- this.close = this.close.bind(this);
20
- this.headerId = newId();
21
- this.modalBodyRef = /*#__PURE__*/React.createRef();
29
+ var Modal = /*#__PURE__*/function (_React$Component) {
30
+ _inherits(Modal, _React$Component);
31
+ var _super = _createSuper(Modal);
32
+ function Modal(props) {
33
+ var _this;
34
+ _classCallCheck(this, Modal);
35
+ _this = _super.call(this, props);
36
+ _this.close = _this.close.bind(_assertThisInitialized(_this));
37
+ _this.headerId = newId();
38
+ _this.modalBodyRef = /*#__PURE__*/React.createRef();
22
39
  if (typeof document !== 'undefined') {
23
- this.el = document.createElement('div');
40
+ _this.el = document.createElement('div');
24
41
  // Sets true for IE11, false otherwise: https://stackoverflow.com/a/22082397/6620612
25
- this.isIE11 = !!global.MSInputMethodContext && !!document.documentMode;
42
+ _this.isIE11 = !!global.MSInputMethodContext && !!document.documentMode;
26
43
  }
27
- this.state = {
44
+ _this.state = {
28
45
  open: props.open
29
46
  };
47
+ return _this;
30
48
  }
31
- componentDidMount() {
32
- const {
33
- parentSelector
34
- } = this.props;
35
- this.parentElement = document.querySelector(parentSelector);
36
- if (this.parentElement === null) {
37
- throw new Error(`Modal received invalid parentSelector: ${parentSelector}, no matching element found`);
49
+ _createClass(Modal, [{
50
+ key: "componentDidMount",
51
+ value: function componentDidMount() {
52
+ var parentSelector = this.props.parentSelector;
53
+ this.parentElement = document.querySelector(parentSelector);
54
+ if (this.parentElement === null) {
55
+ throw new Error("Modal received invalid parentSelector: ".concat(parentSelector, ", no matching element found"));
56
+ }
57
+ this.parentElement.appendChild(this.el);
38
58
  }
39
- this.parentElement.appendChild(this.el);
40
- }
41
- componentDidUpdate(prevProps, prevState) {
42
- const {
43
- open
44
- } = this.props;
45
- if (open !== prevProps.open || open !== prevState.open) {
46
- // eslint-disable-next-line react/no-did-update-set-state
47
- this.setState({
48
- open
49
- });
59
+ }, {
60
+ key: "componentDidUpdate",
61
+ value: function componentDidUpdate(prevProps, prevState) {
62
+ var open = this.props.open;
63
+ if (open !== prevProps.open || open !== prevState.open) {
64
+ // eslint-disable-next-line react/no-did-update-set-state
65
+ this.setState({
66
+ open: open
67
+ });
68
+ }
50
69
  }
51
- }
52
- componentWillUnmount() {
53
- if (this.parentElement) {
54
- ReactDOM.unmountComponentAtNode(this.parentElement);
70
+ }, {
71
+ key: "componentWillUnmount",
72
+ value: function componentWillUnmount() {
73
+ if (this.parentElement) {
74
+ ReactDOM.unmountComponentAtNode(this.parentElement);
75
+ }
55
76
  }
56
- }
57
- getVariantIconClassName() {
58
- const {
59
- variant
60
- } = this.props;
61
- let variantIconClassName;
62
- switch (variant.status) {
63
- case Variant.status.WARNING:
64
- variantIconClassName = classNames('fa', 'fa-exclamation-triangle', 'fa-3x', `text-${variant.status.toLowerCase()}`);
65
- break;
66
- default:
67
- break;
77
+ }, {
78
+ key: "getVariantIconClassName",
79
+ value: function getVariantIconClassName() {
80
+ var variant = this.props.variant;
81
+ var variantIconClassName;
82
+ switch (variant.status) {
83
+ case Variant.status.WARNING:
84
+ variantIconClassName = classNames('fa', 'fa-exclamation-triangle', 'fa-3x', "text-".concat(variant.status.toLowerCase()));
85
+ break;
86
+ default:
87
+ break;
88
+ }
89
+ return variantIconClassName;
68
90
  }
69
- return variantIconClassName;
70
- }
71
- getVariantGridBody(body) {
72
- const {
73
- variant
74
- } = this.props;
75
- return /*#__PURE__*/React.createElement("div", {
76
- className: "container-fluid"
77
- }, /*#__PURE__*/React.createElement("div", {
78
- className: "row"
79
- }, /*#__PURE__*/React.createElement("div", {
80
- className: "col-md-10"
81
- }, /*#__PURE__*/React.createElement("div", null, body)), /*#__PURE__*/React.createElement("div", {
82
- className: "col-md-2",
83
- "data-testid": "modal-icon"
84
- }, /*#__PURE__*/React.createElement(Icon, {
85
- id: newId(`Modal-${variant.status}`),
86
- className: this.getVariantIconClassName()
87
- }))));
88
- }
89
- getTabbableBodyElements() {
90
- if (this.modalBodyRef?.current) {
91
- return tabbable(this.modalBodyRef.current);
91
+ }, {
92
+ key: "getVariantGridBody",
93
+ value: function getVariantGridBody(body) {
94
+ var variant = this.props.variant;
95
+ return /*#__PURE__*/React.createElement("div", {
96
+ className: "container-fluid"
97
+ }, /*#__PURE__*/React.createElement("div", {
98
+ className: "row"
99
+ }, /*#__PURE__*/React.createElement("div", {
100
+ className: "col-md-10"
101
+ }, /*#__PURE__*/React.createElement("div", null, body)), /*#__PURE__*/React.createElement("div", {
102
+ className: "col-md-2",
103
+ "data-testid": "modal-icon"
104
+ }, /*#__PURE__*/React.createElement(Icon, {
105
+ id: newId("Modal-".concat(variant.status)),
106
+ className: this.getVariantIconClassName()
107
+ }))));
92
108
  }
93
- return [];
94
- }
95
- isValidVariantStatus() {
96
- const {
97
- variant
98
- } = this.props;
99
- return Object.values(Variant.status).includes(variant.status);
100
- }
101
- close(e) {
102
- if (e) {
103
- e.stopPropagation();
109
+ }, {
110
+ key: "getTabbableBodyElements",
111
+ value: function getTabbableBodyElements() {
112
+ var _this$modalBodyRef;
113
+ if ((_this$modalBodyRef = this.modalBodyRef) !== null && _this$modalBodyRef !== void 0 && _this$modalBodyRef.current) {
114
+ return tabbable(this.modalBodyRef.current);
115
+ }
116
+ return [];
104
117
  }
105
- this.setState({
106
- open: false
107
- });
108
- this.props.onClose();
109
- }
110
- renderButtons() {
111
- return this.props.buttons.map(button => {
112
- // button is either a React component that we want clone or a set of props
113
- if ( /*#__PURE__*/React.isValidElement(button)) {
114
- return /*#__PURE__*/React.cloneElement(button, {
115
- key: button.props.children
116
- });
118
+ }, {
119
+ key: "isValidVariantStatus",
120
+ value: function isValidVariantStatus() {
121
+ var variant = this.props.variant;
122
+ return Object.values(Variant.status).includes(variant.status);
123
+ }
124
+ }, {
125
+ key: "close",
126
+ value: function close(e) {
127
+ if (e) {
128
+ e.stopPropagation();
117
129
  }
118
- const {
119
- label
120
- } = button,
121
- buttonProps = _objectWithoutProperties(button, _excluded);
122
- return /*#__PURE__*/React.createElement(Button.Deprecated, _extends({}, buttonProps, {
123
- key: label
124
- }), label);
125
- });
126
- }
127
- renderBody() {
128
- let {
129
- body
130
- } = this.props;
131
- if (typeof body === 'string') {
132
- body = /*#__PURE__*/React.createElement("p", null, body);
130
+ this.setState({
131
+ open: false
132
+ });
133
+ this.props.onClose();
133
134
  }
134
- if (this.isValidVariantStatus()) {
135
- body = this.getVariantGridBody(body);
135
+ }, {
136
+ key: "renderButtons",
137
+ value: function renderButtons() {
138
+ return this.props.buttons.map(function (button) {
139
+ // button is either a React component that we want clone or a set of props
140
+ if ( /*#__PURE__*/React.isValidElement(button)) {
141
+ return /*#__PURE__*/React.cloneElement(button, {
142
+ key: button.props.children
143
+ });
144
+ }
145
+ var label = button.label,
146
+ buttonProps = _objectWithoutProperties(button, _excluded);
147
+ return /*#__PURE__*/React.createElement(Button.Deprecated, _extends({}, buttonProps, {
148
+ key: label
149
+ }), label);
150
+ });
136
151
  }
137
- return body;
138
- }
139
- renderModal() {
140
- const {
141
- open
142
- } = this.state;
143
- const {
144
- dialogClassName,
145
- renderDefaultCloseButton,
146
- renderHeaderCloseButton,
147
- buttons,
148
- closeText,
149
- title
150
- } = this.props;
151
- const hasTabbableElements = renderDefaultCloseButton || renderHeaderCloseButton || buttons.length > 0 || this.getTabbableBodyElements().length > 0;
152
- const renderModalFooter = renderDefaultCloseButton || buttons.length > 0;
153
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
154
- className: classNames({
155
- 'modal-backdrop': open,
156
- show: open,
157
- fade: !open
158
- }),
159
- role: "presentation",
160
- "data-testid": "modal-backdrop"
161
- }), /*#__PURE__*/React.createElement("div", {
162
- className: classNames('modal', {
163
- show: open,
164
- fade: !open,
165
- 'd-block': open,
166
- 'is-ie11': this.isIE11
167
- }),
168
- role: "presentation",
169
- "data-testid": "modal"
170
- }, /*#__PURE__*/React.createElement("div", {
171
- className: classNames({
172
- 'modal-dialog': open
173
- }, dialogClassName),
174
- role: "dialog",
175
- "aria-modal": true,
176
- "aria-labelledby": this.headerId
177
- }, /*#__PURE__*/React.createElement(FocusOn, {
178
- enabled: open,
179
- onClickOutside: this.close,
180
- onEscapeKey: this.close
181
- }, /*#__PURE__*/React.createElement("div", _extends({
182
- className: "modal-content",
183
- "data-testid": "modal-content"
184
- // if the modal doesn't contain any tabbable elements, make this element programmatically focusable.
185
- }, !hasTabbableElements ? {
186
- tabIndex: -1
187
- } : {}), /*#__PURE__*/React.createElement("div", {
188
- className: "modal-header"
189
- }, /*#__PURE__*/React.createElement("h2", {
190
- className: "modal-title",
191
- id: this.headerId
192
- }, title), renderHeaderCloseButton && /*#__PURE__*/React.createElement(Button.Deprecated, {
193
- className: "p-1",
194
- onClick: this.close,
195
- "data-testid": "modal-header-btn"
196
- }, /*#__PURE__*/React.createElement(Icon, {
197
- src: Close,
198
- screenReaderText: closeText
199
- }))), /*#__PURE__*/React.createElement("div", {
200
- className: "modal-body",
201
- ref: this.modalBodyRef,
202
- "data-testid": "modal-body"
203
- }, this.renderBody()), renderModalFooter && /*#__PURE__*/React.createElement("div", {
204
- className: "modal-footer"
205
- }, renderDefaultCloseButton && /*#__PURE__*/React.createElement(Button, {
206
- variant: "link",
207
- onClick: this.close,
208
- "data-testid": "modal-footer-btn"
209
- }, closeText), this.renderButtons()))))));
210
- }
211
- render() {
212
- if (!this.el) {
213
- return null;
152
+ }, {
153
+ key: "renderBody",
154
+ value: function renderBody() {
155
+ var body = this.props.body;
156
+ if (typeof body === 'string') {
157
+ body = /*#__PURE__*/React.createElement("p", null, body);
158
+ }
159
+ if (this.isValidVariantStatus()) {
160
+ body = this.getVariantGridBody(body);
161
+ }
162
+ return body;
214
163
  }
215
- return /*#__PURE__*/ReactDOM.createPortal(this.renderModal(), this.el);
216
- }
217
- }
164
+ }, {
165
+ key: "renderModal",
166
+ value: function renderModal() {
167
+ var open = this.state.open;
168
+ var _this$props = this.props,
169
+ dialogClassName = _this$props.dialogClassName,
170
+ renderDefaultCloseButton = _this$props.renderDefaultCloseButton,
171
+ renderHeaderCloseButton = _this$props.renderHeaderCloseButton,
172
+ buttons = _this$props.buttons,
173
+ closeText = _this$props.closeText,
174
+ title = _this$props.title;
175
+ var hasTabbableElements = renderDefaultCloseButton || renderHeaderCloseButton || buttons.length > 0 || this.getTabbableBodyElements().length > 0;
176
+ var renderModalFooter = renderDefaultCloseButton || buttons.length > 0;
177
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
178
+ className: classNames({
179
+ 'modal-backdrop': open,
180
+ show: open,
181
+ fade: !open
182
+ }),
183
+ role: "presentation",
184
+ "data-testid": "modal-backdrop"
185
+ }), /*#__PURE__*/React.createElement("div", {
186
+ className: classNames('modal', {
187
+ show: open,
188
+ fade: !open,
189
+ 'd-block': open,
190
+ 'is-ie11': this.isIE11
191
+ }),
192
+ role: "presentation",
193
+ "data-testid": "modal"
194
+ }, /*#__PURE__*/React.createElement("div", {
195
+ className: classNames({
196
+ 'modal-dialog': open
197
+ }, dialogClassName),
198
+ role: "dialog",
199
+ "aria-modal": true,
200
+ "aria-labelledby": this.headerId
201
+ }, /*#__PURE__*/React.createElement(FocusOn, {
202
+ enabled: open,
203
+ onClickOutside: this.close,
204
+ onEscapeKey: this.close
205
+ }, /*#__PURE__*/React.createElement("div", _extends({
206
+ className: "modal-content",
207
+ "data-testid": "modal-content"
208
+ // if the modal doesn't contain any tabbable elements, make this element programmatically focusable.
209
+ }, !hasTabbableElements ? {
210
+ tabIndex: -1
211
+ } : {}), /*#__PURE__*/React.createElement("div", {
212
+ className: "modal-header"
213
+ }, /*#__PURE__*/React.createElement("h2", {
214
+ className: "modal-title",
215
+ id: this.headerId
216
+ }, title), renderHeaderCloseButton && /*#__PURE__*/React.createElement(Button.Deprecated, {
217
+ className: "p-1",
218
+ onClick: this.close,
219
+ "data-testid": "modal-header-btn"
220
+ }, /*#__PURE__*/React.createElement(Icon, {
221
+ src: Close,
222
+ screenReaderText: closeText
223
+ }))), /*#__PURE__*/React.createElement("div", {
224
+ className: "modal-body",
225
+ ref: this.modalBodyRef,
226
+ "data-testid": "modal-body"
227
+ }, this.renderBody()), renderModalFooter && /*#__PURE__*/React.createElement("div", {
228
+ className: "modal-footer"
229
+ }, renderDefaultCloseButton && /*#__PURE__*/React.createElement(Button, {
230
+ variant: "link",
231
+ onClick: this.close,
232
+ "data-testid": "modal-footer-btn"
233
+ }, closeText), this.renderButtons()))))));
234
+ }
235
+ }, {
236
+ key: "render",
237
+ value: function render() {
238
+ if (!this.el) {
239
+ return null;
240
+ }
241
+ return /*#__PURE__*/ReactDOM.createPortal(this.renderModal(), this.el);
242
+ }
243
+ }]);
244
+ return Modal;
245
+ }(React.Component);
218
246
  Modal.propTypes = {
219
247
  /** specifies whether the modal renders open or closed on the initial render. It defaults to false. */
220
248
  open: PropTypes.bool,
@@ -1 +1 @@
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":["import 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.\n * It uses querySelector to find the first element that matches that selector,\n * 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.\n * See the [buttonPropTypes](https://github.com/openedx/paragon/blob/master/src/Button/index.jsx#L40)\n * 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,\n * 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.\n * 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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"}
1
+ {"version":3,"file":"index.js","names":["React","ReactDOM","classNames","PropTypes","FocusOn","tabbable","Close","Button","Icon","newId","Variant","Modal","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","close","bind","_assertThisInitialized","headerId","modalBodyRef","createRef","document","el","createElement","isIE11","global","MSInputMethodContext","documentMode","state","open","_createClass","key","value","componentDidMount","parentSelector","parentElement","querySelector","Error","concat","appendChild","componentDidUpdate","prevProps","prevState","setState","componentWillUnmount","unmountComponentAtNode","getVariantIconClassName","variant","variantIconClassName","status","WARNING","toLowerCase","getVariantGridBody","body","className","id","getTabbableBodyElements","_this$modalBodyRef","current","isValidVariantStatus","Object","values","includes","e","stopPropagation","onClose","renderButtons","buttons","map","button","isValidElement","cloneElement","children","label","buttonProps","_objectWithoutProperties","_excluded","Deprecated","_extends","renderBody","renderModal","_this$props","dialogClassName","renderDefaultCloseButton","renderHeaderCloseButton","closeText","title","hasTabbableElements","length","renderModalFooter","Fragment","show","fade","role","enabled","onClickOutside","onEscapeKey","tabIndex","onClick","src","screenReaderText","ref","render","createPortal","Component","propTypes","bool","string","oneOfType","element","isRequired","arrayOf","shape","func","defaultProps","undefined"],"sources":["../../src/Modal/index.jsx"],"sourcesContent":["import 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.\n * It uses querySelector to find the first element that matches that selector,\n * 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.\n * See the [buttonPropTypes](https://github.com/openedx/paragon/blob/master/src/Button/index.jsx#L40)\n * 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,\n * 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.\n * 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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"}
package/dist/Nav/index.js CHANGED
@@ -1,8 +1,9 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
1
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; }
2
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; }
3
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; }
4
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
- 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); }
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); }
6
7
  import React from 'react';
7
8
  import BaseNav from 'react-bootstrap/Nav';
8
9
  import BaseNavDropdown from 'react-bootstrap/NavDropdown';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","BaseNav","BaseNavDropdown","BaseNavItem","BaseNavLink","PropTypes","Nav","props","createElement","NavItem","NavLink","NavDropdown","NavDropdownItem","Item","NavDropdownDivider","Divider","propTypes","cardHeaderBsPrefix","string","defaultActiveKey","oneOfType","number","activeKey","as","elementType","fill","bool","justify","navbar","onKeyDown","func","onSelect","role","variant","oneOf","bsPrefix","active","disabled","eventKey","href","id","isRequired","title","node","menuRole","menuVariant","onClick","renderMenuOnMount","rootCloseEvent","defaultProps","_objectSpread","Link"],"sources":["../../src/Nav/index.jsx"],"sourcesContent":["import React from 'react';\nimport BaseNav from 'react-bootstrap/Nav';\nimport BaseNavDropdown from 'react-bootstrap/NavDropdown';\nimport BaseNavItem from 'react-bootstrap/NavItem';\nimport BaseNavLink from 'react-bootstrap/NavLink';\nimport PropTypes from 'prop-types';\n\nfunction Nav(props) {\n return <BaseNav {...props} />;\n}\nfunction NavItem(props) {\n return <BaseNavItem {...props} />;\n}\nfunction NavLink(props) {\n return <BaseNavLink {...props} />;\n}\nfunction NavDropdown(props) {\n return <BaseNavDropdown {...props} />;\n}\nfunction NavDropdownItem(props) {\n return <BaseNavDropdown.Item {...props} />;\n}\nfunction NavDropdownDivider(props) {\n return <BaseNavDropdown.Divider {...props} />;\n}\n\nNav.propTypes = {\n /** Change the underlying component CSS base class name and modifier class names prefix. */\n cardHeaderBsPrefix: PropTypes.string,\n /** Specifies default active nav (uncontrolled usage). */\n defaultActiveKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** Marks the NavItem with a matching eventKey (or href if present) as active. */\n activeKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** Set a custom element for this component. */\n as: PropTypes.elementType,\n /** Have all `NavItems` proportionately fill all available width. */\n fill: PropTypes.bool,\n /** Have all `NavItems` evenly fill all available width. */\n justify: PropTypes.bool,\n /**\n * Apply styling an alignment for use in a `Navbar`.\n * This prop will be set automatically when the `Nav` is used inside a `Navbar`.\n */\n navbar: PropTypes.bool,\n /** Callback fired when a key is pressed. */\n onKeyDown: PropTypes.func,\n /** A callback fired when a NavItem is selected. */\n onSelect: PropTypes.func,\n /**\n * ARIA role for the `Nav`, in the context of a `TabContainer`,\n * the default will be set to \"tablist\", but can be overridden by the `Nav` when set explicitly.\n */\n role: PropTypes.string,\n /** The visual variant of the nav items. */\n variant: PropTypes.oneOf(['tabs', 'pills']),\n /** Change the underlying component CSS base class name and modifier class names prefix. */\n bsPrefix: PropTypes.string,\n};\n\nNavItem.propTypes = {\n /** The ARIA role for the `NavItem` */\n role: PropTypes.string,\n /** Set a custom element for this component. */\n as: PropTypes.elementType,\n /** Change the underlying component CSS base class name and modifier class names prefix. */\n bsPrefix: PropTypes.string,\n};\n\nNavLink.propTypes = {\n /** Callback fired when the active item changes. */\n onSelect: PropTypes.string,\n /** The active state of the `NavItem` item. */\n active: PropTypes.bool,\n /** You can use a custom element type for this component. */\n as: PropTypes.elementType,\n /** The disabled state of the `NavItem` item. */\n disabled: PropTypes.bool,\n /**\n * Uniquely identifies the `NavItem` amongst its siblings,\n * used to determine and control the active state of the parent `Nav`\n */\n eventKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** The HTML href attribute for the `NavLink` */\n href: PropTypes.string,\n /** The ARIA role for the `NavLink`, In the context of a 'tablist' parent `Nav`, the role defaults to 'tab' */\n role: PropTypes.string,\n /** Change the underlying component CSS base class name and modifier class names prefix. */\n bsPrefix: PropTypes.string,\n};\n\nNavDropdown.propTypes = {\n /** An html id attribute for the `Toggle` button, necessary for assistive technologies, such as screen readers. */\n id: PropTypes.string.isRequired,\n /** The content of the non-toggle Button. */\n title: PropTypes.node.isRequired,\n /** Style the toggle `NavLink` as active */\n active: PropTypes.bool,\n /** Disables the toggle `NavLink` */\n disabled: PropTypes.bool,\n /** An ARIA accessible role applied to the `Menu` component. */\n menuRole: PropTypes.string,\n /** Menu color variant. Omitting this will use the default light color. */\n menuVariant: PropTypes.oneOf(['dark']),\n /** An `onClick` handler passed to the `Toggle` component */\n onClick: PropTypes.func,\n /** Whether to render the dropdown menu in the DOM before the first time it is shown. */\n renderMenuOnMount: PropTypes.bool,\n /** Which event when fired outside the component will cause it to be closed. */\n rootCloseEvent: PropTypes.string,\n /** Change the underlying component CSS base class name and modifier class names prefix. */\n bsPrefix: PropTypes.string,\n};\n\nNav.defaultProps = {\n ...BaseNav.defaultProps,\n};\n\nNavDropdown.defaultProps = {\n ...BaseNavDropdown.defaultProps,\n};\n\nNavItem.defaultProps = {\n ...BaseNavItem.defaultProps,\n};\n\nNavLink.defaultProps = {\n ...BaseNavLink.defaultProps,\n};\n\nNav.Item = NavItem;\nNav.Link = NavLink;\nNavDropdown.Item = NavDropdownItem;\nNavDropdown.Divider = NavDropdownDivider;\n\nexport { NavDropdown, NavItem, NavLink };\nexport default Nav;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","BaseNav","BaseNavDropdown","BaseNavItem","BaseNavLink","PropTypes","Nav","props","createElement","NavItem","NavLink","NavDropdown","NavDropdownItem","Item","NavDropdownDivider","Divider","propTypes","cardHeaderBsPrefix","string","defaultActiveKey","oneOfType","number","activeKey","as","elementType","fill","bool","justify","navbar","onKeyDown","func","onSelect","role","variant","oneOf","bsPrefix","active","disabled","eventKey","href","id","isRequired","title","node","menuRole","menuVariant","onClick","renderMenuOnMount","rootCloseEvent","defaultProps","_objectSpread","Link"],"sources":["../../src/Nav/index.jsx"],"sourcesContent":["import React from 'react';\nimport BaseNav from 'react-bootstrap/Nav';\nimport BaseNavDropdown from 'react-bootstrap/NavDropdown';\nimport BaseNavItem from 'react-bootstrap/NavItem';\nimport BaseNavLink from 'react-bootstrap/NavLink';\nimport PropTypes from 'prop-types';\n\nfunction Nav(props) {\n return <BaseNav {...props} />;\n}\nfunction NavItem(props) {\n return <BaseNavItem {...props} />;\n}\nfunction NavLink(props) {\n return <BaseNavLink {...props} />;\n}\nfunction NavDropdown(props) {\n return <BaseNavDropdown {...props} />;\n}\nfunction NavDropdownItem(props) {\n return <BaseNavDropdown.Item {...props} />;\n}\nfunction NavDropdownDivider(props) {\n return <BaseNavDropdown.Divider {...props} />;\n}\n\nNav.propTypes = {\n /** Change the underlying component CSS base class name and modifier class names prefix. */\n cardHeaderBsPrefix: PropTypes.string,\n /** Specifies default active nav (uncontrolled usage). */\n defaultActiveKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** Marks the NavItem with a matching eventKey (or href if present) as active. */\n activeKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** Set a custom element for this component. */\n as: PropTypes.elementType,\n /** Have all `NavItems` proportionately fill all available width. */\n fill: PropTypes.bool,\n /** Have all `NavItems` evenly fill all available width. */\n justify: PropTypes.bool,\n /**\n * Apply styling an alignment for use in a `Navbar`.\n * This prop will be set automatically when the `Nav` is used inside a `Navbar`.\n */\n navbar: PropTypes.bool,\n /** Callback fired when a key is pressed. */\n onKeyDown: PropTypes.func,\n /** A callback fired when a NavItem is selected. */\n onSelect: PropTypes.func,\n /**\n * ARIA role for the `Nav`, in the context of a `TabContainer`,\n * the default will be set to \"tablist\", but can be overridden by the `Nav` when set explicitly.\n */\n role: PropTypes.string,\n /** The visual variant of the nav items. */\n variant: PropTypes.oneOf(['tabs', 'pills']),\n /** Change the underlying component CSS base class name and modifier class names prefix. */\n bsPrefix: PropTypes.string,\n};\n\nNavItem.propTypes = {\n /** The ARIA role for the `NavItem` */\n role: PropTypes.string,\n /** Set a custom element for this component. */\n as: PropTypes.elementType,\n /** Change the underlying component CSS base class name and modifier class names prefix. */\n bsPrefix: PropTypes.string,\n};\n\nNavLink.propTypes = {\n /** Callback fired when the active item changes. */\n onSelect: PropTypes.string,\n /** The active state of the `NavItem` item. */\n active: PropTypes.bool,\n /** You can use a custom element type for this component. */\n as: PropTypes.elementType,\n /** The disabled state of the `NavItem` item. */\n disabled: PropTypes.bool,\n /**\n * Uniquely identifies the `NavItem` amongst its siblings,\n * used to determine and control the active state of the parent `Nav`\n */\n eventKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** The HTML href attribute for the `NavLink` */\n href: PropTypes.string,\n /** The ARIA role for the `NavLink`, In the context of a 'tablist' parent `Nav`, the role defaults to 'tab' */\n role: PropTypes.string,\n /** Change the underlying component CSS base class name and modifier class names prefix. */\n bsPrefix: PropTypes.string,\n};\n\nNavDropdown.propTypes = {\n /** An html id attribute for the `Toggle` button, necessary for assistive technologies, such as screen readers. */\n id: PropTypes.string.isRequired,\n /** The content of the non-toggle Button. */\n title: PropTypes.node.isRequired,\n /** Style the toggle `NavLink` as active */\n active: PropTypes.bool,\n /** Disables the toggle `NavLink` */\n disabled: PropTypes.bool,\n /** An ARIA accessible role applied to the `Menu` component. */\n menuRole: PropTypes.string,\n /** Menu color variant. Omitting this will use the default light color. */\n menuVariant: PropTypes.oneOf(['dark']),\n /** An `onClick` handler passed to the `Toggle` component */\n onClick: PropTypes.func,\n /** Whether to render the dropdown menu in the DOM before the first time it is shown. */\n renderMenuOnMount: PropTypes.bool,\n /** Which event when fired outside the component will cause it to be closed. */\n rootCloseEvent: PropTypes.string,\n /** Change the underlying component CSS base class name and modifier class names prefix. */\n bsPrefix: PropTypes.string,\n};\n\nNav.defaultProps = {\n ...BaseNav.defaultProps,\n};\n\nNavDropdown.defaultProps = {\n ...BaseNavDropdown.defaultProps,\n};\n\nNavItem.defaultProps = {\n ...BaseNavItem.defaultProps,\n};\n\nNavLink.defaultProps = {\n ...BaseNavLink.defaultProps,\n};\n\nNav.Item = NavItem;\nNav.Link = NavLink;\nNavDropdown.Item = NavDropdownItem;\nNavDropdown.Divider = NavDropdownDivider;\n\nexport { NavDropdown, NavItem, NavLink };\nexport default Nav;\n"],"mappings":"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"}