@openedx/paragon 21.12.0 → 21.12.2

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 (467) 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 +14 -11
  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/filters/CheckboxFilter.js +23 -22
  134. package/dist/DataTable/filters/CheckboxFilter.js.map +1 -1
  135. package/dist/DataTable/filters/DropdownFilter.js +14 -19
  136. package/dist/DataTable/filters/DropdownFilter.js.map +1 -1
  137. package/dist/DataTable/filters/MultiSelectDropdownFilter.js +19 -20
  138. package/dist/DataTable/filters/MultiSelectDropdownFilter.js.map +1 -1
  139. package/dist/DataTable/filters/TextFilter.js +10 -13
  140. package/dist/DataTable/filters/TextFilter.js.map +1 -1
  141. package/dist/DataTable/hooks.js +29 -25
  142. package/dist/DataTable/hooks.js.map +1 -1
  143. package/dist/DataTable/index.js +120 -104
  144. package/dist/DataTable/index.js.map +1 -1
  145. package/dist/DataTable/selection/BaseSelectionStatus.js +29 -31
  146. package/dist/DataTable/selection/BaseSelectionStatus.js.map +1 -1
  147. package/dist/DataTable/selection/ControlledSelect.js +13 -9
  148. package/dist/DataTable/selection/ControlledSelect.js.map +1 -1
  149. package/dist/DataTable/selection/ControlledSelectHeader.js +19 -15
  150. package/dist/DataTable/selection/ControlledSelectHeader.js.map +1 -1
  151. package/dist/DataTable/selection/ControlledSelectionStatus.js +34 -24
  152. package/dist/DataTable/selection/ControlledSelectionStatus.js.map +1 -1
  153. package/dist/DataTable/selection/SelectionStatus.js +23 -23
  154. package/dist/DataTable/selection/SelectionStatus.js.map +1 -1
  155. package/dist/DataTable/utils/getVisibleColumns.js +36 -44
  156. package/dist/DataTable/utils/getVisibleColumns.js.map +1 -1
  157. package/dist/Dropdown/deprecated/DropdownButton.js +9 -13
  158. package/dist/Dropdown/deprecated/DropdownButton.js.map +1 -1
  159. package/dist/Dropdown/deprecated/DropdownItem.js +7 -8
  160. package/dist/Dropdown/deprecated/DropdownItem.js.map +1 -1
  161. package/dist/Dropdown/deprecated/DropdownMenu.js +8 -12
  162. package/dist/Dropdown/deprecated/DropdownMenu.js.map +1 -1
  163. package/dist/Dropdown/deprecated/index.js +136 -103
  164. package/dist/Dropdown/deprecated/index.js.map +1 -1
  165. package/dist/Dropdown/index.js +32 -29
  166. package/dist/Dropdown/index.js.map +1 -1
  167. package/dist/Dropzone/DefaultContent.js +13 -13
  168. package/dist/Dropzone/DefaultContent.js.map +1 -1
  169. package/dist/Dropzone/DragError.js +1 -3
  170. package/dist/Dropzone/DragError.js.map +1 -1
  171. package/dist/Dropzone/GenericError.js +7 -7
  172. package/dist/Dropzone/GenericError.js.map +1 -1
  173. package/dist/Dropzone/UploadProgress.js +6 -8
  174. package/dist/Dropzone/UploadProgress.js.map +1 -1
  175. package/dist/Dropzone/index.js +145 -86
  176. package/dist/Dropzone/index.js.map +1 -1
  177. package/dist/Fieldset/index.js +82 -57
  178. package/dist/Fieldset/index.js.map +1 -1
  179. package/dist/Form/FormAutosuggest.js +137 -95
  180. package/dist/Form/FormAutosuggest.js.map +1 -1
  181. package/dist/Form/FormAutosuggestOption.js +4 -6
  182. package/dist/Form/FormAutosuggestOption.js.map +1 -1
  183. package/dist/Form/FormCheckbox.js +35 -42
  184. package/dist/Form/FormCheckbox.js.map +1 -1
  185. package/dist/Form/FormCheckboxSet.js +13 -16
  186. package/dist/Form/FormCheckboxSet.js.map +1 -1
  187. package/dist/Form/FormCheckboxSetContext.js +39 -34
  188. package/dist/Form/FormCheckboxSetContext.js.map +1 -1
  189. package/dist/Form/FormControl.js +41 -35
  190. package/dist/Form/FormControl.js.map +1 -1
  191. package/dist/Form/FormControlDecorator.js +3 -5
  192. package/dist/Form/FormControlDecorator.js.map +1 -1
  193. package/dist/Form/FormControlDecoratorGroup.js +8 -10
  194. package/dist/Form/FormControlDecoratorGroup.js.map +1 -1
  195. package/dist/Form/FormControlFeedback.js +12 -15
  196. package/dist/Form/FormControlFeedback.js.map +1 -1
  197. package/dist/Form/FormControlFloatingLabel.js +3 -6
  198. package/dist/Form/FormControlFloatingLabel.js.map +1 -1
  199. package/dist/Form/FormControlSet.js +8 -9
  200. package/dist/Form/FormControlSet.js.map +1 -1
  201. package/dist/Form/FormGroup.js +11 -12
  202. package/dist/Form/FormGroup.js.map +1 -1
  203. package/dist/Form/FormGroupContext.js +64 -39
  204. package/dist/Form/FormGroupContext.js.map +1 -1
  205. package/dist/Form/FormLabel.js +15 -17
  206. package/dist/Form/FormLabel.js.map +1 -1
  207. package/dist/Form/FormRadio.js +19 -22
  208. package/dist/Form/FormRadio.js.map +1 -1
  209. package/dist/Form/FormRadioSet.js +13 -16
  210. package/dist/Form/FormRadioSet.js.map +1 -1
  211. package/dist/Form/FormRadioSetContext.js +39 -34
  212. package/dist/Form/FormRadioSetContext.js.map +1 -1
  213. package/dist/Form/FormSwitch.js +19 -20
  214. package/dist/Form/FormSwitch.js.map +1 -1
  215. package/dist/Form/FormText.js +20 -29
  216. package/dist/Form/FormText.js.map +1 -1
  217. package/dist/Form/useCheckboxSetValues.js +46 -23
  218. package/dist/Form/useCheckboxSetValues.js.map +1 -1
  219. package/dist/Hyperlink/index.js +32 -31
  220. package/dist/Hyperlink/index.js.map +1 -1
  221. package/dist/Hyperlink/index.scss +2 -2
  222. package/dist/Icon/index.js +38 -30
  223. package/dist/Icon/index.js.map +1 -1
  224. package/dist/IconButton/index.js +31 -33
  225. package/dist/IconButton/index.js.map +1 -1
  226. package/dist/IconButtonToggle/index.js +16 -16
  227. package/dist/IconButtonToggle/index.js.map +1 -1
  228. package/dist/Input/index.js +122 -92
  229. package/dist/Input/index.js.map +1 -1
  230. package/dist/InputSelect/index.js +78 -51
  231. package/dist/InputSelect/index.js.map +1 -1
  232. package/dist/InputText/index.js +11 -9
  233. package/dist/InputText/index.js.map +1 -1
  234. package/dist/Layout/index.js +33 -29
  235. package/dist/Layout/index.js.map +1 -1
  236. package/dist/ListBox/index.js +112 -80
  237. package/dist/ListBox/index.js.map +1 -1
  238. package/dist/ListBoxOption/index.js +68 -45
  239. package/dist/ListBoxOption/index.js.map +1 -1
  240. package/dist/MailtoLink/index.js +37 -34
  241. package/dist/MailtoLink/index.js.map +1 -1
  242. package/dist/Menu/MenuItem.js +13 -14
  243. package/dist/Menu/MenuItem.js.map +1 -1
  244. package/dist/Menu/SelectMenu.js +68 -44
  245. package/dist/Menu/SelectMenu.js.map +1 -1
  246. package/dist/Menu/index.js +10 -11
  247. package/dist/Menu/index.js.map +1 -1
  248. package/dist/Modal/AlertModal.js +5 -7
  249. package/dist/Modal/AlertModal.js.map +1 -1
  250. package/dist/Modal/FullscreenModal.js +6 -8
  251. package/dist/Modal/FullscreenModal.js.map +1 -1
  252. package/dist/Modal/MarketingModal.js +8 -10
  253. package/dist/Modal/MarketingModal.js.map +1 -1
  254. package/dist/Modal/ModalCloseButton.js +13 -15
  255. package/dist/Modal/ModalCloseButton.js.map +1 -1
  256. package/dist/Modal/ModalContext.js +13 -13
  257. package/dist/Modal/ModalContext.js.map +1 -1
  258. package/dist/Modal/ModalDialog.js +25 -23
  259. package/dist/Modal/ModalDialog.js.map +1 -1
  260. package/dist/Modal/ModalDialogBody.js +22 -11
  261. package/dist/Modal/ModalDialogBody.js.map +1 -1
  262. package/dist/Modal/ModalDialogFooter.js +6 -7
  263. package/dist/Modal/ModalDialogFooter.js.map +1 -1
  264. package/dist/Modal/ModalDialogHeader.js +6 -7
  265. package/dist/Modal/ModalDialogHeader.js.map +1 -1
  266. package/dist/Modal/ModalDialogHero.js +6 -7
  267. package/dist/Modal/ModalDialogHero.js.map +1 -1
  268. package/dist/Modal/ModalDialogHeroBackground.js +8 -9
  269. package/dist/Modal/ModalDialogHeroBackground.js.map +1 -1
  270. package/dist/Modal/ModalDialogHeroContent.js +6 -7
  271. package/dist/Modal/ModalDialogHeroContent.js.map +1 -1
  272. package/dist/Modal/ModalDialogTitle.js +6 -7
  273. package/dist/Modal/ModalDialogTitle.js.map +1 -1
  274. package/dist/Modal/ModalLayer.js +11 -17
  275. package/dist/Modal/ModalLayer.js.map +1 -1
  276. package/dist/Modal/ModalPopup.js +17 -17
  277. package/dist/Modal/ModalPopup.js.map +1 -1
  278. package/dist/Modal/PopperElement.js +25 -18
  279. package/dist/Modal/PopperElement.js.map +1 -1
  280. package/dist/Modal/Portal.js +40 -18
  281. package/dist/Modal/Portal.js.map +1 -1
  282. package/dist/Modal/StandardModal.js +6 -8
  283. package/dist/Modal/StandardModal.js.map +1 -1
  284. package/dist/Modal/index.js +226 -193
  285. package/dist/Modal/index.js.map +1 -1
  286. package/dist/Nav/index.js +3 -2
  287. package/dist/Nav/index.js.map +1 -1
  288. package/dist/Navbar/index.js +7 -6
  289. package/dist/Navbar/index.js.map +1 -1
  290. package/dist/OverflowScroll/OverflowScroll.js +45 -37
  291. package/dist/OverflowScroll/OverflowScroll.js.map +1 -1
  292. package/dist/OverflowScroll/OverflowScrollContext.js +1 -1
  293. package/dist/OverflowScroll/OverflowScrollContext.js.map +1 -1
  294. package/dist/OverflowScroll/OverflowScrollItems.js +2 -4
  295. package/dist/OverflowScroll/OverflowScrollItems.js.map +1 -1
  296. package/dist/Overlay/index.js +4 -4
  297. package/dist/Overlay/index.js.map +1 -1
  298. package/dist/PageBanner/index.js +11 -13
  299. package/dist/PageBanner/index.js.map +1 -1
  300. package/dist/Pagination/index.js +331 -296
  301. package/dist/Pagination/index.js.map +1 -1
  302. package/dist/Popover/index.js +18 -21
  303. package/dist/Popover/index.js.map +1 -1
  304. package/dist/ProductTour/Checkpoint.js +39 -30
  305. package/dist/ProductTour/Checkpoint.js.map +1 -1
  306. package/dist/ProductTour/CheckpointActionRow.js +18 -16
  307. package/dist/ProductTour/CheckpointActionRow.js.map +1 -1
  308. package/dist/ProductTour/CheckpointBody.js +2 -4
  309. package/dist/ProductTour/CheckpointBody.js.map +1 -1
  310. package/dist/ProductTour/CheckpointBreadcrumbs.js +16 -16
  311. package/dist/ProductTour/CheckpointBreadcrumbs.js.map +1 -1
  312. package/dist/ProductTour/CheckpointTitle.js +2 -4
  313. package/dist/ProductTour/CheckpointTitle.js.map +1 -1
  314. package/dist/ProductTour/index.js +66 -47
  315. package/dist/ProductTour/index.js.map +1 -1
  316. package/dist/ProductTour/messages.js +16 -0
  317. package/dist/ProgressBar/index.js +37 -35
  318. package/dist/ProgressBar/index.js.map +1 -1
  319. package/dist/RadioButtonGroup/index.js +133 -102
  320. package/dist/RadioButtonGroup/index.js.map +1 -1
  321. package/dist/Scrollable/index.js +30 -15
  322. package/dist/Scrollable/index.js.map +1 -1
  323. package/dist/SearchField/SearchFieldAdvanced.js +66 -51
  324. package/dist/SearchField/SearchFieldAdvanced.js.map +1 -1
  325. package/dist/SearchField/SearchFieldClearButton.js +7 -8
  326. package/dist/SearchField/SearchFieldClearButton.js.map +1 -1
  327. package/dist/SearchField/SearchFieldInput.js +8 -9
  328. package/dist/SearchField/SearchFieldInput.js.map +1 -1
  329. package/dist/SearchField/SearchFieldLabel.js +8 -11
  330. package/dist/SearchField/SearchFieldLabel.js.map +1 -1
  331. package/dist/SearchField/SearchFieldSubmitButton.js +12 -15
  332. package/dist/SearchField/SearchFieldSubmitButton.js.map +1 -1
  333. package/dist/SearchField/index.js +22 -23
  334. package/dist/SearchField/index.js.map +1 -1
  335. package/dist/SelectableBox/SelectableBoxSet.js +25 -26
  336. package/dist/SelectableBox/SelectableBoxSet.js.map +1 -1
  337. package/dist/SelectableBox/index.js +42 -38
  338. package/dist/SelectableBox/index.js.map +1 -1
  339. package/dist/Sheet/SheetContainer.js +38 -16
  340. package/dist/Sheet/SheetContainer.js.map +1 -1
  341. package/dist/Sheet/index.js +65 -43
  342. package/dist/Sheet/index.js.map +1 -1
  343. package/dist/Spinner/index.js +8 -9
  344. package/dist/Spinner/index.js.map +1 -1
  345. package/dist/Stack/index.js +9 -11
  346. package/dist/Stack/index.js.map +1 -1
  347. package/dist/StatefulButton/index.js +15 -17
  348. package/dist/StatefulButton/index.js.map +1 -1
  349. package/dist/StatusAlert/index.js +120 -82
  350. package/dist/StatusAlert/index.js.map +1 -1
  351. package/dist/Stepper/Stepper.js +2 -4
  352. package/dist/Stepper/Stepper.js.map +1 -1
  353. package/dist/Stepper/StepperActionRow.js +7 -10
  354. package/dist/Stepper/StepperActionRow.js.map +1 -1
  355. package/dist/Stepper/StepperContext.js +64 -32
  356. package/dist/Stepper/StepperContext.js.map +1 -1
  357. package/dist/Stepper/StepperHeader.js +23 -30
  358. package/dist/Stepper/StepperHeader.js.map +1 -1
  359. package/dist/Stepper/StepperHeaderStep.js +14 -17
  360. package/dist/Stepper/StepperHeaderStep.js.map +1 -1
  361. package/dist/Stepper/StepperStep.js +23 -24
  362. package/dist/Stepper/StepperStep.js.map +1 -1
  363. package/dist/Sticky/index.js +30 -22
  364. package/dist/Sticky/index.js.map +1 -1
  365. package/dist/Table/index.js +178 -109
  366. package/dist/Table/index.js.map +1 -1
  367. package/dist/Tabs/deprecated/index.js +99 -66
  368. package/dist/Tabs/deprecated/index.js.map +1 -1
  369. package/dist/Tabs/index.js +72 -56
  370. package/dist/Tabs/index.js.map +1 -1
  371. package/dist/TextArea/index.js +10 -8
  372. package/dist/TextArea/index.js.map +1 -1
  373. package/dist/Toast/ToastContainer.js +38 -16
  374. package/dist/Toast/ToastContainer.js.map +1 -1
  375. package/dist/Toast/index.js +33 -18
  376. package/dist/Toast/index.js.map +1 -1
  377. package/dist/Tooltip/index.js +8 -9
  378. package/dist/Tooltip/index.js.map +1 -1
  379. package/dist/TransitionReplace/DemoTransitionReplace.js +12 -3
  380. package/dist/TransitionReplace/DemoTransitionReplace.js.map +1 -1
  381. package/dist/TransitionReplace/index.js +136 -100
  382. package/dist/TransitionReplace/index.js.map +1 -1
  383. package/dist/Truncate/index.js +30 -24
  384. package/dist/Truncate/index.js.map +1 -1
  385. package/dist/ValidationFormGroup/index.js +38 -37
  386. package/dist/ValidationFormGroup/index.js.map +1 -1
  387. package/dist/ValidationMessage/index.js +76 -51
  388. package/dist/ValidationMessage/index.js.map +1 -1
  389. package/dist/asInput/index.js +251 -202
  390. package/dist/asInput/index.js.map +1 -1
  391. package/dist/hooks/useArrowKeyNavigation.js +46 -43
  392. package/dist/hooks/useArrowKeyNavigation.js.map +1 -1
  393. package/dist/hooks/useIndexOfLastVisibleChild.js +50 -41
  394. package/dist/hooks/useIndexOfLastVisibleChild.js.map +1 -1
  395. package/dist/hooks/useIsVisible.js +20 -13
  396. package/dist/hooks/useIsVisible.js.map +1 -1
  397. package/dist/hooks/useToggle.js +18 -11
  398. package/dist/hooks/useToggle.js.map +1 -1
  399. package/dist/hooks/useWindowSize.js +17 -6
  400. package/dist/hooks/useWindowSize.js.map +1 -1
  401. package/dist/i18n/messages/ar.json +2 -1
  402. package/dist/i18n/messages/ca.json +2 -1
  403. package/dist/i18n/messages/es_419.json +2 -1
  404. package/dist/i18n/messages/es_AR.json +2 -1
  405. package/dist/i18n/messages/es_ES.json +2 -1
  406. package/dist/i18n/messages/fr.json +2 -1
  407. package/dist/i18n/messages/he.json +2 -1
  408. package/dist/i18n/messages/id.json +2 -1
  409. package/dist/i18n/messages/it_IT.json +2 -1
  410. package/dist/i18n/messages/ko_KR.json +2 -1
  411. package/dist/i18n/messages/pl.json +2 -1
  412. package/dist/i18n/messages/pt_BR.json +2 -1
  413. package/dist/i18n/messages/pt_PT.json +2 -1
  414. package/dist/i18n/messages/ru.json +2 -1
  415. package/dist/i18n/messages/th.json +2 -1
  416. package/dist/i18n/messages/tr_TR.json +2 -1
  417. package/dist/i18n/messages/uk.json +2 -1
  418. package/dist/i18n/messages/zh_CN.json +2 -1
  419. package/dist/paragon.css +1 -1
  420. package/dist/withDeprecatedProps.js +79 -58
  421. package/dist/withDeprecatedProps.js.map +1 -1
  422. package/package.json +1 -5
  423. package/src/Button/index.jsx +2 -2
  424. package/src/Container/index.jsx +4 -0
  425. package/src/Dropdown/index.jsx +4 -0
  426. package/src/Dropzone/index.jsx +1 -1
  427. package/src/Form/FormSwitch.jsx +3 -0
  428. package/src/Hyperlink/index.jsx +7 -6
  429. package/src/Hyperlink/index.scss +2 -2
  430. package/src/Icon/index.jsx +18 -11
  431. package/src/IconButton/__snapshots__/IconButton.test.jsx.snap +12 -10
  432. package/src/IconButton/index.jsx +2 -2
  433. package/src/Layout/index.jsx +1 -4
  434. package/src/Menu/MenuItem.jsx +2 -2
  435. package/src/Modal/ModalDialog.jsx +3 -0
  436. package/src/Modal/index.jsx +11 -6
  437. package/src/Overlay/README.md +1 -1
  438. package/src/Overlay/index.jsx +1 -1
  439. package/src/Popover/README.md +0 -1
  440. package/src/Popover/index.jsx +11 -11
  441. package/src/ProductTour/Checkpoint.jsx +9 -6
  442. package/src/ProductTour/messages.js +16 -0
  443. package/src/SearchField/SearchFieldAdvanced.jsx +12 -7
  444. package/src/SearchField/SearchFieldLabel.jsx +3 -3
  445. package/src/SearchField/index.jsx +0 -1
  446. package/src/Tabs/index.jsx +19 -13
  447. package/src/hooks/tests/useIndexOfLastVisibleChild.test.jsx +3 -3
  448. package/src/hooks/useIndexOfLastVisibleChild.jsx +36 -38
  449. package/src/hooks/useIndexOfLastVisibleChild.mdx +3 -3
  450. package/src/i18n/messages/ar.json +2 -1
  451. package/src/i18n/messages/ca.json +2 -1
  452. package/src/i18n/messages/es_419.json +2 -1
  453. package/src/i18n/messages/es_AR.json +2 -1
  454. package/src/i18n/messages/es_ES.json +2 -1
  455. package/src/i18n/messages/fr.json +2 -1
  456. package/src/i18n/messages/he.json +2 -1
  457. package/src/i18n/messages/id.json +2 -1
  458. package/src/i18n/messages/it_IT.json +2 -1
  459. package/src/i18n/messages/ko_KR.json +2 -1
  460. package/src/i18n/messages/pl.json +2 -1
  461. package/src/i18n/messages/pt_BR.json +2 -1
  462. package/src/i18n/messages/pt_PT.json +2 -1
  463. package/src/i18n/messages/ru.json +2 -1
  464. package/src/i18n/messages/th.json +2 -1
  465. package/src/i18n/messages/tr_TR.json +2 -1
  466. package/src/i18n/messages/uk.json +2 -1
  467. package/src/i18n/messages/zh_CN.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classNames","isRequiredIf","Launch","Icon","withDeprecatedProps","DeprTypes","HYPER_LINK_EXTERNAL_LINK_ALT_TEXT","HYPER_LINK_EXTERNAL_LINK_TITLE","Hyperlink","forwardRef","props","ref","className","destination","children","target","onClick","externalLinkAlternativeText","externalLinkTitle","variant","isInline","showLaunchIcon","attrs","_objectWithoutProperties","_excluded","externalLinkIcon","generateRel","rel","includes","createElement","title","src","screenReaderText","style","height","width","_extends","href","defaultProps","undefined","propTypes","string","isRequired","node","func","oneOf","bool","content","deprType","MOVED","newName"],"sources":["../../src/Hyperlink/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport isRequiredIf from 'react-proptype-conditional-require';\nimport { Launch } from '../../icons';\nimport Icon from '../Icon';\n\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\nexport const HYPER_LINK_EXTERNAL_LINK_ALT_TEXT = 'in a new tab';\nexport const HYPER_LINK_EXTERNAL_LINK_TITLE = 'Opens in a new tab';\n\nconst Hyperlink = React.forwardRef((props, ref) => {\n const {\n className,\n destination,\n children,\n target,\n onClick,\n externalLinkAlternativeText,\n externalLinkTitle,\n variant,\n isInline,\n showLaunchIcon,\n ...attrs\n } = props;\n let externalLinkIcon;\n\n if (target === '_blank') {\n const generateRel = () => {\n let { rel } = attrs;\n if (!rel) {\n return 'noopener noreferrer';\n }\n if (!rel.includes('noopener')) {\n rel += ' noopener';\n }\n if (!rel.includes('noreferrer')) {\n rel += ' noreferrer';\n }\n return rel;\n };\n\n // Add this rel attribute to prevent Reverse Tabnabbing\n attrs.rel = generateRel();\n if (showLaunchIcon) {\n externalLinkIcon = (\n <span\n className=\"pgn__hyperlink__external-icon\"\n title={externalLinkTitle}\n >\n <Icon\n src={Launch}\n screenReaderText={externalLinkAlternativeText}\n style={{ height: '1em', width: '1em' }}\n data-testid=\"hyperlink-icon\"\n />\n </span>\n );\n }\n }\n\n return (\n <a\n ref={ref}\n className={classNames(\n 'pgn__hyperlink',\n `${variant}-link`,\n {\n 'standalone-link': !isInline,\n 'inline-link': isInline,\n },\n className,\n )}\n href={destination}\n target={target}\n onClick={onClick}\n {...attrs}\n >\n {children}\n {externalLinkIcon}\n </a>\n );\n});\n\nHyperlink.defaultProps = {\n className: undefined,\n target: '_self',\n onClick: () => {},\n externalLinkAlternativeText: HYPER_LINK_EXTERNAL_LINK_ALT_TEXT,\n externalLinkTitle: HYPER_LINK_EXTERNAL_LINK_TITLE,\n variant: 'default',\n isInline: false,\n showLaunchIcon: true,\n};\n\nHyperlink.propTypes = {\n /** specifies the URL */\n destination: PropTypes.string.isRequired,\n /** Content of the hyperlink */\n children: PropTypes.node.isRequired,\n /** Custom class names for the hyperlink */\n className: PropTypes.string,\n /** specifies where the link should open. The default behavior is `_self`, which means that the URL will be loaded into the same browsing context as the current one. If the target is `_blank` (opening a new window) `rel='noopener'` will be added to the anchor tag to prevent any potential [reverse tabnabbing attack](https://www.owasp.org/index.php/Reverse_Tabnabbing).\n */\n target: PropTypes.string,\n /** specifies the callback function when the link is clicked */\n onClick: PropTypes.func,\n // eslint-disable-next-line max-len\n /** specifies the text for links with a `_blank` target (which loads the URL in a new browsing context). */\n externalLinkAlternativeText: isRequiredIf(\n PropTypes.string,\n props => props.target === '_blank',\n ),\n // eslint-disable-next-line max-len\n /** specifies the title for links with a `_blank` target (which loads the URL in a new browsing context). */\n externalLinkTitle: isRequiredIf(\n PropTypes.string,\n props => props.target === '_blank',\n ),\n /** type of hyperlink */\n variant: PropTypes.oneOf(['default', 'muted', 'brand']),\n /** specify the link style. By default it will be underlined. */\n isInline: PropTypes.bool,\n /** specify if we need to show launch Icon. By default it will be visible. */\n showLaunchIcon: PropTypes.bool,\n};\n\nexport default withDeprecatedProps(Hyperlink, 'Hyperlink', {\n /** specifies the text or element that a URL should be associated with */\n content: {\n deprType: DeprTypes.MOVED,\n newName: 'children',\n },\n});\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,YAAY,MAAM,oCAAoC;AAC7D,SAASC,MAAM,QAAQ,aAAa;AACpC,OAAOC,IAAI,MAAM,SAAS;AAE1B,OAAOC,mBAAmB,IAAIC,SAAS,QAAQ,wBAAwB;AAEvE,OAAO,MAAMC,iCAAiC,GAAG,cAAc;AAC/D,OAAO,MAAMC,8BAA8B,GAAG,oBAAoB;AAElE,MAAMC,SAAS,gBAAGV,KAAK,CAACW,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACjD,MAAM;MACJC,SAAS;MACTC,WAAW;MACXC,QAAQ;MACRC,MAAM;MACNC,OAAO;MACPC,2BAA2B;MAC3BC,iBAAiB;MACjBC,OAAO;MACPC,QAAQ;MACRC;IAEF,CAAC,GAAGX,KAAK;IADJY,KAAK,GAAAC,wBAAA,CACNb,KAAK,EAAAc,SAAA;EACT,IAAIC,gBAAgB;EAEpB,IAAIV,MAAM,KAAK,QAAQ,EAAE;IACvB,MAAMW,WAAW,GAAGA,CAAA,KAAM;MACxB,IAAI;QAAEC;MAAI,CAAC,GAAGL,KAAK;MACnB,IAAI,CAACK,GAAG,EAAE;QACR,OAAO,qBAAqB;MAC9B;MACA,IAAI,CAACA,GAAG,CAACC,QAAQ,CAAC,UAAU,CAAC,EAAE;QAC7BD,GAAG,IAAI,WAAW;MACpB;MACA,IAAI,CAACA,GAAG,CAACC,QAAQ,CAAC,YAAY,CAAC,EAAE;QAC/BD,GAAG,IAAI,aAAa;MACtB;MACA,OAAOA,GAAG;IACZ,CAAC;;IAED;IACAL,KAAK,CAACK,GAAG,GAAGD,WAAW,CAAC,CAAC;IACzB,IAAIL,cAAc,EAAE;MAClBI,gBAAgB,gBACd3B,KAAA,CAAA+B,aAAA;QACEjB,SAAS,EAAC,+BAA+B;QACzCkB,KAAK,EAAEZ;MAAkB,gBAEzBpB,KAAA,CAAA+B,aAAA,CAAC1B,IAAI;QACH4B,GAAG,EAAE7B,MAAO;QACZ8B,gBAAgB,EAAEf,2BAA4B;QAC9CgB,KAAK,EAAE;UAAEC,MAAM,EAAE,KAAK;UAAEC,KAAK,EAAE;QAAM,CAAE;QACvC,eAAY;MAAgB,CAC7B,CACG,CACP;IACH;EACF;EAEA,oBACErC,KAAA,CAAA+B,aAAA,MAAAO,QAAA;IACEzB,GAAG,EAAEA,GAAI;IACTC,SAAS,EAAEZ,UAAU,CACnB,gBAAgB,EACf,GAAEmB,OAAQ,OAAM,EACjB;MACE,iBAAiB,EAAE,CAACC,QAAQ;MAC5B,aAAa,EAAEA;IACjB,CAAC,EACDR,SACF,CAAE;IACFyB,IAAI,EAAExB,WAAY;IAClBE,MAAM,EAAEA,MAAO;IACfC,OAAO,EAAEA;EAAQ,GACbM,KAAK,GAERR,QAAQ,EACRW,gBACA,CAAC;AAER,CAAC,CAAC;AAEFjB,SAAS,CAAC8B,YAAY,GAAG;EACvB1B,SAAS,EAAE2B,SAAS;EACpBxB,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEA,CAAA,KAAM,CAAC,CAAC;EACjBC,2BAA2B,EAAEX,iCAAiC;EAC9DY,iBAAiB,EAAEX,8BAA8B;EACjDY,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE,KAAK;EACfC,cAAc,EAAE;AAClB,CAAC;AAEDb,SAAS,CAACgC,SAAS,GAAG;EACpB;EACA3B,WAAW,EAAEd,SAAS,CAAC0C,MAAM,CAACC,UAAU;EACxC;EACA5B,QAAQ,EAAEf,SAAS,CAAC4C,IAAI,CAACD,UAAU;EACnC;EACA9B,SAAS,EAAEb,SAAS,CAAC0C,MAAM;EAC3B;AACF;EACE1B,MAAM,EAAEhB,SAAS,CAAC0C,MAAM;EACxB;EACAzB,OAAO,EAAEjB,SAAS,CAAC6C,IAAI;EACvB;EACA;EACA3B,2BAA2B,EAAEhB,YAAY,CACvCF,SAAS,CAAC0C,MAAM,EAChB/B,KAAK,IAAIA,KAAK,CAACK,MAAM,KAAK,QAC5B,CAAC;EACD;EACA;EACAG,iBAAiB,EAAEjB,YAAY,CAC7BF,SAAS,CAAC0C,MAAM,EAChB/B,KAAK,IAAIA,KAAK,CAACK,MAAM,KAAK,QAC5B,CAAC;EACD;EACAI,OAAO,EAAEpB,SAAS,CAAC8C,KAAK,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;EACvD;EACAzB,QAAQ,EAAErB,SAAS,CAAC+C,IAAI;EACxB;EACAzB,cAAc,EAAEtB,SAAS,CAAC+C;AAC5B,CAAC;AAED,eAAe1C,mBAAmB,CAACI,SAAS,EAAE,WAAW,EAAE;EACzD;EACAuC,OAAO,EAAE;IACPC,QAAQ,EAAE3C,SAAS,CAAC4C,KAAK;IACzBC,OAAO,EAAE;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classNames","isRequiredIf","Launch","Icon","withDeprecatedProps","DeprTypes","HYPER_LINK_EXTERNAL_LINK_ALT_TEXT","HYPER_LINK_EXTERNAL_LINK_TITLE","Hyperlink","forwardRef","props","ref","className","destination","children","target","onClick","externalLinkAlternativeText","externalLinkTitle","variant","isInline","showLaunchIcon","attrs","_objectWithoutProperties","_excluded","externalLinkIcon","generateRel","rel","includes","createElement","title","src","screenReaderText","style","height","width","_extends","concat","href","defaultProps","undefined","propTypes","string","isRequired","node","func","oneOf","bool","content","deprType","MOVED","newName"],"sources":["../../src/Hyperlink/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport isRequiredIf from 'react-proptype-conditional-require';\nimport { Launch } from '../../icons';\nimport Icon from '../Icon';\n\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\nexport const HYPER_LINK_EXTERNAL_LINK_ALT_TEXT = 'in a new tab';\nexport const HYPER_LINK_EXTERNAL_LINK_TITLE = 'Opens in a new tab';\n\nconst Hyperlink = React.forwardRef((props, ref) => {\n const {\n className,\n destination,\n children,\n target,\n onClick,\n externalLinkAlternativeText,\n externalLinkTitle,\n variant,\n isInline,\n showLaunchIcon,\n ...attrs\n } = props;\n let externalLinkIcon;\n\n if (target === '_blank') {\n const generateRel = () => {\n let { rel } = attrs;\n if (!rel) {\n return 'noopener noreferrer';\n }\n if (!rel.includes('noopener')) {\n rel += ' noopener';\n }\n if (!rel.includes('noreferrer')) {\n rel += ' noreferrer';\n }\n return rel;\n };\n\n // Add this rel attribute to prevent Reverse Tabnabbing\n attrs.rel = generateRel();\n if (showLaunchIcon) {\n externalLinkIcon = (\n <span\n className=\"pgn__hyperlink__external-icon\"\n title={externalLinkTitle}\n >\n <Icon\n src={Launch}\n screenReaderText={externalLinkAlternativeText}\n style={{ height: '1em', width: '1em' }}\n data-testid=\"hyperlink-icon\"\n />\n </span>\n );\n }\n }\n\n return (\n <a\n ref={ref}\n className={classNames(\n 'pgn__hyperlink',\n `${variant}-link`,\n {\n 'standalone-link': !isInline,\n 'inline-link': isInline,\n },\n className,\n )}\n href={destination}\n target={target}\n onClick={onClick}\n {...attrs}\n >\n {children}\n {externalLinkIcon}\n </a>\n );\n});\n\nHyperlink.defaultProps = {\n className: undefined,\n target: '_self',\n onClick: () => {},\n externalLinkAlternativeText: HYPER_LINK_EXTERNAL_LINK_ALT_TEXT,\n externalLinkTitle: HYPER_LINK_EXTERNAL_LINK_TITLE,\n variant: 'default',\n isInline: false,\n showLaunchIcon: true,\n};\n\nHyperlink.propTypes = {\n /** specifies the URL */\n destination: PropTypes.string.isRequired,\n /** Content of the hyperlink */\n children: PropTypes.node.isRequired,\n /** Custom class names for the hyperlink */\n className: PropTypes.string,\n /** specifies where the link should open. The default behavior is `_self`, which means that the URL will be\n * loaded into the same browsing context as the current one.\n * If the target is `_blank` (opening a new window) `rel='noopener'` will be added to the anchor tag to prevent\n * any potential [reverse tabnabbing attack](https://www.owasp.org/index.php/Reverse_Tabnabbing).\n */\n target: PropTypes.string,\n /** specifies the callback function when the link is clicked */\n onClick: PropTypes.func,\n /** specifies the text for links with a `_blank` target (which loads the URL in a new browsing context). */\n externalLinkAlternativeText: isRequiredIf(\n PropTypes.string,\n props => props.target === '_blank',\n ),\n /** specifies the title for links with a `_blank` target (which loads the URL in a new browsing context). */\n externalLinkTitle: isRequiredIf(\n PropTypes.string,\n props => props.target === '_blank',\n ),\n /** type of hyperlink */\n variant: PropTypes.oneOf(['default', 'muted', 'brand']),\n /** specify the link style. By default, it will be underlined. */\n isInline: PropTypes.bool,\n /** specify if we need to show launch Icon. By default, it will be visible. */\n showLaunchIcon: PropTypes.bool,\n};\n\nexport default withDeprecatedProps(Hyperlink, 'Hyperlink', {\n /** specifies the text or element that a URL should be associated with */\n content: {\n deprType: DeprTypes.MOVED,\n newName: 'children',\n },\n});\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  .pgn__hyperlink {
2
+ display: inline-flex;
3
+ align-items: center;
2
4
  text-align: start;
3
5
 
4
6
  &__external-icon {
5
- display: inline-block;
6
- vertical-align: middle;
7
7
  margin-inline-start: map_get($spacers, 2);
8
8
  }
9
9
  }
@@ -1,10 +1,11 @@
1
- const _excluded = ["src", "id", "className", "hidden", "screenReaderText", "svgAttrs", "size"];
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 = ["src", "id", "className", "hidden", "screenReaderText", "svgAttrs", "size"];
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 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; }
4
5
  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; }
5
6
  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; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
7
- 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 _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
8
+ 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); }
8
9
  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; }
9
10
  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; }
10
11
  import React from 'react';
@@ -21,28 +22,24 @@ import withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';
21
22
  */
22
23
 
23
24
  function Icon(_ref) {
24
- let {
25
- src: Component,
26
- id,
27
- className,
28
- hidden,
29
- screenReaderText,
30
- svgAttrs,
31
- size
32
- } = _ref,
25
+ var Component = _ref.src,
26
+ id = _ref.id,
27
+ className = _ref.className,
28
+ hidden = _ref.hidden,
29
+ screenReaderText = _ref.screenReaderText,
30
+ svgAttrs = _ref.svgAttrs,
31
+ size = _ref.size,
33
32
  attrs = _objectWithoutProperties(_ref, _excluded);
34
33
  if (Component) {
35
34
  // If no aria label is specified, hide this icon from screenreaders
36
- const hasAriaLabel = svgAttrs['aria-label'] || svgAttrs['aria-labelledby'];
37
- const mergedSvgProps = _objectSpread({}, svgAttrs);
35
+ var hasAriaLabel = svgAttrs['aria-label'] || svgAttrs['aria-labelledby'];
36
+ var mergedSvgProps = _objectSpread({}, svgAttrs);
38
37
  if (!hasAriaLabel) {
39
38
  mergedSvgProps['aria-label'] = undefined;
40
39
  mergedSvgProps['aria-hidden'] = true;
41
40
  }
42
41
  return /*#__PURE__*/React.createElement("span", _extends({
43
- className: classNames('pgn__icon', {
44
- [`pgn__icon__${size}`]: !!size
45
- }, className),
42
+ className: classNames('pgn__icon', _defineProperty({}, "pgn__icon__".concat(size), !!size), className),
46
43
  id: id
47
44
  }, attrs), /*#__PURE__*/React.createElement(Component, _extends({
48
45
  role: "img",
@@ -60,28 +57,35 @@ function Icon(_ref) {
60
57
  }, screenReaderText));
61
58
  }
62
59
  Icon.propTypes = {
63
- // eslint-disable-next-line max-len
64
- /** An icon component to render. Example import of a Paragon icon component: `import { Check } from '@edx/paragon/dist/icon';` */
65
- src: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
60
+ /**
61
+ * An icon component to render.
62
+ * Example import of a Paragon icon component: `import { Check } from '@edx/paragon/icons';`
63
+ */
64
+ src: PropTypes.oneOfType([PropTypes.element, PropTypes.elementType]),
66
65
  /** HTML element attributes to pass through to the underlying svg element */
67
66
  svgAttrs: PropTypes.shape({
68
67
  'aria-label': PropTypes.string,
69
68
  'aria-labelledby': PropTypes.string
70
69
  }),
71
- // eslint-disable-next-line max-len
72
- /** the `id` property of the Icon element, by default this value is generated with the `newId` function with the `prefix` of `Icon`. */
70
+ /**
71
+ * the `id` property of the Icon element, by default this value is generated
72
+ * with the `newId` function with the `prefix` of `Icon`.
73
+ */
73
74
  id: PropTypes.string,
74
- // eslint-disable-next-line max-len
75
75
  /** The size of the icon. */
76
76
  size: PropTypes.oneOf(['xs', 'sm', 'md', 'lg']),
77
- // eslint-disable-next-line max-len
78
77
  /** A class name that will define what the Icon looks like. */
79
78
  className: PropTypes.string,
80
- // eslint-disable-next-line max-len
81
- /** a boolean that determines the value of `aria-hidden` attribute on the Icon span, this value is `true` by default. */
79
+ /**
80
+ * a boolean that determines the value of `aria-hidden` attribute on the Icon span,
81
+ * this value is `true` by default.
82
+ */
82
83
  hidden: PropTypes.bool,
83
- // eslint-disable-next-line max-len
84
- /** a string or an element that will be used on a secondary span leveraging the `sr-only` style for screenreader only text, this value is `undefined` by default. This value is recommended for use unless the Icon is being used in a way that is purely decorative or provides no additional context for screen reader users. This field should be thought of the same way an `alt` attribute would be used for `image` tags.
84
+ /**
85
+ * a string or an element that will be used on a secondary span leveraging the `sr-only` style
86
+ * for screenreader only text, this value is `undefined` by default. This value is recommended for use unless
87
+ * the Icon is being used in a way that is purely decorative or provides no additional context for screen
88
+ * reader users. This field should be thought of the same way an `alt` attribute would be used for `image` tags.
85
89
  */
86
90
  screenReaderText: PropTypes.oneOfType([PropTypes.string, PropTypes.element])
87
91
  };
@@ -97,8 +101,12 @@ Icon.defaultProps = {
97
101
  export default withDeprecatedProps(Icon, 'Icon', {
98
102
  className: {
99
103
  deprType: DeprTypes.FORMAT,
100
- expect: value => typeof value === 'string',
101
- transform: value => Array.isArray(value) ? value.join(' ') : value,
104
+ expect: function expect(value) {
105
+ return typeof value === 'string';
106
+ },
107
+ transform: function transform(value) {
108
+ return Array.isArray(value) ? value.join(' ') : value;
109
+ },
102
110
  message: 'It should be a string.'
103
111
  }
104
112
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classNames","newId","withDeprecatedProps","DeprTypes","Icon","_ref","src","Component","id","className","hidden","screenReaderText","svgAttrs","size","attrs","_objectWithoutProperties","_excluded","hasAriaLabel","mergedSvgProps","_objectSpread","undefined","createElement","_extends","role","focusable","Fragment","propTypes","oneOfType","element","func","shape","string","oneOf","bool","defaultProps","deprType","FORMAT","expect","value","transform","Array","isArray","join","message"],"sources":["../../src/Icon/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport newId from '../utils/newId';\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\n/**\n * An svg with an \"img\" role must satisfy the following a11y requirements\n * - It needs a text alternative in the form of aria-label, aria-labelledby, or screen-reader only text.\n * - If no label is desired, aria-label will be set to an empty string and aria-hidden to \"true\".\n * - focusable is set to false on the svg in all cases as a workaround for an ie11 bug\n */\n\nfunction Icon({\n src: Component,\n id,\n className,\n hidden,\n screenReaderText,\n svgAttrs,\n size,\n ...attrs\n}) {\n if (Component) {\n // If no aria label is specified, hide this icon from screenreaders\n const hasAriaLabel = svgAttrs['aria-label'] || svgAttrs['aria-labelledby'];\n\n const mergedSvgProps = { ...svgAttrs };\n\n if (!hasAriaLabel) {\n mergedSvgProps['aria-label'] = undefined;\n mergedSvgProps['aria-hidden'] = true;\n }\n\n return (\n <span\n className={classNames('pgn__icon', { [`pgn__icon__${size}`]: !!size }, className)}\n id={id}\n {...attrs}\n >\n <Component\n role=\"img\"\n focusable={false}\n {...mergedSvgProps}\n />\n {screenReaderText && (\n <span className=\"sr-only\">\n {screenReaderText}\n </span>\n )}\n </span>\n );\n }\n\n return (\n <>\n <span\n id={id || newId('Icon')}\n className={className}\n aria-hidden={hidden}\n />\n {screenReaderText && (\n <span className=\"sr-only\">\n {screenReaderText}\n </span>\n )}\n </>\n );\n}\n\nIcon.propTypes = {\n // eslint-disable-next-line max-len\n /** An icon component to render. Example import of a Paragon icon component: `import { Check } from '@edx/paragon/dist/icon';` */\n src: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n /** HTML element attributes to pass through to the underlying svg element */\n svgAttrs: PropTypes.shape({\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string,\n }),\n // eslint-disable-next-line max-len\n /** the `id` property of the Icon element, by default this value is generated with the `newId` function with the `prefix` of `Icon`. */\n id: PropTypes.string,\n // eslint-disable-next-line max-len\n /** The size of the icon. */\n size: PropTypes.oneOf(['xs', 'sm', 'md', 'lg']),\n // eslint-disable-next-line max-len\n /** A class name that will define what the Icon looks like. */\n className: PropTypes.string,\n // eslint-disable-next-line max-len\n /** a boolean that determines the value of `aria-hidden` attribute on the Icon span, this value is `true` by default. */\n hidden: PropTypes.bool,\n // eslint-disable-next-line max-len\n /** a string or an element that will be used on a secondary span leveraging the `sr-only` style for screenreader only text, this value is `undefined` by default. This value is recommended for use unless the Icon is being used in a way that is purely decorative or provides no additional context for screen reader users. This field should be thought of the same way an `alt` attribute would be used for `image` tags.\n */\n screenReaderText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n};\n\nIcon.defaultProps = {\n src: null,\n svgAttrs: {},\n id: undefined,\n hidden: true,\n screenReaderText: undefined,\n size: undefined,\n className: undefined,\n};\n\nexport default withDeprecatedProps(Icon, 'Icon', {\n className: {\n deprType: DeprTypes.FORMAT,\n expect: value => typeof value === 'string',\n transform: value => (Array.isArray(value) ? value.join(' ') : value),\n message: 'It should be a string.',\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classNames","newId","withDeprecatedProps","DeprTypes","Icon","_ref","Component","src","id","className","hidden","screenReaderText","svgAttrs","size","attrs","_objectWithoutProperties","_excluded","hasAriaLabel","mergedSvgProps","_objectSpread","undefined","createElement","_extends","_defineProperty","concat","role","focusable","Fragment","propTypes","oneOfType","element","elementType","shape","string","oneOf","bool","defaultProps","deprType","FORMAT","expect","value","transform","Array","isArray","join","message"],"sources":["../../src/Icon/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport newId from '../utils/newId';\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\n/**\n * An svg with an \"img\" role must satisfy the following a11y requirements\n * - It needs a text alternative in the form of aria-label, aria-labelledby, or screen-reader only text.\n * - If no label is desired, aria-label will be set to an empty string and aria-hidden to \"true\".\n * - focusable is set to false on the svg in all cases as a workaround for an ie11 bug\n */\n\nfunction Icon({\n src: Component,\n id,\n className,\n hidden,\n screenReaderText,\n svgAttrs,\n size,\n ...attrs\n}) {\n if (Component) {\n // If no aria label is specified, hide this icon from screenreaders\n const hasAriaLabel = svgAttrs['aria-label'] || svgAttrs['aria-labelledby'];\n\n const mergedSvgProps = { ...svgAttrs };\n\n if (!hasAriaLabel) {\n mergedSvgProps['aria-label'] = undefined;\n mergedSvgProps['aria-hidden'] = true;\n }\n\n return (\n <span\n className={classNames('pgn__icon', { [`pgn__icon__${size}`]: !!size }, className)}\n id={id}\n {...attrs}\n >\n <Component\n role=\"img\"\n focusable={false}\n {...mergedSvgProps}\n />\n {screenReaderText && (\n <span className=\"sr-only\">\n {screenReaderText}\n </span>\n )}\n </span>\n );\n }\n\n return (\n <>\n <span\n id={id || newId('Icon')}\n className={className}\n aria-hidden={hidden}\n />\n {screenReaderText && (\n <span className=\"sr-only\">\n {screenReaderText}\n </span>\n )}\n </>\n );\n}\n\nIcon.propTypes = {\n /**\n * An icon component to render.\n * Example import of a Paragon icon component: `import { Check } from '@edx/paragon/icons';`\n */\n src: PropTypes.oneOfType([PropTypes.element, PropTypes.elementType]),\n /** HTML element attributes to pass through to the underlying svg element */\n svgAttrs: PropTypes.shape({\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string,\n }),\n /**\n * the `id` property of the Icon element, by default this value is generated\n * with the `newId` function with the `prefix` of `Icon`.\n */\n id: PropTypes.string,\n /** The size of the icon. */\n size: PropTypes.oneOf(['xs', 'sm', 'md', 'lg']),\n /** A class name that will define what the Icon looks like. */\n className: PropTypes.string,\n /**\n * a boolean that determines the value of `aria-hidden` attribute on the Icon span,\n * this value is `true` by default.\n */\n hidden: PropTypes.bool,\n /**\n * a string or an element that will be used on a secondary span leveraging the `sr-only` style\n * for screenreader only text, this value is `undefined` by default. This value is recommended for use unless\n * the Icon is being used in a way that is purely decorative or provides no additional context for screen\n * reader users. This field should be thought of the same way an `alt` attribute would be used for `image` tags.\n */\n screenReaderText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n};\n\nIcon.defaultProps = {\n src: null,\n svgAttrs: {},\n id: undefined,\n hidden: true,\n screenReaderText: undefined,\n size: undefined,\n className: undefined,\n};\n\nexport default withDeprecatedProps(Icon, 'Icon', {\n className: {\n deprType: DeprTypes.FORMAT,\n expect: value => typeof value === 'string',\n transform: value => (Array.isArray(value) ? value.join(' ') : value),\n message: 'It should be a string.',\n },\n});\n"],"mappings":";;;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,KAAK,MAAM,gBAAgB;AAClC,OAAOC,mBAAmB,IAAIC,SAAS,QAAQ,wBAAwB;;AAEvE;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASC,IAAIA,CAAAC,IAAA,EASV;EAAA,IARIC,SAAS,GAAAD,IAAA,CAAdE,GAAG;IACHC,EAAE,GAAAH,IAAA,CAAFG,EAAE;IACFC,SAAS,GAAAJ,IAAA,CAATI,SAAS;IACTC,MAAM,GAAAL,IAAA,CAANK,MAAM;IACNC,gBAAgB,GAAAN,IAAA,CAAhBM,gBAAgB;IAChBC,QAAQ,GAAAP,IAAA,CAARO,QAAQ;IACRC,IAAI,GAAAR,IAAA,CAAJQ,IAAI;IACDC,KAAK,GAAAC,wBAAA,CAAAV,IAAA,EAAAW,SAAA;EAER,IAAIV,SAAS,EAAE;IACb;IACA,IAAMW,YAAY,GAAGL,QAAQ,CAAC,YAAY,CAAC,IAAIA,QAAQ,CAAC,iBAAiB,CAAC;IAE1E,IAAMM,cAAc,GAAAC,aAAA,KAAQP,QAAQ,CAAE;IAEtC,IAAI,CAACK,YAAY,EAAE;MACjBC,cAAc,CAAC,YAAY,CAAC,GAAGE,SAAS;MACxCF,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI;IACtC;IAEA,oBACEpB,KAAA,CAAAuB,aAAA,SAAAC,QAAA;MACEb,SAAS,EAAET,UAAU,CAAC,WAAW,EAAAuB,eAAA,mBAAAC,MAAA,CAAmBX,IAAI,GAAK,CAAC,CAACA,IAAI,GAAIJ,SAAS,CAAE;MAClFD,EAAE,EAAEA;IAAG,GACHM,KAAK,gBAEThB,KAAA,CAAAuB,aAAA,CAACf,SAAS,EAAAgB,QAAA;MACRG,IAAI,EAAC,KAAK;MACVC,SAAS,EAAE;IAAM,GACbR,cAAc,CACnB,CAAC,EACDP,gBAAgB,iBACfb,KAAA,CAAAuB,aAAA;MAAMZ,SAAS,EAAC;IAAS,GACtBE,gBACG,CAEJ,CAAC;EAEX;EAEA,oBACEb,KAAA,CAAAuB,aAAA,CAAAvB,KAAA,CAAA6B,QAAA,qBACE7B,KAAA,CAAAuB,aAAA;IACEb,EAAE,EAAEA,EAAE,IAAIP,KAAK,CAAC,MAAM,CAAE;IACxBQ,SAAS,EAAEA,SAAU;IACrB,eAAaC;EAAO,CACrB,CAAC,EACDC,gBAAgB,iBACfb,KAAA,CAAAuB,aAAA;IAAMZ,SAAS,EAAC;EAAS,GACtBE,gBACG,CAER,CAAC;AAEP;AAEAP,IAAI,CAACwB,SAAS,GAAG;EACf;AACF;AACA;AACA;EACErB,GAAG,EAAER,SAAS,CAAC8B,SAAS,CAAC,CAAC9B,SAAS,CAAC+B,OAAO,EAAE/B,SAAS,CAACgC,WAAW,CAAC,CAAC;EACpE;EACAnB,QAAQ,EAAEb,SAAS,CAACiC,KAAK,CAAC;IACxB,YAAY,EAAEjC,SAAS,CAACkC,MAAM;IAC9B,iBAAiB,EAAElC,SAAS,CAACkC;EAC/B,CAAC,CAAC;EACF;AACF;AACA;AACA;EACEzB,EAAE,EAAET,SAAS,CAACkC,MAAM;EACpB;EACApB,IAAI,EAAEd,SAAS,CAACmC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;EAC/C;EACAzB,SAAS,EAAEV,SAAS,CAACkC,MAAM;EAC3B;AACF;AACA;AACA;EACEvB,MAAM,EAAEX,SAAS,CAACoC,IAAI;EACtB;AACF;AACA;AACA;AACA;AACA;EACExB,gBAAgB,EAAEZ,SAAS,CAAC8B,SAAS,CAAC,CAAC9B,SAAS,CAACkC,MAAM,EAAElC,SAAS,CAAC+B,OAAO,CAAC;AAC7E,CAAC;AAED1B,IAAI,CAACgC,YAAY,GAAG;EAClB7B,GAAG,EAAE,IAAI;EACTK,QAAQ,EAAE,CAAC,CAAC;EACZJ,EAAE,EAAEY,SAAS;EACbV,MAAM,EAAE,IAAI;EACZC,gBAAgB,EAAES,SAAS;EAC3BP,IAAI,EAAEO,SAAS;EACfX,SAAS,EAAEW;AACb,CAAC;AAED,eAAelB,mBAAmB,CAACE,IAAI,EAAE,MAAM,EAAE;EAC/CK,SAAS,EAAE;IACT4B,QAAQ,EAAElC,SAAS,CAACmC,MAAM;IAC1BC,MAAM,EAAE,SAAAA,OAAAC,KAAK;MAAA,OAAI,OAAOA,KAAK,KAAK,QAAQ;IAAA;IAC1CC,SAAS,EAAE,SAAAA,UAAAD,KAAK;MAAA,OAAKE,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,GAAGA,KAAK,CAACI,IAAI,CAAC,GAAG,CAAC,GAAGJ,KAAK;IAAA,CAAC;IACpEK,OAAO,EAAE;EACX;AACF,CAAC,CAAC"}
@@ -1,6 +1,10 @@
1
- const _excluded = ["className", "alt", "invertColors", "icon", "src", "iconClassNames", "onClick", "size", "variant", "iconAs", "isActive"],
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 = ["className", "alt", "invertColors", "icon", "src", "iconClassNames", "onClick", "size", "variant", "iconAs", "isActive"],
2
3
  _excluded2 = ["tooltipPlacement", "tooltipContent", "variant", "invertColors"];
3
4
  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); }
5
+ 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; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ 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); }
4
8
  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; }
5
9
  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
10
  import React from 'react';
@@ -9,34 +13,30 @@ import classNames from 'classnames';
9
13
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
10
14
  import { OverlayTrigger } from '../Overlay';
11
15
  import Tooltip from '../Tooltip';
12
- const IconButton = /*#__PURE__*/React.forwardRef((_ref, ref) => {
13
- let {
14
- className,
15
- alt,
16
- invertColors,
17
- icon,
18
- src,
19
- iconClassNames,
20
- onClick,
21
- size,
22
- variant,
23
- iconAs,
24
- isActive
25
- } = _ref,
16
+ var IconButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
17
+ var className = _ref.className,
18
+ alt = _ref.alt,
19
+ invertColors = _ref.invertColors,
20
+ icon = _ref.icon,
21
+ src = _ref.src,
22
+ iconClassNames = _ref.iconClassNames,
23
+ onClick = _ref.onClick,
24
+ size = _ref.size,
25
+ variant = _ref.variant,
26
+ iconAs = _ref.iconAs,
27
+ isActive = _ref.isActive,
26
28
  attrs = _objectWithoutProperties(_ref, _excluded);
27
- const invert = invertColors ? 'inverse-' : '';
28
- const activeStyle = isActive ? `${variant}-` : '';
29
+ var invert = invertColors ? 'inverse-' : '';
30
+ var activeStyle = isActive ? "".concat(variant, "-") : '';
29
31
  if (!iconAs && process.env.NODE_ENV === 'development' && console) {
30
- const msg = '[Deprecated] IconButton: you have not provided a value for iconAs prop and ' + 'are using a default one - FontAwesomeIcon, the default value is going to be changed soon ' + 'as Paragon is moving away from FontAwesome, please use Paragon\'s icons instead.';
32
+ var msg = '[Deprecated] IconButton: you have not provided a value for iconAs prop and ' + 'are using a default one - FontAwesomeIcon, the default value is going to be changed soon ' + 'as Paragon is moving away from FontAwesome, please use Paragon\'s icons instead.';
31
33
  // eslint-disable-next-line no-console
32
34
  console.warn(msg);
33
35
  }
34
- const IconComponent = iconAs || FontAwesomeIcon;
36
+ var IconComponent = iconAs || FontAwesomeIcon;
35
37
  return /*#__PURE__*/React.createElement("button", _extends({
36
38
  "aria-label": alt,
37
- className: classNames('btn-icon', `btn-icon-${invert}${variant}`, `btn-icon-${size}`, {
38
- [`btn-icon-${invert}${activeStyle}active`]: isActive
39
- }, className),
39
+ className: classNames('btn-icon', "btn-icon-".concat(invert).concat(variant), "btn-icon-".concat(size), _defineProperty({}, "btn-icon-".concat(invert).concat(activeStyle, "active"), isActive), className),
40
40
  onClick: onClick,
41
41
  type: "button",
42
42
  ref: ref
@@ -57,7 +57,7 @@ IconButton.defaultProps = {
57
57
  invertColors: false,
58
58
  variant: 'primary',
59
59
  size: 'md',
60
- onClick: () => {},
60
+ onClick: function onClick() {},
61
61
  isActive: false
62
62
  };
63
63
  IconButton.propTypes = {
@@ -69,14 +69,14 @@ IconButton.propTypes = {
69
69
  /** An icon component to render. Example import of a Paragon icon component:
70
70
  * `import { Check } from '@edx/paragon/dist/icon';`
71
71
  * */
72
- src: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
72
+ src: PropTypes.oneOfType([PropTypes.element, PropTypes.elementType]),
73
73
  /** Alt text for your icon. For best practice, avoid using alt text to describe
74
74
  * the image in the `IconButton`. Instead, we recommend describing the function
75
75
  * of the button. */
76
76
  alt: PropTypes.string.isRequired,
77
77
  /** Changes icon styles for dark background */
78
78
  invertColors: PropTypes.bool,
79
- /** Accepts a React fontawesome icon. https://fontawesome.com/how-to-use/on-the-web/using-with/react */
79
+ /** Accepts a React fontawesome icon. */
80
80
  icon: PropTypes.shape({
81
81
  prefix: PropTypes.string,
82
82
  iconName: PropTypes.string,
@@ -103,18 +103,16 @@ IconButton.propTypes = {
103
103
  * @returns { IconButton } a button wrapped in overlaytrigger
104
104
  */
105
105
  function IconButtonWithTooltip(_ref2) {
106
- let {
107
- tooltipPlacement,
108
- tooltipContent,
109
- variant,
110
- invertColors
111
- } = _ref2,
106
+ var tooltipPlacement = _ref2.tooltipPlacement,
107
+ tooltipContent = _ref2.tooltipContent,
108
+ variant = _ref2.variant,
109
+ invertColors = _ref2.invertColors,
112
110
  props = _objectWithoutProperties(_ref2, _excluded2);
113
- const invert = invertColors ? 'inverse-' : '';
111
+ var invert = invertColors ? 'inverse-' : '';
114
112
  return /*#__PURE__*/React.createElement(OverlayTrigger, {
115
113
  placement: tooltipPlacement,
116
114
  overlay: /*#__PURE__*/React.createElement(Tooltip, {
117
- id: `iconbutton-tooltip-${tooltipPlacement}`,
115
+ id: "iconbutton-tooltip-".concat(tooltipPlacement),
118
116
  variant: invert ? 'light' : ''
119
117
  }, tooltipContent)
120
118
  }, /*#__PURE__*/React.createElement(IconButton, _extends({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classNames","FontAwesomeIcon","OverlayTrigger","Tooltip","IconButton","forwardRef","_ref","ref","className","alt","invertColors","icon","src","iconClassNames","onClick","size","variant","iconAs","isActive","attrs","_objectWithoutProperties","_excluded","invert","activeStyle","process","env","NODE_ENV","console","msg","warn","IconComponent","createElement","_extends","type","defaultProps","undefined","propTypes","string","elementType","oneOfType","element","func","isRequired","bool","shape","prefix","iconName","array","oneOf","IconButtonWithTooltip","_ref2","tooltipPlacement","tooltipContent","props","_excluded2","placement","overlay","id","node"],"sources":["../../src/IconButton/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { OverlayTrigger } from '../Overlay';\nimport Tooltip from '../Tooltip';\n\nconst IconButton = React.forwardRef(({\n className,\n alt,\n invertColors,\n icon,\n src,\n iconClassNames,\n onClick,\n size,\n variant,\n iconAs,\n isActive,\n ...attrs\n}, ref) => {\n const invert = invertColors ? 'inverse-' : '';\n const activeStyle = isActive ? `${variant}-` : '';\n if (!iconAs && process.env.NODE_ENV === 'development' && console) {\n const msg = '[Deprecated] IconButton: you have not provided a value for iconAs prop and '\n + 'are using a default one - FontAwesomeIcon, the default value is going to be changed soon '\n + 'as Paragon is moving away from FontAwesome, please use Paragon\\'s icons instead.';\n // eslint-disable-next-line no-console\n console.warn(msg);\n }\n const IconComponent = iconAs || FontAwesomeIcon;\n return (\n <button\n aria-label={alt}\n className={classNames(\n 'btn-icon',\n `btn-icon-${invert}${variant}`,\n `btn-icon-${size}`,\n {\n [`btn-icon-${invert}${activeStyle}active`]: isActive,\n },\n className,\n )}\n onClick={onClick}\n type=\"button\"\n ref={ref}\n {...attrs}\n >\n <span className=\"btn-icon__icon-container\">\n <IconComponent\n className={classNames('btn-icon__icon', iconClassNames)}\n icon={icon}\n src={src}\n />\n </span>\n </button>\n );\n});\n\nIconButton.defaultProps = {\n iconAs: undefined,\n src: null,\n icon: undefined,\n iconClassNames: undefined,\n className: undefined,\n invertColors: false,\n variant: 'primary',\n size: 'md',\n onClick: () => {},\n isActive: false,\n};\n\nIconButton.propTypes = {\n /** A custom class name. */\n className: PropTypes.string,\n /** Component that renders the icon, currently defaults to `FontAwesomeIcon`,\n * but is going to be deprecated soon, please use Paragon's icons instead. */\n iconAs: PropTypes.elementType,\n /** An icon component to render. Example import of a Paragon icon component:\n * `import { Check } from '@edx/paragon/dist/icon';`\n * */\n src: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n /** Alt text for your icon. For best practice, avoid using alt text to describe\n * the image in the `IconButton`. Instead, we recommend describing the function\n * of the button. */\n alt: PropTypes.string.isRequired,\n /** Changes icon styles for dark background */\n invertColors: PropTypes.bool,\n /** Accepts a React fontawesome icon. https://fontawesome.com/how-to-use/on-the-web/using-with/react */\n icon: PropTypes.shape({\n prefix: PropTypes.string,\n iconName: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n icon: PropTypes.array,\n }),\n /** Extra class names that will be added to the icon */\n iconClassNames: PropTypes.string,\n /** Click handler for the button */\n onClick: PropTypes.func,\n /** Type of button (uses Bootstrap options) */\n variant: PropTypes.oneOf(['primary', 'secondary', 'success', 'warning', 'danger', 'light', 'dark', 'black', 'brand']),\n /** size of button to render */\n size: PropTypes.oneOf(['sm', 'md', 'inline']),\n /** whether to show the `IconButton` in an active state, whose styling is distinct from default state */\n isActive: PropTypes.bool,\n};\n\n/**\n *\n * @param { object } args Arguments\n * @param { string } args.tooltipPlacement choose from https://popper.js.org/docs/v2/constructors/#options\n * @param { React.Component } args.tooltipContent any content to pass to tooltip content area\n * @returns { IconButton } a button wrapped in overlaytrigger\n */\nfunction IconButtonWithTooltip({\n tooltipPlacement, tooltipContent, variant, invertColors, ...props\n}) {\n const invert = invertColors ? 'inverse-' : '';\n return (\n <OverlayTrigger\n placement={tooltipPlacement}\n overlay={(\n <Tooltip\n id={`iconbutton-tooltip-${tooltipPlacement}`}\n variant={invert ? 'light' : ''}\n >\n {tooltipContent}\n </Tooltip>\n )}\n >\n <IconButton variant={variant} invertColors={invertColors} {...props} />\n </OverlayTrigger>\n );\n}\n\nIconButtonWithTooltip.defaultProps = {\n tooltipPlacement: 'top',\n variant: 'primary',\n invertColors: false,\n};\n\nIconButtonWithTooltip.propTypes = {\n /** tooltip placement can be top, left, right etc, per https://popper.js.org/docs/v2/constructors/#options */\n tooltipPlacement: PropTypes.string,\n /** any valid JSX or text to be rendered as tooltip contents */\n tooltipContent: PropTypes.node.isRequired,\n /** Type of button (uses Bootstrap options) */\n variant: PropTypes.oneOf(['primary', 'secondary', 'success', 'warning', 'danger', 'light', 'dark', 'black', 'brand']),\n /** Changes icon styles for dark background */\n invertColors: PropTypes.bool,\n};\n\nIconButton.IconButtonWithTooltip = IconButtonWithTooltip;\n\nexport default IconButton;\nexport { IconButtonWithTooltip };\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classNames","FontAwesomeIcon","OverlayTrigger","Tooltip","IconButton","forwardRef","_ref","ref","className","alt","invertColors","icon","src","iconClassNames","onClick","size","variant","iconAs","isActive","attrs","_objectWithoutProperties","_excluded","invert","activeStyle","concat","process","env","NODE_ENV","console","msg","warn","IconComponent","createElement","_extends","_defineProperty","type","defaultProps","undefined","propTypes","string","elementType","oneOfType","element","isRequired","bool","shape","prefix","iconName","array","func","oneOf","IconButtonWithTooltip","_ref2","tooltipPlacement","tooltipContent","props","_excluded2","placement","overlay","id","node"],"sources":["../../src/IconButton/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { OverlayTrigger } from '../Overlay';\nimport Tooltip from '../Tooltip';\n\nconst IconButton = React.forwardRef(({\n className,\n alt,\n invertColors,\n icon,\n src,\n iconClassNames,\n onClick,\n size,\n variant,\n iconAs,\n isActive,\n ...attrs\n}, ref) => {\n const invert = invertColors ? 'inverse-' : '';\n const activeStyle = isActive ? `${variant}-` : '';\n if (!iconAs && process.env.NODE_ENV === 'development' && console) {\n const msg = '[Deprecated] IconButton: you have not provided a value for iconAs prop and '\n + 'are using a default one - FontAwesomeIcon, the default value is going to be changed soon '\n + 'as Paragon is moving away from FontAwesome, please use Paragon\\'s icons instead.';\n // eslint-disable-next-line no-console\n console.warn(msg);\n }\n const IconComponent = iconAs || FontAwesomeIcon;\n return (\n <button\n aria-label={alt}\n className={classNames(\n 'btn-icon',\n `btn-icon-${invert}${variant}`,\n `btn-icon-${size}`,\n {\n [`btn-icon-${invert}${activeStyle}active`]: isActive,\n },\n className,\n )}\n onClick={onClick}\n type=\"button\"\n ref={ref}\n {...attrs}\n >\n <span className=\"btn-icon__icon-container\">\n <IconComponent\n className={classNames('btn-icon__icon', iconClassNames)}\n icon={icon}\n src={src}\n />\n </span>\n </button>\n );\n});\n\nIconButton.defaultProps = {\n iconAs: undefined,\n src: null,\n icon: undefined,\n iconClassNames: undefined,\n className: undefined,\n invertColors: false,\n variant: 'primary',\n size: 'md',\n onClick: () => {},\n isActive: false,\n};\n\nIconButton.propTypes = {\n /** A custom class name. */\n className: PropTypes.string,\n /** Component that renders the icon, currently defaults to `FontAwesomeIcon`,\n * but is going to be deprecated soon, please use Paragon's icons instead. */\n iconAs: PropTypes.elementType,\n /** An icon component to render. Example import of a Paragon icon component:\n * `import { Check } from '@edx/paragon/dist/icon';`\n * */\n src: PropTypes.oneOfType([PropTypes.element, PropTypes.elementType]),\n /** Alt text for your icon. For best practice, avoid using alt text to describe\n * the image in the `IconButton`. Instead, we recommend describing the function\n * of the button. */\n alt: PropTypes.string.isRequired,\n /** Changes icon styles for dark background */\n invertColors: PropTypes.bool,\n /** Accepts a React fontawesome icon. */\n icon: PropTypes.shape({\n prefix: PropTypes.string,\n iconName: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n icon: PropTypes.array,\n }),\n /** Extra class names that will be added to the icon */\n iconClassNames: PropTypes.string,\n /** Click handler for the button */\n onClick: PropTypes.func,\n /** Type of button (uses Bootstrap options) */\n variant: PropTypes.oneOf(['primary', 'secondary', 'success', 'warning', 'danger', 'light', 'dark', 'black', 'brand']),\n /** size of button to render */\n size: PropTypes.oneOf(['sm', 'md', 'inline']),\n /** whether to show the `IconButton` in an active state, whose styling is distinct from default state */\n isActive: PropTypes.bool,\n};\n\n/**\n *\n * @param { object } args Arguments\n * @param { string } args.tooltipPlacement choose from https://popper.js.org/docs/v2/constructors/#options\n * @param { React.Component } args.tooltipContent any content to pass to tooltip content area\n * @returns { IconButton } a button wrapped in overlaytrigger\n */\nfunction IconButtonWithTooltip({\n tooltipPlacement, tooltipContent, variant, invertColors, ...props\n}) {\n const invert = invertColors ? 'inverse-' : '';\n return (\n <OverlayTrigger\n placement={tooltipPlacement}\n overlay={(\n <Tooltip\n id={`iconbutton-tooltip-${tooltipPlacement}`}\n variant={invert ? 'light' : ''}\n >\n {tooltipContent}\n </Tooltip>\n )}\n >\n <IconButton variant={variant} invertColors={invertColors} {...props} />\n </OverlayTrigger>\n );\n}\n\nIconButtonWithTooltip.defaultProps = {\n tooltipPlacement: 'top',\n variant: 'primary',\n invertColors: false,\n};\n\nIconButtonWithTooltip.propTypes = {\n /** tooltip placement can be top, left, right etc, per https://popper.js.org/docs/v2/constructors/#options */\n tooltipPlacement: PropTypes.string,\n /** any valid JSX or text to be rendered as tooltip contents */\n tooltipContent: PropTypes.node.isRequired,\n /** Type of button (uses Bootstrap options) */\n variant: PropTypes.oneOf(['primary', 'secondary', 'success', 'warning', 'danger', 'light', 'dark', 'black', 'brand']),\n /** Changes icon styles for dark background */\n invertColors: PropTypes.bool,\n};\n\nIconButton.IconButtonWithTooltip = IconButtonWithTooltip;\n\nexport default IconButton;\nexport { IconButtonWithTooltip };\n"],"mappings":"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"}
@@ -12,28 +12,28 @@ import PropTypes from 'prop-types';
12
12
  * @returns {React.Component} A React component
13
13
  */
14
14
  function IconButtonToggle(_ref) {
15
- let {
16
- activeValue,
17
- onChange,
18
- children
19
- } = _ref;
20
- const iconButtons = useMemo(() => React.Children.map(children, iconButton => {
21
- const isActive = iconButton.props.value === activeValue;
22
- return /*#__PURE__*/React.cloneElement(iconButton, {
23
- onClick: () => {
24
- onChange(iconButton.props.value);
25
- },
26
- isActive,
27
- 'aria-selected': isActive,
28
- 'data-testid': `icon-btn-val-${iconButton.props.value}`
15
+ var activeValue = _ref.activeValue,
16
+ onChange = _ref.onChange,
17
+ children = _ref.children;
18
+ var iconButtons = useMemo(function () {
19
+ return React.Children.map(children, function (iconButton) {
20
+ var isActive = iconButton.props.value === activeValue;
21
+ return /*#__PURE__*/React.cloneElement(iconButton, {
22
+ onClick: function onClick() {
23
+ onChange(iconButton.props.value);
24
+ },
25
+ isActive: isActive,
26
+ 'aria-selected': isActive,
27
+ 'data-testid': "icon-btn-val-".concat(iconButton.props.value)
28
+ });
29
29
  });
30
- }), [children, activeValue, onChange]);
30
+ }, [children, activeValue, onChange]);
31
31
  return /*#__PURE__*/React.createElement("div", {
32
32
  className: "pgn__icon-button-toggle__container"
33
33
  }, iconButtons);
34
34
  }
35
35
  IconButtonToggle.defaultProps = {
36
- onChange: () => {},
36
+ onChange: function onChange() {},
37
37
  activeValue: undefined
38
38
  };
39
39
  IconButtonToggle.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useMemo","PropTypes","IconButtonToggle","_ref","activeValue","onChange","children","iconButtons","Children","map","iconButton","isActive","props","value","cloneElement","onClick","createElement","className","defaultProps","undefined","propTypes","string","func","node","isRequired"],"sources":["../../src/IconButtonToggle/index.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n *\n * @param {object} args arguments\n * @param {boolean} args.activeValue the current value of the active/selected iconButton.\n * if not provided, none of the iconButtons will initially be active\n * @param {Function} args.onChange callback to call when toggle value changes.\n * Receives value of the selected toggle button.\n * @param {Array<IconButton>} args.children children components expected to be IconButton\n * @returns {React.Component} A React component\n */\nfunction IconButtonToggle({ activeValue, onChange, children }) {\n const iconButtons = useMemo(\n () => React.Children.map(children, iconButton => {\n const isActive = iconButton.props.value === activeValue;\n return React.cloneElement(iconButton, {\n onClick: () => { onChange(iconButton.props.value); },\n isActive,\n 'aria-selected': isActive,\n 'data-testid': `icon-btn-val-${iconButton.props.value}`,\n });\n }),\n [children, activeValue, onChange],\n );\n return <div className=\"pgn__icon-button-toggle__container\">{iconButtons}</div>;\n}\n\nIconButtonToggle.defaultProps = {\n onChange: () => {},\n activeValue: undefined,\n};\n\nIconButtonToggle.propTypes = {\n /** value to use to check which button to set to active */\n activeValue: PropTypes.string,\n /** handler that is passed the currently active button's value when a button is selected */\n onChange: PropTypes.func,\n /** child nodes of type `IconButton` (or its subcomponents) to be rendered within toggle group */\n children: PropTypes.node.isRequired,\n};\n\nexport default IconButtonToggle;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,OAAOC,SAAS,MAAM,YAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CAAAC,IAAA,EAAsC;EAAA,IAArC;IAAEC,WAAW;IAAEC,QAAQ;IAAEC;EAAS,CAAC,GAAAH,IAAA;EAC3D,MAAMI,WAAW,GAAGP,OAAO,CACzB,MAAMD,KAAK,CAACS,QAAQ,CAACC,GAAG,CAACH,QAAQ,EAAEI,UAAU,IAAI;IAC/C,MAAMC,QAAQ,GAAGD,UAAU,CAACE,KAAK,CAACC,KAAK,KAAKT,WAAW;IACvD,oBAAOL,KAAK,CAACe,YAAY,CAACJ,UAAU,EAAE;MACpCK,OAAO,EAAEA,CAAA,KAAM;QAAEV,QAAQ,CAACK,UAAU,CAACE,KAAK,CAACC,KAAK,CAAC;MAAE,CAAC;MACpDF,QAAQ;MACR,eAAe,EAAEA,QAAQ;MACzB,aAAa,EAAG,gBAAeD,UAAU,CAACE,KAAK,CAACC,KAAM;IACxD,CAAC,CAAC;EACJ,CAAC,CAAC,EACF,CAACP,QAAQ,EAAEF,WAAW,EAAEC,QAAQ,CAClC,CAAC;EACD,oBAAON,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAC;EAAoC,GAAEV,WAAiB,CAAC;AAChF;AAEAL,gBAAgB,CAACgB,YAAY,GAAG;EAC9Bb,QAAQ,EAAEA,CAAA,KAAM,CAAC,CAAC;EAClBD,WAAW,EAAEe;AACf,CAAC;AAEDjB,gBAAgB,CAACkB,SAAS,GAAG;EAC3B;EACAhB,WAAW,EAAEH,SAAS,CAACoB,MAAM;EAC7B;EACAhB,QAAQ,EAAEJ,SAAS,CAACqB,IAAI;EACxB;EACAhB,QAAQ,EAAEL,SAAS,CAACsB,IAAI,CAACC;AAC3B,CAAC;AAED,eAAetB,gBAAgB"}
1
+ {"version":3,"file":"index.js","names":["React","useMemo","PropTypes","IconButtonToggle","_ref","activeValue","onChange","children","iconButtons","Children","map","iconButton","isActive","props","value","cloneElement","onClick","concat","createElement","className","defaultProps","undefined","propTypes","string","func","node","isRequired"],"sources":["../../src/IconButtonToggle/index.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n *\n * @param {object} args arguments\n * @param {boolean} args.activeValue the current value of the active/selected iconButton.\n * if not provided, none of the iconButtons will initially be active\n * @param {Function} args.onChange callback to call when toggle value changes.\n * Receives value of the selected toggle button.\n * @param {Array<IconButton>} args.children children components expected to be IconButton\n * @returns {React.Component} A React component\n */\nfunction IconButtonToggle({ activeValue, onChange, children }) {\n const iconButtons = useMemo(\n () => React.Children.map(children, iconButton => {\n const isActive = iconButton.props.value === activeValue;\n return React.cloneElement(iconButton, {\n onClick: () => { onChange(iconButton.props.value); },\n isActive,\n 'aria-selected': isActive,\n 'data-testid': `icon-btn-val-${iconButton.props.value}`,\n });\n }),\n [children, activeValue, onChange],\n );\n return <div className=\"pgn__icon-button-toggle__container\">{iconButtons}</div>;\n}\n\nIconButtonToggle.defaultProps = {\n onChange: () => {},\n activeValue: undefined,\n};\n\nIconButtonToggle.propTypes = {\n /** value to use to check which button to set to active */\n activeValue: PropTypes.string,\n /** handler that is passed the currently active button's value when a button is selected */\n onChange: PropTypes.func,\n /** child nodes of type `IconButton` (or its subcomponents) to be rendered within toggle group */\n children: PropTypes.node.isRequired,\n};\n\nexport default IconButtonToggle;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,OAAOC,SAAS,MAAM,YAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CAAAC,IAAA,EAAsC;EAAA,IAAnCC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;EACzD,IAAMC,WAAW,GAAGP,OAAO,CACzB;IAAA,OAAMD,KAAK,CAACS,QAAQ,CAACC,GAAG,CAACH,QAAQ,EAAE,UAAAI,UAAU,EAAI;MAC/C,IAAMC,QAAQ,GAAGD,UAAU,CAACE,KAAK,CAACC,KAAK,KAAKT,WAAW;MACvD,oBAAOL,KAAK,CAACe,YAAY,CAACJ,UAAU,EAAE;QACpCK,OAAO,EAAE,SAAAA,QAAA,EAAM;UAAEV,QAAQ,CAACK,UAAU,CAACE,KAAK,CAACC,KAAK,CAAC;QAAE,CAAC;QACpDF,QAAQ,EAARA,QAAQ;QACR,eAAe,EAAEA,QAAQ;QACzB,aAAa,kBAAAK,MAAA,CAAkBN,UAAU,CAACE,KAAK,CAACC,KAAK;MACvD,CAAC,CAAC;IACJ,CAAC,CAAC;EAAA,GACF,CAACP,QAAQ,EAAEF,WAAW,EAAEC,QAAQ,CAClC,CAAC;EACD,oBAAON,KAAA,CAAAkB,aAAA;IAAKC,SAAS,EAAC;EAAoC,GAAEX,WAAiB,CAAC;AAChF;AAEAL,gBAAgB,CAACiB,YAAY,GAAG;EAC9Bd,QAAQ,EAAE,SAAAA,SAAA,EAAM,CAAC,CAAC;EAClBD,WAAW,EAAEgB;AACf,CAAC;AAEDlB,gBAAgB,CAACmB,SAAS,GAAG;EAC3B;EACAjB,WAAW,EAAEH,SAAS,CAACqB,MAAM;EAC7B;EACAjB,QAAQ,EAAEJ,SAAS,CAACsB,IAAI;EACxB;EACAjB,QAAQ,EAAEL,SAAS,CAACuB,IAAI,CAACC;AAC3B,CAAC;AAED,eAAevB,gBAAgB"}