@openedx/paragon 23.14.1 → 23.14.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 (399) hide show
  1. package/README.md +80 -14
  2. package/dist/ActionRow/index.d.ts +18 -0
  3. package/dist/ActionRow/index.js +6 -24
  4. package/dist/ActionRow/index.js.map +1 -1
  5. package/dist/Alert/index.js +21 -24
  6. package/dist/Alert/index.js.map +1 -1
  7. package/dist/Annotation/index.d.ts +13 -0
  8. package/dist/Annotation/index.js +11 -30
  9. package/dist/Annotation/index.js.map +1 -1
  10. package/dist/Avatar/index.d.ts +11 -0
  11. package/dist/Avatar/index.js +7 -21
  12. package/dist/Avatar/index.js.map +1 -1
  13. package/dist/AvatarButton/index.d.ts +17 -0
  14. package/dist/AvatarButton/index.js +11 -33
  15. package/dist/AvatarButton/index.js.map +1 -1
  16. package/dist/Breadcrumb/BreadcrumbLink.js +5 -6
  17. package/dist/Breadcrumb/BreadcrumbLink.js.map +1 -1
  18. package/dist/Breadcrumb/index.js +11 -12
  19. package/dist/Breadcrumb/index.js.map +1 -1
  20. package/dist/Bubble/index.d.ts +6 -2
  21. package/dist/Bubble/index.js +14 -39
  22. package/dist/Bubble/index.js.map +1 -1
  23. package/dist/Button/index.d.ts +42 -7
  24. package/dist/Button/index.js +43 -115
  25. package/dist/Button/index.js.map +1 -1
  26. package/dist/Card/BaseCard.js +11 -12
  27. package/dist/Card/BaseCard.js.map +1 -1
  28. package/dist/Card/CardBody.js +9 -12
  29. package/dist/Card/CardBody.js.map +1 -1
  30. package/dist/Card/CardCarousel/CardCarousel.js +13 -14
  31. package/dist/Card/CardCarousel/CardCarousel.js.map +1 -1
  32. package/dist/Card/CardCarousel/CardCarouselHeader.js +4 -5
  33. package/dist/Card/CardCarousel/CardCarouselHeader.js.map +1 -1
  34. package/dist/Card/CardCarousel/CardCarouselItems.js +3 -4
  35. package/dist/Card/CardCarousel/CardCarouselItems.js.map +1 -1
  36. package/dist/Card/CardCarousel/CardCarouselProvider.js +7 -8
  37. package/dist/Card/CardCarousel/CardCarouselProvider.js.map +1 -1
  38. package/dist/Card/CardCarousel/CardCarouselSubtitle.js +5 -6
  39. package/dist/Card/CardCarousel/CardCarouselSubtitle.js.map +1 -1
  40. package/dist/Card/CardCarousel/CardCarouselTitle.js +5 -6
  41. package/dist/Card/CardCarousel/CardCarouselTitle.js.map +1 -1
  42. package/dist/Card/CardCarousel/messages.d.ts +13 -0
  43. package/dist/Card/CardCarousel/messages.js +4 -5
  44. package/dist/Card/CardCarousel/messages.js.map +1 -0
  45. package/dist/Card/CardContext.js +6 -7
  46. package/dist/Card/CardContext.js.map +1 -1
  47. package/dist/Card/CardDeck.js +9 -10
  48. package/dist/Card/CardDeck.js.map +1 -1
  49. package/dist/Card/CardDivider.js +8 -11
  50. package/dist/Card/CardDivider.js.map +1 -1
  51. package/dist/Card/CardFooter.js +9 -10
  52. package/dist/Card/CardFooter.js.map +1 -1
  53. package/dist/Card/CardGrid.js +6 -7
  54. package/dist/Card/CardGrid.js.map +1 -1
  55. package/dist/Card/CardHeader.js +9 -10
  56. package/dist/Card/CardHeader.js.map +1 -1
  57. package/dist/Card/CardImageCap.js +15 -16
  58. package/dist/Card/CardImageCap.js.map +1 -1
  59. package/dist/Card/CardSection.js +9 -10
  60. package/dist/Card/CardSection.js.map +1 -1
  61. package/dist/Card/CardStatus.js +9 -10
  62. package/dist/Card/CardStatus.js.map +1 -1
  63. package/dist/Card/index.js +9 -10
  64. package/dist/Card/index.js.map +1 -1
  65. package/dist/Chip/ChipIcon.js +8 -9
  66. package/dist/Chip/ChipIcon.js.map +1 -1
  67. package/dist/Chip/index.d.ts +22 -0
  68. package/dist/Chip/index.js +15 -70
  69. package/dist/Chip/index.js.map +1 -1
  70. package/dist/ChipCarousel/index.js +49 -53
  71. package/dist/ChipCarousel/index.js.map +1 -1
  72. package/dist/ChipCarousel/messages.d.ts +13 -0
  73. package/dist/ChipCarousel/messages.js +4 -5
  74. package/dist/ChipCarousel/messages.js.map +1 -0
  75. package/dist/CloseButton/index.js.map +1 -1
  76. package/dist/Collapse/index.js.map +1 -1
  77. package/dist/Collapsible/CollapsibleBody.js +6 -7
  78. package/dist/Collapsible/CollapsibleBody.js.map +1 -1
  79. package/dist/Collapsible/CollapsibleTrigger.js +9 -10
  80. package/dist/Collapsible/CollapsibleTrigger.js.map +1 -1
  81. package/dist/Collapsible/CollapsibleVisible.js +5 -6
  82. package/dist/Collapsible/CollapsibleVisible.js.map +1 -1
  83. package/dist/ColorPicker/index.js +6 -7
  84. package/dist/ColorPicker/index.js.map +1 -1
  85. package/dist/Container/index.js +9 -12
  86. package/dist/Container/index.js.map +1 -1
  87. package/dist/DataTable/BulkActions.js +4 -5
  88. package/dist/DataTable/BulkActions.js.map +1 -1
  89. package/dist/DataTable/CardView.js +16 -18
  90. package/dist/DataTable/CardView.js.map +1 -1
  91. package/dist/DataTable/CollapsibleButtonGroup.js +5 -6
  92. package/dist/DataTable/CollapsibleButtonGroup.js.map +1 -1
  93. package/dist/DataTable/DataTableLayout.js +5 -6
  94. package/dist/DataTable/DataTableLayout.js.map +1 -1
  95. package/dist/DataTable/DropdownFilters.js +7 -2
  96. package/dist/DataTable/DropdownFilters.js.map +1 -1
  97. package/dist/DataTable/EmptyTable.js +5 -6
  98. package/dist/DataTable/EmptyTable.js.map +1 -1
  99. package/dist/DataTable/ExpandAll.js +4 -5
  100. package/dist/DataTable/ExpandAll.js.map +1 -1
  101. package/dist/DataTable/ExpandRow.js +3 -4
  102. package/dist/DataTable/ExpandRow.js.map +1 -1
  103. package/dist/DataTable/FilterStatus.js +8 -9
  104. package/dist/DataTable/FilterStatus.js.map +1 -1
  105. package/dist/DataTable/RowStatus.js +4 -5
  106. package/dist/DataTable/RowStatus.js.map +1 -1
  107. package/dist/DataTable/SidebarFilters.js +3 -4
  108. package/dist/DataTable/SidebarFilters.js.map +1 -1
  109. package/dist/DataTable/Table.js +3 -4
  110. package/dist/DataTable/Table.js.map +1 -1
  111. package/dist/DataTable/TableActions.js +3 -4
  112. package/dist/DataTable/TableActions.js.map +1 -1
  113. package/dist/DataTable/TableCell.js +5 -6
  114. package/dist/DataTable/TableCell.js.map +1 -1
  115. package/dist/DataTable/TableControlBar.js +3 -4
  116. package/dist/DataTable/TableControlBar.js.map +1 -1
  117. package/dist/DataTable/TableFilters.js +6 -7
  118. package/dist/DataTable/TableFilters.js.map +1 -1
  119. package/dist/DataTable/TableFooter.js +4 -5
  120. package/dist/DataTable/TableFooter.js.map +1 -1
  121. package/dist/DataTable/TableHeaderCell.js +13 -15
  122. package/dist/DataTable/TableHeaderCell.js.map +1 -1
  123. package/dist/DataTable/TableHeaderRow.js +3 -4
  124. package/dist/DataTable/TableHeaderRow.js.map +1 -1
  125. package/dist/DataTable/TableRow.js +3 -4
  126. package/dist/DataTable/TableRow.js.map +1 -1
  127. package/dist/DataTable/filters/CheckboxFilter.js +25 -29
  128. package/dist/DataTable/filters/CheckboxFilter.js.map +1 -1
  129. package/dist/DataTable/filters/DropdownFilter.js +16 -20
  130. package/dist/DataTable/filters/DropdownFilter.js.map +1 -1
  131. package/dist/DataTable/filters/MultiSelectDropdownFilter.js +25 -29
  132. package/dist/DataTable/filters/MultiSelectDropdownFilter.js.map +1 -1
  133. package/dist/DataTable/filters/TextFilter.js +8 -9
  134. package/dist/DataTable/filters/TextFilter.js.map +1 -1
  135. package/dist/DataTable/hooks.js +11 -13
  136. package/dist/DataTable/hooks.js.map +1 -1
  137. package/dist/DataTable/index.js +42 -36
  138. package/dist/DataTable/index.js.map +1 -1
  139. package/dist/DataTable/messages.d.ts +13 -0
  140. package/dist/DataTable/messages.js +7 -3
  141. package/dist/DataTable/messages.js.map +1 -0
  142. package/dist/DataTable/selection/BaseSelectionStatus.js +11 -12
  143. package/dist/DataTable/selection/BaseSelectionStatus.js.map +1 -1
  144. package/dist/DataTable/selection/ControlledSelect.js +3 -4
  145. package/dist/DataTable/selection/ControlledSelect.js.map +1 -1
  146. package/dist/DataTable/selection/ControlledSelectHeader.js +3 -4
  147. package/dist/DataTable/selection/ControlledSelectHeader.js.map +1 -1
  148. package/dist/DataTable/selection/ControlledSelectionStatus.js +4 -5
  149. package/dist/DataTable/selection/ControlledSelectionStatus.js.map +1 -1
  150. package/dist/DataTable/selection/SelectionStatus.js +4 -5
  151. package/dist/DataTable/selection/SelectionStatus.js.map +1 -1
  152. package/dist/DataTable/utils/getVisibleColumns.js +9 -13
  153. package/dist/DataTable/utils/getVisibleColumns.js.map +1 -1
  154. package/dist/Dropdown/index.js +17 -20
  155. package/dist/Dropdown/index.js.map +1 -1
  156. package/dist/Dropzone/DefaultContent.js +5 -6
  157. package/dist/Dropzone/DefaultContent.js.map +1 -1
  158. package/dist/Dropzone/DragError.js +3 -4
  159. package/dist/Dropzone/DragError.js.map +1 -1
  160. package/dist/Dropzone/GenericError.js +4 -5
  161. package/dist/Dropzone/GenericError.js.map +1 -1
  162. package/dist/Dropzone/UploadProgress.js +6 -7
  163. package/dist/Dropzone/UploadProgress.js.map +1 -1
  164. package/dist/Dropzone/index.js +14 -15
  165. package/dist/Dropzone/index.js.map +1 -1
  166. package/dist/Dropzone/messages.d.ts +53 -0
  167. package/dist/Dropzone/messages.js +12 -13
  168. package/dist/Dropzone/messages.js.map +1 -0
  169. package/dist/Fade/index.js.map +1 -1
  170. package/dist/Form/FormAutosuggest.js +18 -20
  171. package/dist/Form/FormAutosuggest.js.map +1 -1
  172. package/dist/Form/FormAutosuggestOption.js +6 -7
  173. package/dist/Form/FormAutosuggestOption.js.map +1 -1
  174. package/dist/Form/FormCheckbox.js +16 -18
  175. package/dist/Form/FormCheckbox.js.map +1 -1
  176. package/dist/Form/FormCheckboxSet.js +11 -12
  177. package/dist/Form/FormCheckboxSet.js.map +1 -1
  178. package/dist/Form/FormCheckboxSetContext.js +9 -10
  179. package/dist/Form/FormCheckboxSetContext.js.map +1 -1
  180. package/dist/Form/FormControl.js +12 -13
  181. package/dist/Form/FormControl.js.map +1 -1
  182. package/dist/Form/FormControlDecorator.js +4 -5
  183. package/dist/Form/FormControlDecorator.js.map +1 -1
  184. package/dist/Form/FormControlDecoratorGroup.js +8 -9
  185. package/dist/Form/FormControlDecoratorGroup.js.map +1 -1
  186. package/dist/Form/FormControlFeedback.js +4 -5
  187. package/dist/Form/FormControlFeedback.js.map +1 -1
  188. package/dist/Form/FormControlFloatingLabel.js +3 -4
  189. package/dist/Form/FormControlFloatingLabel.js.map +1 -1
  190. package/dist/Form/FormControlSet.js +7 -8
  191. package/dist/Form/FormControlSet.js.map +1 -1
  192. package/dist/Form/FormGroup.js +9 -10
  193. package/dist/Form/FormGroup.js.map +1 -1
  194. package/dist/Form/FormGroupContext.js +7 -8
  195. package/dist/Form/FormGroupContext.js.map +1 -1
  196. package/dist/Form/FormLabel.d.ts +2 -11
  197. package/dist/Form/FormLabel.js +5 -15
  198. package/dist/Form/FormLabel.js.map +1 -1
  199. package/dist/Form/FormRadio.js +28 -31
  200. package/dist/Form/FormRadio.js.map +1 -1
  201. package/dist/Form/FormRadioSet.js +11 -12
  202. package/dist/Form/FormRadioSet.js.map +1 -1
  203. package/dist/Form/FormRadioSetContext.js +9 -10
  204. package/dist/Form/FormRadioSetContext.js.map +1 -1
  205. package/dist/Form/FormSwitch.js +25 -29
  206. package/dist/Form/FormSwitch.js.map +1 -1
  207. package/dist/Form/FormText.js +16 -19
  208. package/dist/Form/FormText.js.map +1 -1
  209. package/dist/Form/fieldUtils.js +11 -22
  210. package/dist/Form/fieldUtils.js.map +1 -1
  211. package/dist/Form/useCheckboxSetValues.js +1 -2
  212. package/dist/Form/useCheckboxSetValues.js.map +1 -1
  213. package/dist/Hyperlink/index.js +17 -21
  214. package/dist/Hyperlink/index.js.map +1 -1
  215. package/dist/Icon/index.js +10 -11
  216. package/dist/Icon/index.js.map +1 -1
  217. package/dist/IconButton/index.d.ts +8 -304
  218. package/dist/IconButton/index.js +21 -84
  219. package/dist/IconButton/index.js.map +1 -1
  220. package/dist/IconButtonToggle/index.js +5 -6
  221. package/dist/IconButtonToggle/index.js.map +1 -1
  222. package/dist/Image/index.js.map +1 -1
  223. package/dist/Layout/index.js +4 -5
  224. package/dist/Layout/index.js.map +1 -1
  225. package/dist/Media/index.js.map +1 -1
  226. package/dist/Menu/MenuItem.js +8 -9
  227. package/dist/Menu/MenuItem.js.map +1 -1
  228. package/dist/Menu/SelectMenu.js +8 -9
  229. package/dist/Menu/SelectMenu.js.map +1 -1
  230. package/dist/Menu/index.js +6 -7
  231. package/dist/Menu/index.js.map +1 -1
  232. package/dist/Modal/AlertModal.js +6 -7
  233. package/dist/Modal/AlertModal.js.map +1 -1
  234. package/dist/Modal/FullscreenModal.js +7 -8
  235. package/dist/Modal/FullscreenModal.js.map +1 -1
  236. package/dist/Modal/MarketingModal.js +9 -10
  237. package/dist/Modal/MarketingModal.js.map +1 -1
  238. package/dist/Modal/ModalCloseButton.js +5 -6
  239. package/dist/Modal/ModalCloseButton.js.map +1 -1
  240. package/dist/Modal/ModalContext.js +6 -7
  241. package/dist/Modal/ModalContext.js.map +1 -1
  242. package/dist/Modal/ModalDialog.d.ts +6 -65
  243. package/dist/Modal/ModalDialog.js +16 -81
  244. package/dist/Modal/ModalDialog.js.map +1 -1
  245. package/dist/Modal/ModalDialogBody.js +5 -6
  246. package/dist/Modal/ModalDialogBody.js.map +1 -1
  247. package/dist/Modal/ModalDialogFooter.js +5 -6
  248. package/dist/Modal/ModalDialogFooter.js.map +1 -1
  249. package/dist/Modal/ModalDialogHeader.js +9 -12
  250. package/dist/Modal/ModalDialogHeader.js.map +1 -1
  251. package/dist/Modal/ModalDialogHero.js +5 -6
  252. package/dist/Modal/ModalDialogHero.js.map +1 -1
  253. package/dist/Modal/ModalDialogHeroBackground.js +6 -7
  254. package/dist/Modal/ModalDialogHeroBackground.js.map +1 -1
  255. package/dist/Modal/ModalDialogHeroContent.js +5 -6
  256. package/dist/Modal/ModalDialogHeroContent.js.map +1 -1
  257. package/dist/Modal/ModalDialogTitle.js +5 -6
  258. package/dist/Modal/ModalDialogTitle.js.map +1 -1
  259. package/dist/Modal/ModalLayer.d.ts +0 -25
  260. package/dist/Modal/ModalLayer.js +13 -35
  261. package/dist/Modal/ModalLayer.js.map +1 -1
  262. package/dist/Modal/ModalPopup.js +11 -12
  263. package/dist/Modal/ModalPopup.js.map +1 -1
  264. package/dist/Modal/PopperElement.js +7 -8
  265. package/dist/Modal/PopperElement.js.map +1 -1
  266. package/dist/Modal/StandardModal.js +7 -8
  267. package/dist/Modal/StandardModal.js.map +1 -1
  268. package/dist/OverflowScroll/OverflowScroll.js +12 -13
  269. package/dist/OverflowScroll/OverflowScroll.js.map +1 -1
  270. package/dist/OverflowScroll/OverflowScrollItems.js +3 -4
  271. package/dist/OverflowScroll/OverflowScrollItems.js.map +1 -1
  272. package/dist/Overlay/index.d.ts +2 -2
  273. package/dist/PageBanner/index.js +9 -10
  274. package/dist/PageBanner/index.js.map +1 -1
  275. package/dist/Pagination/PaginationContext.js +12 -13
  276. package/dist/Pagination/PaginationContext.js.map +1 -1
  277. package/dist/Pagination/subcomponents/PageButton.js +3 -4
  278. package/dist/Pagination/subcomponents/PageButton.js.map +1 -1
  279. package/dist/Popover/index.js +11 -14
  280. package/dist/Popover/index.js.map +1 -1
  281. package/dist/ProductTour/Checkpoint.js +12 -13
  282. package/dist/ProductTour/Checkpoint.js.map +1 -1
  283. package/dist/ProductTour/CheckpointActionRow.js +10 -11
  284. package/dist/ProductTour/CheckpointActionRow.js.map +1 -1
  285. package/dist/ProductTour/CheckpointBody.js +3 -4
  286. package/dist/ProductTour/CheckpointBody.js.map +1 -1
  287. package/dist/ProductTour/CheckpointHeader.js +7 -8
  288. package/dist/ProductTour/CheckpointHeader.js.map +1 -1
  289. package/dist/ProductTour/CheckpointTitle.js +6 -9
  290. package/dist/ProductTour/CheckpointTitle.js.map +1 -1
  291. package/dist/ProductTour/index.js +3 -4
  292. package/dist/ProductTour/index.js.map +1 -1
  293. package/dist/ProductTour/messages.d.ts +23 -0
  294. package/dist/ProductTour/messages.js +6 -7
  295. package/dist/ProductTour/messages.js.map +1 -0
  296. package/dist/ProgressBar/index.js +11 -12
  297. package/dist/ProgressBar/index.js.map +1 -1
  298. package/dist/ResponsiveEmbed/index.js.map +1 -1
  299. package/dist/Scrollable/index.js +4 -5
  300. package/dist/Scrollable/index.js.map +1 -1
  301. package/dist/SearchField/SearchFieldLabel.js +4 -5
  302. package/dist/SearchField/SearchFieldLabel.js.map +1 -1
  303. package/dist/SelectableBox/SelectableBoxSet.js +13 -14
  304. package/dist/SelectableBox/SelectableBoxSet.js.map +1 -1
  305. package/dist/SelectableBox/index.js +14 -15
  306. package/dist/SelectableBox/index.js.map +1 -1
  307. package/dist/Skeleton/index.js.map +1 -1
  308. package/dist/Spinner/index.d.ts +11 -0
  309. package/dist/Spinner/index.js +6 -17
  310. package/dist/Spinner/index.js.map +1 -1
  311. package/dist/Stack/index.js +12 -15
  312. package/dist/Stack/index.js.map +1 -1
  313. package/dist/StatefulButton/index.js +9 -10
  314. package/dist/StatefulButton/index.js.map +1 -1
  315. package/dist/Stepper/Stepper.js +4 -5
  316. package/dist/Stepper/Stepper.js.map +1 -1
  317. package/dist/Stepper/StepperActionRow.js +6 -7
  318. package/dist/Stepper/StepperActionRow.js.map +1 -1
  319. package/dist/Stepper/StepperContext.js +4 -5
  320. package/dist/Stepper/StepperContext.js.map +1 -1
  321. package/dist/Stepper/StepperHeader.js +23 -31
  322. package/dist/Stepper/StepperHeader.js.map +1 -1
  323. package/dist/Stepper/StepperHeaderStep.js +8 -9
  324. package/dist/Stepper/StepperHeaderStep.js.map +1 -1
  325. package/dist/Stepper/StepperStep.js +10 -11
  326. package/dist/Stepper/StepperStep.js.map +1 -1
  327. package/dist/Sticky/index.js +8 -12
  328. package/dist/Sticky/index.js.map +1 -1
  329. package/dist/Tabs/index.js +8 -9
  330. package/dist/Tabs/index.js.map +1 -1
  331. package/dist/Toast/ToastContainer.js +3 -4
  332. package/dist/Toast/ToastContainer.js.map +1 -1
  333. package/dist/Toast/index.d.ts +20 -41
  334. package/dist/Toast/index.js +11 -48
  335. package/dist/Toast/index.js.map +1 -1
  336. package/dist/ToggleButton/index.js.map +1 -1
  337. package/dist/Tooltip/index.js +11 -14
  338. package/dist/Tooltip/index.js.map +1 -1
  339. package/dist/Truncate/index.js +9 -10
  340. package/dist/Truncate/index.js.map +1 -1
  341. package/dist/asInput/index.js +9 -13
  342. package/dist/asInput/index.js.map +1 -1
  343. package/dist/hooks/useArrowKeyNavigationHook.js +17 -21
  344. package/dist/hooks/useArrowKeyNavigationHook.js.map +1 -1
  345. package/dist/hooks/useIsVisibleHook.js +4 -6
  346. package/dist/hooks/useIsVisibleHook.js.map +1 -1
  347. package/dist/hooks/useToggleHook.js +1 -3
  348. package/dist/hooks/useToggleHook.js.map +1 -1
  349. package/dist/index.d.ts +5 -5
  350. package/dist/index.js +5 -10
  351. package/dist/index.js.map +1 -1
  352. package/dist/theme-urls.json +6 -6
  353. package/dist/utils/newId.js +1 -2
  354. package/dist/utils/newId.js.map +1 -1
  355. package/package.json +2 -2
  356. package/src/ActionRow/{index.jsx → index.tsx} +14 -22
  357. package/src/Annotation/{index.jsx → index.tsx} +15 -22
  358. package/src/Avatar/{index.jsx → index.tsx} +13 -19
  359. package/src/AvatarButton/{index.jsx → index.tsx} +23 -31
  360. package/src/Bubble/index.tsx +12 -32
  361. package/src/Button/index.tsx +68 -93
  362. package/src/Chip/index.tsx +26 -59
  363. package/src/CloseButton/index.tsx +1 -0
  364. package/src/Collapse/index.tsx +1 -0
  365. package/src/DataTable/DropdownFilters.jsx +9 -2
  366. package/src/DataTable/README.md +19 -18
  367. package/src/DataTable/index.jsx +6 -1
  368. package/src/DataTable/{messages.js → messages.ts} +5 -0
  369. package/src/DataTable/tests/DataTable.test.jsx +51 -1
  370. package/src/DataTable/tests/DropdownFilters.test.jsx +11 -7
  371. package/src/Fade/index.tsx +1 -0
  372. package/src/Form/FormLabel.tsx +2 -10
  373. package/src/IconButton/index.tsx +17 -81
  374. package/src/Image/index.tsx +2 -0
  375. package/src/Media/index.tsx +1 -0
  376. package/src/Modal/ModalDialog.tsx +6 -66
  377. package/src/Modal/ModalLayer.tsx +0 -22
  378. package/src/Modal/modal-popup.mdx +1 -1
  379. package/src/ProductTour/ProductTour.test.jsx +0 -1
  380. package/src/ResponsiveEmbed/index.tsx +1 -0
  381. package/src/Skeleton/index.tsx +1 -0
  382. package/src/Spinner/{index.jsx → index.tsx} +10 -15
  383. package/src/Toast/index.tsx +21 -40
  384. package/src/ToggleButton/index.tsx +2 -0
  385. package/src/index.ts +5 -10
  386. /package/{src/CloseButton/index.jsx → dist/CloseButton/index.d.ts} +0 -0
  387. /package/{src/Collapse/index.jsx → dist/Collapse/index.d.ts} +0 -0
  388. /package/{src/Fade/index.jsx → dist/Fade/index.d.ts} +0 -0
  389. /package/{src/Image/index.jsx → dist/Image/index.d.ts} +0 -0
  390. /package/{src/Media/index.jsx → dist/Media/index.d.ts} +0 -0
  391. /package/{src/ResponsiveEmbed/index.jsx → dist/ResponsiveEmbed/index.d.ts} +0 -0
  392. /package/{src/Skeleton/index.jsx → dist/Skeleton/index.d.ts} +0 -0
  393. /package/{src/ToggleButton/index.jsx → dist/ToggleButton/index.d.ts} +0 -0
  394. /package/src/Card/CardCarousel/{messages.js → messages.ts} +0 -0
  395. /package/src/ChipCarousel/{messages.js → messages.ts} +0 -0
  396. /package/src/Dropzone/{messages.js → messages.ts} +0 -0
  397. /package/src/ProductTour/{messages.js → messages.ts} +0 -0
  398. /package/src/Spinner/{Spinner.test.jsx → Spinner.test.tsx} +0 -0
  399. /package/src/Spinner/__snapshots__/{Spinner.test.jsx.snap → Spinner.test.tsx.snap} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"FormSwitch.js","names":["React","PropTypes","classNames","FormCheckbox","useFormGroupContext","SwitchControl","forwardRef","_ref","ref","isIndeterminate","props","defaultRef","useRef","resolvedRef","getControlProps","checkboxProps","className","useEffect","current","indeterminate","createElement","type","propTypes","bool","string","defaultProps","undefined","FormSwitch","_ref2","children","helperText","role","controlAs","isValid","isInvalid","description","node","isRequired","labelClassName","floatLabelLeft"],"sources":["../../src/Form/FormSwitch.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport FormCheckbox from './FormCheckbox';\nimport { useFormGroupContext } from './FormGroupContext';\n\nconst SwitchControl = React.forwardRef(\n ({ isIndeterminate, ...props }, ref) => {\n const defaultRef = React.useRef();\n const resolvedRef = ref || defaultRef;\n const { getControlProps } = useFormGroupContext();\n const checkboxProps = getControlProps({\n ...props,\n className: classNames(\n 'pgn__form-switch-input',\n props.className,\n ),\n });\n\n React.useEffect(() => {\n // this if(resolvedRef.current) prevents console errors in testing\n if (resolvedRef.current) {\n resolvedRef.current.indeterminate = isIndeterminate;\n }\n }, [resolvedRef, isIndeterminate]);\n\n return (\n <input\n type=\"checkbox\"\n {...checkboxProps}\n ref={resolvedRef}\n />\n );\n },\n);\n\nSwitchControl.propTypes = {\n /** Specifies whether input should be rendered in indeterminate state. */\n isIndeterminate: PropTypes.bool,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n};\n\nSwitchControl.defaultProps = {\n isIndeterminate: false,\n className: undefined,\n};\n\nconst FormSwitch = React.forwardRef(({\n children,\n className,\n helperText,\n ...props\n}, ref) => (\n <div className=\"d-inline-flex flex-column\">\n <FormCheckbox\n className={classNames('pgn__form-switch', className)}\n {...props}\n role=\"switch\"\n ref={ref}\n controlAs={SwitchControl}\n // ignore the following props for form switch\n isValid={null}\n isInvalid={null}\n description={null}\n >\n {children}\n </FormCheckbox>\n {helperText && (\n <div className=\"pgn__form-switch-helper-text\">\n {helperText}\n </div>\n )}\n </div>\n));\n\nFormSwitch.propTypes = {\n /** Specifies contents of the component. */\n children: PropTypes.node.isRequired,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n /** Specifies class name to append to the label element. */\n labelClassName: PropTypes.string,\n /** Specifies helper text to display below the switch. */\n helperText: PropTypes.node,\n /** Determines whether the label should float to the left when the switch is active. */\n floatLabelLeft: PropTypes.bool,\n};\n\nFormSwitch.defaultProps = {\n className: undefined,\n labelClassName: undefined,\n helperText: undefined,\n floatLabelLeft: false,\n};\n\nexport { SwitchControl };\nexport default FormSwitch;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,YAAY,MAAM,gBAAgB;AACzC,SAASC,mBAAmB,QAAQ,oBAAoB;AAExD,MAAMC,aAAa,gBAAGL,KAAK,CAACM,UAAU,CACpC,CAAAC,IAAA,EAAgCC,GAAG,KAAK;EAAA,IAAvC;IAAEC,eAAe;IAAE,GAAGC;EAAM,CAAC,GAAAH,IAAA;EAC5B,MAAMI,UAAU,GAAGX,KAAK,CAACY,MAAM,CAAC,CAAC;EACjC,MAAMC,WAAW,GAAGL,GAAG,IAAIG,UAAU;EACrC,MAAM;IAAEG;EAAgB,CAAC,GAAGV,mBAAmB,CAAC,CAAC;EACjD,MAAMW,aAAa,GAAGD,eAAe,CAAC;IACpC,GAAGJ,KAAK;IACRM,SAAS,EAAEd,UAAU,CACnB,wBAAwB,EACxBQ,KAAK,CAACM,SACR;EACF,CAAC,CAAC;EAEFhB,KAAK,CAACiB,SAAS,CAAC,MAAM;IACpB;IACA,IAAIJ,WAAW,CAACK,OAAO,EAAE;MACvBL,WAAW,CAACK,OAAO,CAACC,aAAa,GAAGV,eAAe;IACrD;EACF,CAAC,EAAE,CAACI,WAAW,EAAEJ,eAAe,CAAC,CAAC;EAElC,oBACET,KAAA,CAAAoB,aAAA;IACEC,IAAI,EAAC,UAAU;IAAA,GACXN,aAAa;IACjBP,GAAG,EAAEK;EAAY,CAClB,CAAC;AAEN,CACF,CAAC;AAEDR,aAAa,CAACiB,SAAS,GAAG;EACxB;EACAb,eAAe,EAAER,SAAS,CAACsB,IAAI;EAC/B;EACAP,SAAS,EAAEf,SAAS,CAACuB;AACvB,CAAC;AAEDnB,aAAa,CAACoB,YAAY,GAAG;EAC3BhB,eAAe,EAAE,KAAK;EACtBO,SAAS,EAAEU;AACb,CAAC;AAED,MAAMC,UAAU,gBAAG3B,KAAK,CAACM,UAAU,CAAC,CAAAsB,KAAA,EAKjCpB,GAAG;EAAA,IAL+B;IACnCqB,QAAQ;IACRb,SAAS;IACTc,UAAU;IACV,GAAGpB;EACL,CAAC,GAAAkB,KAAA;EAAA,oBACC5B,KAAA,CAAAoB,aAAA;IAAKJ,SAAS,EAAC;EAA2B,gBACxChB,KAAA,CAAAoB,aAAA,CAACjB,YAAY;IACXa,SAAS,EAAEd,UAAU,CAAC,kBAAkB,EAAEc,SAAS,CAAE;IAAA,GACjDN,KAAK;IACTqB,IAAI,EAAC,QAAQ;IACbvB,GAAG,EAAEA,GAAI;IACTwB,SAAS,EAAE3B;IACX;IAAA;IACA4B,OAAO,EAAE,IAAK;IACdC,SAAS,EAAE,IAAK;IAChBC,WAAW,EAAE;EAAK,GAEjBN,QACW,CAAC,EACdC,UAAU,iBACT9B,KAAA,CAAAoB,aAAA;IAAKJ,SAAS,EAAC;EAA8B,GAC1Cc,UACE,CAEJ,CAAC;AAAA,CACP,CAAC;AAEFH,UAAU,CAACL,SAAS,GAAG;EACrB;EACAO,QAAQ,EAAE5B,SAAS,CAACmC,IAAI,CAACC,UAAU;EACnC;EACArB,SAAS,EAAEf,SAAS,CAACuB,MAAM;EAC3B;EACAc,cAAc,EAAErC,SAAS,CAACuB,MAAM;EAChC;EACAM,UAAU,EAAE7B,SAAS,CAACmC,IAAI;EAC1B;EACAG,cAAc,EAAEtC,SAAS,CAACsB;AAC5B,CAAC;AAEDI,UAAU,CAACF,YAAY,GAAG;EACxBT,SAAS,EAAEU,SAAS;EACpBY,cAAc,EAAEZ,SAAS;EACzBI,UAAU,EAAEJ,SAAS;EACrBa,cAAc,EAAE;AAClB,CAAC;AAED,SAASlC,aAAa;AACtB,eAAesB,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"FormSwitch.js","names":["React","PropTypes","classNames","FormCheckbox","useFormGroupContext","SwitchControl","forwardRef","isIndeterminate","props","ref","defaultRef","useRef","resolvedRef","getControlProps","checkboxProps","className","useEffect","current","indeterminate","createElement","type","propTypes","bool","string","defaultProps","undefined","FormSwitch","children","helperText","role","controlAs","isValid","isInvalid","description","node","isRequired","labelClassName","floatLabelLeft"],"sources":["../../src/Form/FormSwitch.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport FormCheckbox from './FormCheckbox';\nimport { useFormGroupContext } from './FormGroupContext';\n\nconst SwitchControl = React.forwardRef(\n ({ isIndeterminate, ...props }, ref) => {\n const defaultRef = React.useRef();\n const resolvedRef = ref || defaultRef;\n const { getControlProps } = useFormGroupContext();\n const checkboxProps = getControlProps({\n ...props,\n className: classNames(\n 'pgn__form-switch-input',\n props.className,\n ),\n });\n\n React.useEffect(() => {\n // this if(resolvedRef.current) prevents console errors in testing\n if (resolvedRef.current) {\n resolvedRef.current.indeterminate = isIndeterminate;\n }\n }, [resolvedRef, isIndeterminate]);\n\n return (\n <input\n type=\"checkbox\"\n {...checkboxProps}\n ref={resolvedRef}\n />\n );\n },\n);\n\nSwitchControl.propTypes = {\n /** Specifies whether input should be rendered in indeterminate state. */\n isIndeterminate: PropTypes.bool,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n};\n\nSwitchControl.defaultProps = {\n isIndeterminate: false,\n className: undefined,\n};\n\nconst FormSwitch = React.forwardRef(({\n children,\n className,\n helperText,\n ...props\n}, ref) => (\n <div className=\"d-inline-flex flex-column\">\n <FormCheckbox\n className={classNames('pgn__form-switch', className)}\n {...props}\n role=\"switch\"\n ref={ref}\n controlAs={SwitchControl}\n // ignore the following props for form switch\n isValid={null}\n isInvalid={null}\n description={null}\n >\n {children}\n </FormCheckbox>\n {helperText && (\n <div className=\"pgn__form-switch-helper-text\">\n {helperText}\n </div>\n )}\n </div>\n));\n\nFormSwitch.propTypes = {\n /** Specifies contents of the component. */\n children: PropTypes.node.isRequired,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n /** Specifies class name to append to the label element. */\n labelClassName: PropTypes.string,\n /** Specifies helper text to display below the switch. */\n helperText: PropTypes.node,\n /** Determines whether the label should float to the left when the switch is active. */\n floatLabelLeft: PropTypes.bool,\n};\n\nFormSwitch.defaultProps = {\n className: undefined,\n labelClassName: undefined,\n helperText: undefined,\n floatLabelLeft: false,\n};\n\nexport { SwitchControl };\nexport default FormSwitch;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,YAAY,MAAM,gBAAgB;AACzC,SAASC,mBAAmB,QAAQ,oBAAoB;AAExD,MAAMC,aAAa,gBAAGL,KAAK,CAACM,UAAU,CACpC,CAAC;EAAEC,eAAe;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACtC,MAAMC,UAAU,GAAGV,KAAK,CAACW,MAAM,CAAC,CAAC;EACjC,MAAMC,WAAW,GAAGH,GAAG,IAAIC,UAAU;EACrC,MAAM;IAAEG;EAAgB,CAAC,GAAGT,mBAAmB,CAAC,CAAC;EACjD,MAAMU,aAAa,GAAGD,eAAe,CAAC;IACpC,GAAGL,KAAK;IACRO,SAAS,EAAEb,UAAU,CACnB,wBAAwB,EACxBM,KAAK,CAACO,SACR;EACF,CAAC,CAAC;EAEFf,KAAK,CAACgB,SAAS,CAAC,MAAM;IACpB;IACA,IAAIJ,WAAW,CAACK,OAAO,EAAE;MACvBL,WAAW,CAACK,OAAO,CAACC,aAAa,GAAGX,eAAe;IACrD;EACF,CAAC,EAAE,CAACK,WAAW,EAAEL,eAAe,CAAC,CAAC;EAElC,oBACEP,KAAA,CAAAmB,aAAA;IACEC,IAAI,EAAC,UAAU;IAAA,GACXN,aAAa;IACjBL,GAAG,EAAEG;EAAY,CAClB,CAAC;AAEN,CACF,CAAC;AAEDP,aAAa,CAACgB,SAAS,GAAG;EACxB;EACAd,eAAe,EAAEN,SAAS,CAACqB,IAAI;EAC/B;EACAP,SAAS,EAAEd,SAAS,CAACsB;AACvB,CAAC;AAEDlB,aAAa,CAACmB,YAAY,GAAG;EAC3BjB,eAAe,EAAE,KAAK;EACtBQ,SAAS,EAAEU;AACb,CAAC;AAED,MAAMC,UAAU,gBAAG1B,KAAK,CAACM,UAAU,CAAC,CAAC;EACnCqB,QAAQ;EACRZ,SAAS;EACTa,UAAU;EACV,GAAGpB;AACL,CAAC,EAAEC,GAAG,kBACJT,KAAA,CAAAmB,aAAA;EAAKJ,SAAS,EAAC;AAA2B,gBACxCf,KAAA,CAAAmB,aAAA,CAAChB,YAAY;EACXY,SAAS,EAAEb,UAAU,CAAC,kBAAkB,EAAEa,SAAS,CAAE;EAAA,GACjDP,KAAK;EACTqB,IAAI,EAAC,QAAQ;EACbpB,GAAG,EAAEA,GAAI;EACTqB,SAAS,EAAEzB;EACX;EAAA;EACA0B,OAAO,EAAE,IAAK;EACdC,SAAS,EAAE,IAAK;EAChBC,WAAW,EAAE;AAAK,GAEjBN,QACW,CAAC,EACdC,UAAU,iBACT5B,KAAA,CAAAmB,aAAA;EAAKJ,SAAS,EAAC;AAA8B,GAC1Ca,UACE,CAEJ,CACN,CAAC;AAEFF,UAAU,CAACL,SAAS,GAAG;EACrB;EACAM,QAAQ,EAAE1B,SAAS,CAACiC,IAAI,CAACC,UAAU;EACnC;EACApB,SAAS,EAAEd,SAAS,CAACsB,MAAM;EAC3B;EACAa,cAAc,EAAEnC,SAAS,CAACsB,MAAM;EAChC;EACAK,UAAU,EAAE3B,SAAS,CAACiC,IAAI;EAC1B;EACAG,cAAc,EAAEpC,SAAS,CAACqB;AAC5B,CAAC;AAEDI,UAAU,CAACF,YAAY,GAAG;EACxBT,SAAS,EAAEU,SAAS;EACpBW,cAAc,EAAEX,SAAS;EACzBG,UAAU,EAAEH,SAAS;EACrBY,cAAc,EAAE;AAClB,CAAC;AAED,SAAShC,aAAa;AACtB,eAAeqB,UAAU","ignoreList":[]}
@@ -13,11 +13,10 @@ const FORM_TEXT_ICONS = {
13
13
  [FORM_TEXT_TYPES.CRITERIA_VALID]: CheckCircle,
14
14
  [FORM_TEXT_TYPES.CRITERIA_INVALID]: Cancel
15
15
  };
16
- const resolveTextType = _ref => {
17
- let {
18
- isInvalid,
19
- isValid
20
- } = _ref;
16
+ const resolveTextType = ({
17
+ isInvalid,
18
+ isValid
19
+ }) => {
21
20
  if (isValid) {
22
21
  return FORM_TEXT_TYPES.VALID;
23
22
  }
@@ -26,11 +25,10 @@ const resolveTextType = _ref => {
26
25
  }
27
26
  return FORM_TEXT_TYPES.DEFAULT;
28
27
  };
29
- function FormTextIcon(_ref2) {
30
- let {
31
- type,
32
- customIcon
33
- } = _ref2;
28
+ function FormTextIcon({
29
+ type,
30
+ customIcon
31
+ }) {
34
32
  if (customIcon) {
35
33
  return customIcon;
36
34
  }
@@ -50,15 +48,14 @@ FormTextIcon.defaultProps = {
50
48
  type: undefined,
51
49
  customIcon: undefined
52
50
  };
53
- function FormText(_ref3) {
54
- let {
55
- children,
56
- type,
57
- icon,
58
- muted,
59
- hasIcon,
60
- ...props
61
- } = _ref3;
51
+ function FormText({
52
+ children,
53
+ type,
54
+ icon,
55
+ muted,
56
+ hasIcon,
57
+ ...props
58
+ }) {
62
59
  const className = classNames(props.className, 'pgn__form-text', `pgn__form-text-${type}`, {
63
60
  'text-muted': muted
64
61
  });
@@ -1 +1 @@
1
- {"version":3,"file":"FormText.js","names":["React","PropTypes","classNames","Icon","Check","Close","Cancel","CheckCircle","RadioButtonUnchecked","WarningFilled","FORM_TEXT_TYPES","FORM_TEXT_ICONS","DEFAULT","VALID","INVALID","WARNING","CRITERIA_EMPTY","CRITERIA_VALID","CRITERIA_INVALID","resolveTextType","_ref","isInvalid","isValid","FormTextIcon","_ref2","type","customIcon","typeIcon","createElement","src","propTypes","oneOf","Object","values","node","defaultProps","undefined","FormText","_ref3","children","icon","muted","hasIcon","props","className","FORM_TEXT_TYPE_CHOICES","isRequired","string","bool"],"sources":["../../src/Form/FormText.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Icon from '../Icon';\nimport {\n Check, Close, Cancel, CheckCircle, RadioButtonUnchecked, WarningFilled,\n} from '../../icons';\n\nimport { FORM_TEXT_TYPES } from './constants';\n\nconst FORM_TEXT_ICONS = {\n [FORM_TEXT_TYPES.DEFAULT]: null,\n [FORM_TEXT_TYPES.VALID]: Check,\n [FORM_TEXT_TYPES.INVALID]: Close,\n [FORM_TEXT_TYPES.WARNING]: WarningFilled,\n [FORM_TEXT_TYPES.CRITERIA_EMPTY]: RadioButtonUnchecked,\n [FORM_TEXT_TYPES.CRITERIA_VALID]: CheckCircle,\n [FORM_TEXT_TYPES.CRITERIA_INVALID]: Cancel,\n};\n\nconst resolveTextType = ({ isInvalid, isValid }) => {\n if (isValid) {\n return FORM_TEXT_TYPES.VALID;\n }\n if (isInvalid) {\n return FORM_TEXT_TYPES.INVALID;\n }\n return FORM_TEXT_TYPES.DEFAULT;\n};\n\nfunction FormTextIcon({ type, customIcon }) {\n if (customIcon) {\n return customIcon;\n }\n\n const typeIcon = FORM_TEXT_ICONS[type];\n if (typeIcon) {\n return <Icon src={typeIcon} />;\n }\n\n return null;\n}\n\nFormTextIcon.propTypes = {\n type: PropTypes.oneOf(Object.values(FORM_TEXT_TYPES)),\n customIcon: PropTypes.node,\n};\n\nFormTextIcon.defaultProps = {\n type: undefined,\n customIcon: undefined,\n};\n\nfunction FormText({\n children, type, icon, muted, hasIcon, ...props\n}) {\n const className = classNames(\n props.className,\n 'pgn__form-text',\n `pgn__form-text-${type}`,\n {\n 'text-muted': muted,\n },\n );\n\n return (\n <div {...props} className={className}>\n {hasIcon && <FormTextIcon customIcon={icon} type={type} />}\n <div>\n {children}\n </div>\n </div>\n );\n}\n\nconst FORM_TEXT_TYPE_CHOICES = [\n 'default',\n 'valid',\n 'invalid',\n 'warning',\n 'criteria-empty',\n 'criteria-valid',\n 'criteria-invalid',\n];\n\nFormText.propTypes = {\n /** Specifies contents of the component. */\n children: PropTypes.node.isRequired,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n /** Specifies whether to show an icon next to the text. */\n hasIcon: PropTypes.bool,\n /** Specifies text type, this affects styling. */\n type: PropTypes.oneOf(FORM_TEXT_TYPE_CHOICES),\n /** Specifies icon to show, will only be shown if `hasIcon` prop is set to `true`. */\n icon: PropTypes.node,\n /** Specifies whether to show text with muted styling. */\n muted: PropTypes.bool,\n};\n\nFormText.defaultProps = {\n hasIcon: true,\n type: 'default',\n icon: undefined,\n className: undefined,\n muted: false,\n};\n\nexport default FormText;\nexport {\n FORM_TEXT_TYPES,\n FORM_TEXT_ICONS,\n FormTextIcon,\n resolveTextType,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormText.js","names":["React","PropTypes","classNames","Icon","Check","Close","Cancel","CheckCircle","RadioButtonUnchecked","WarningFilled","FORM_TEXT_TYPES","FORM_TEXT_ICONS","DEFAULT","VALID","INVALID","WARNING","CRITERIA_EMPTY","CRITERIA_VALID","CRITERIA_INVALID","resolveTextType","isInvalid","isValid","FormTextIcon","type","customIcon","typeIcon","createElement","src","propTypes","oneOf","Object","values","node","defaultProps","undefined","FormText","children","icon","muted","hasIcon","props","className","FORM_TEXT_TYPE_CHOICES","isRequired","string","bool"],"sources":["../../src/Form/FormText.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Icon from '../Icon';\nimport {\n Check, Close, Cancel, CheckCircle, RadioButtonUnchecked, WarningFilled,\n} from '../../icons';\n\nimport { FORM_TEXT_TYPES } from './constants';\n\nconst FORM_TEXT_ICONS = {\n [FORM_TEXT_TYPES.DEFAULT]: null,\n [FORM_TEXT_TYPES.VALID]: Check,\n [FORM_TEXT_TYPES.INVALID]: Close,\n [FORM_TEXT_TYPES.WARNING]: WarningFilled,\n [FORM_TEXT_TYPES.CRITERIA_EMPTY]: RadioButtonUnchecked,\n [FORM_TEXT_TYPES.CRITERIA_VALID]: CheckCircle,\n [FORM_TEXT_TYPES.CRITERIA_INVALID]: Cancel,\n};\n\nconst resolveTextType = ({ isInvalid, isValid }) => {\n if (isValid) {\n return FORM_TEXT_TYPES.VALID;\n }\n if (isInvalid) {\n return FORM_TEXT_TYPES.INVALID;\n }\n return FORM_TEXT_TYPES.DEFAULT;\n};\n\nfunction FormTextIcon({ type, customIcon }) {\n if (customIcon) {\n return customIcon;\n }\n\n const typeIcon = FORM_TEXT_ICONS[type];\n if (typeIcon) {\n return <Icon src={typeIcon} />;\n }\n\n return null;\n}\n\nFormTextIcon.propTypes = {\n type: PropTypes.oneOf(Object.values(FORM_TEXT_TYPES)),\n customIcon: PropTypes.node,\n};\n\nFormTextIcon.defaultProps = {\n type: undefined,\n customIcon: undefined,\n};\n\nfunction FormText({\n children, type, icon, muted, hasIcon, ...props\n}) {\n const className = classNames(\n props.className,\n 'pgn__form-text',\n `pgn__form-text-${type}`,\n {\n 'text-muted': muted,\n },\n );\n\n return (\n <div {...props} className={className}>\n {hasIcon && <FormTextIcon customIcon={icon} type={type} />}\n <div>\n {children}\n </div>\n </div>\n );\n}\n\nconst FORM_TEXT_TYPE_CHOICES = [\n 'default',\n 'valid',\n 'invalid',\n 'warning',\n 'criteria-empty',\n 'criteria-valid',\n 'criteria-invalid',\n];\n\nFormText.propTypes = {\n /** Specifies contents of the component. */\n children: PropTypes.node.isRequired,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n /** Specifies whether to show an icon next to the text. */\n hasIcon: PropTypes.bool,\n /** Specifies text type, this affects styling. */\n type: PropTypes.oneOf(FORM_TEXT_TYPE_CHOICES),\n /** Specifies icon to show, will only be shown if `hasIcon` prop is set to `true`. */\n icon: PropTypes.node,\n /** Specifies whether to show text with muted styling. */\n muted: PropTypes.bool,\n};\n\nFormText.defaultProps = {\n hasIcon: true,\n type: 'default',\n icon: undefined,\n className: undefined,\n muted: false,\n};\n\nexport default FormText;\nexport {\n FORM_TEXT_TYPES,\n FORM_TEXT_ICONS,\n FormTextIcon,\n resolveTextType,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,30 +1,22 @@
1
1
  import classNames from 'classnames';
2
2
  import { useState, useEffect } from 'react';
3
3
  import { newId } from '../utils';
4
- const omitUndefinedProperties = function () {
5
- let obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
- return Object.entries(obj).reduce((acc, _ref) => {
7
- let [key, value] = _ref;
8
- if (value !== undefined) {
9
- acc[key] = value;
10
- }
11
- return acc;
12
- }, {});
13
- };
14
- const callAllHandlers = function () {
15
- for (var _len = arguments.length, handlers = new Array(_len), _key = 0; _key < _len; _key++) {
16
- handlers[_key] = arguments[_key];
4
+ const omitUndefinedProperties = (obj = {}) => Object.entries(obj).reduce((acc, [key, value]) => {
5
+ if (value !== undefined) {
6
+ acc[key] = value;
17
7
  }
8
+ return acc;
9
+ }, {});
10
+ const callAllHandlers = (...handlers) => {
18
11
  const unifiedEventHandler = event => {
19
12
  handlers.filter(handler => typeof handler === 'function').forEach(handler => handler(event));
20
13
  };
21
14
  return unifiedEventHandler;
22
15
  };
23
- const useHasValue = _ref2 => {
24
- let {
25
- defaultValue,
26
- value
27
- } = _ref2;
16
+ const useHasValue = ({
17
+ defaultValue,
18
+ value
19
+ }) => {
28
20
  const [hasUncontrolledValue, setHasUncontrolledValue] = useState(!!defaultValue || defaultValue === 0);
29
21
  const hasValue = !!value || value === 0 || hasUncontrolledValue;
30
22
  const handleInputEvent = e => setHasUncontrolledValue(!!e.target.value);
@@ -57,10 +49,7 @@ const useIdList = (uniqueIdPrefix, initialList) => {
57
49
  };
58
50
  return [idList, useRegisteredId];
59
51
  };
60
- const mergeAttributeValues = function () {
61
- for (var _len2 = arguments.length, values = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
62
- values[_key2] = arguments[_key2];
63
- }
52
+ const mergeAttributeValues = (...values) => {
64
53
  const mergedValues = classNames(values);
65
54
  return mergedValues || undefined;
66
55
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fieldUtils.js","names":["classNames","useState","useEffect","newId","omitUndefinedProperties","obj","arguments","length","undefined","Object","entries","reduce","acc","_ref","key","value","callAllHandlers","_len","handlers","Array","_key","unifiedEventHandler","event","filter","handler","forEach","useHasValue","_ref2","defaultValue","hasUncontrolledValue","setHasUncontrolledValue","hasValue","handleInputEvent","e","target","useIdList","uniqueIdPrefix","initialList","idList","setIdList","addId","idToAdd","oldIdList","getNewId","removeId","idToRemove","id","useRegisteredId","explicitlyRegisteredId","registeredId","setRegisteredId","mergeAttributeValues","_len2","values","_key2","mergedValues"],"sources":["../../src/Form/fieldUtils.ts"],"sourcesContent":["import classNames from 'classnames';\nimport { useState, useEffect } from 'react';\nimport { newId } from '../utils';\n\nconst omitUndefinedProperties = (obj = {}) => Object.entries(obj)\n .reduce((acc, [key, value]) => {\n if (value !== undefined) {\n acc[key] = value;\n }\n return acc;\n }, {} as Record<string, any>);\n\nconst callAllHandlers = <EventType extends Object>(...handlers: ((event: EventType) => void)[]) => {\n const unifiedEventHandler = (event: EventType) => {\n handlers\n .filter(handler => typeof handler === 'function')\n .forEach(handler => handler(event));\n };\n return unifiedEventHandler;\n};\n\nconst useHasValue = <ValueType>({ defaultValue, value }: { defaultValue?: ValueType, value?: ValueType }) => {\n const [hasUncontrolledValue, setHasUncontrolledValue] = useState(!!defaultValue || defaultValue === 0);\n const hasValue = !!value || value === 0 || hasUncontrolledValue;\n const handleInputEvent = (e: React.ChangeEvent<HTMLInputElement>) => setHasUncontrolledValue(!!e.target.value);\n return [hasValue, handleInputEvent];\n};\n\nconst useIdList = (\n uniqueIdPrefix: string,\n initialList?: string[],\n): [idList: string[], useRegisteredId: (id: string | undefined) => string | undefined] => {\n const [idList, setIdList] = useState(initialList || []);\n const addId = (idToAdd: string) => {\n setIdList(oldIdList => [...oldIdList, idToAdd]);\n return idToAdd;\n };\n const getNewId = () => {\n const idToAdd = newId(`${uniqueIdPrefix}-`);\n return addId(idToAdd);\n };\n const removeId = (idToRemove: string | undefined) => {\n setIdList(oldIdList => oldIdList.filter(id => id !== idToRemove));\n };\n\n const useRegisteredId = (explicitlyRegisteredId: string | undefined) => {\n const [registeredId, setRegisteredId] = useState(explicitlyRegisteredId);\n useEffect(() => {\n if (explicitlyRegisteredId) {\n addId(explicitlyRegisteredId);\n } else if (!registeredId) {\n setRegisteredId(getNewId());\n }\n return () => removeId(registeredId);\n }, [registeredId, explicitlyRegisteredId]);\n return registeredId;\n };\n\n return [idList, useRegisteredId];\n};\n\nconst mergeAttributeValues = (...values: (string | undefined)[]) => {\n const mergedValues = classNames(values);\n return mergedValues || undefined;\n};\n\nexport {\n callAllHandlers,\n useHasValue,\n mergeAttributeValues,\n useIdList,\n omitUndefinedProperties,\n};\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AACnC,SAASC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAC3C,SAASC,KAAK,QAAQ,UAAU;AAEhC,MAAMC,uBAAuB,GAAG,SAAAA,CAAA;EAAA,IAACC,GAAG,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,OAAKG,MAAM,CAACC,OAAO,CAACL,GAAG,CAAC,CAC9DM,MAAM,CAAC,CAACC,GAAG,EAAAC,IAAA,KAAmB;IAAA,IAAjB,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAAF,IAAA;IACxB,IAAIE,KAAK,KAAKP,SAAS,EAAE;MACvBI,GAAG,CAACE,GAAG,CAAC,GAAGC,KAAK;IAClB;IACA,OAAOH,GAAG;EACZ,CAAC,EAAE,CAAC,CAAwB,CAAC;AAAA;AAE/B,MAAMI,eAAe,GAAG,SAAAA,CAAA,EAA2E;EAAA,SAAAC,IAAA,GAAAX,SAAA,CAAAC,MAAA,EAA7CW,QAAQ,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;IAARF,QAAQ,CAAAE,IAAA,IAAAd,SAAA,CAAAc,IAAA;EAAA;EAC5D,MAAMC,mBAAmB,GAAIC,KAAgB,IAAK;IAChDJ,QAAQ,CACLK,MAAM,CAACC,OAAO,IAAI,OAAOA,OAAO,KAAK,UAAU,CAAC,CAChDC,OAAO,CAACD,OAAO,IAAIA,OAAO,CAACF,KAAK,CAAC,CAAC;EACvC,CAAC;EACD,OAAOD,mBAAmB;AAC5B,CAAC;AAED,MAAMK,WAAW,GAAGC,KAAA,IAAyF;EAAA,IAA7E;IAAEC,YAAY;IAAEb;EAAuD,CAAC,GAAAY,KAAA;EACtG,MAAM,CAACE,oBAAoB,EAAEC,uBAAuB,CAAC,GAAG7B,QAAQ,CAAC,CAAC,CAAC2B,YAAY,IAAIA,YAAY,KAAK,CAAC,CAAC;EACtG,MAAMG,QAAQ,GAAG,CAAC,CAAChB,KAAK,IAAIA,KAAK,KAAK,CAAC,IAAIc,oBAAoB;EAC/D,MAAMG,gBAAgB,GAAIC,CAAsC,IAAKH,uBAAuB,CAAC,CAAC,CAACG,CAAC,CAACC,MAAM,CAACnB,KAAK,CAAC;EAC9G,OAAO,CAACgB,QAAQ,EAAEC,gBAAgB,CAAC;AACrC,CAAC;AAED,MAAMG,SAAS,GAAGA,CAChBC,cAAsB,EACtBC,WAAsB,KACkE;EACxF,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGtC,QAAQ,CAACoC,WAAW,IAAI,EAAE,CAAC;EACvD,MAAMG,KAAK,GAAIC,OAAe,IAAK;IACjCF,SAAS,CAACG,SAAS,IAAI,CAAC,GAAGA,SAAS,EAAED,OAAO,CAAC,CAAC;IAC/C,OAAOA,OAAO;EAChB,CAAC;EACD,MAAME,QAAQ,GAAGA,CAAA,KAAM;IACrB,MAAMF,OAAO,GAAGtC,KAAK,CAAC,GAAGiC,cAAc,GAAG,CAAC;IAC3C,OAAOI,KAAK,CAACC,OAAO,CAAC;EACvB,CAAC;EACD,MAAMG,QAAQ,GAAIC,UAA8B,IAAK;IACnDN,SAAS,CAACG,SAAS,IAAIA,SAAS,CAACnB,MAAM,CAACuB,EAAE,IAAIA,EAAE,KAAKD,UAAU,CAAC,CAAC;EACnE,CAAC;EAED,MAAME,eAAe,GAAIC,sBAA0C,IAAK;IACtE,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGjD,QAAQ,CAAC+C,sBAAsB,CAAC;IACxE9C,SAAS,CAAC,MAAM;MACd,IAAI8C,sBAAsB,EAAE;QAC1BR,KAAK,CAACQ,sBAAsB,CAAC;MAC/B,CAAC,MAAM,IAAI,CAACC,YAAY,EAAE;QACxBC,eAAe,CAACP,QAAQ,CAAC,CAAC,CAAC;MAC7B;MACA,OAAO,MAAMC,QAAQ,CAACK,YAAY,CAAC;IACrC,CAAC,EAAE,CAACA,YAAY,EAAED,sBAAsB,CAAC,CAAC;IAC1C,OAAOC,YAAY;EACrB,CAAC;EAED,OAAO,CAACX,MAAM,EAAES,eAAe,CAAC;AAClC,CAAC;AAED,MAAMI,oBAAoB,GAAG,SAAAA,CAAA,EAAuC;EAAA,SAAAC,KAAA,GAAA9C,SAAA,CAAAC,MAAA,EAAnC8C,MAAM,OAAAlC,KAAA,CAAAiC,KAAA,GAAAE,KAAA,MAAAA,KAAA,GAAAF,KAAA,EAAAE,KAAA;IAAND,MAAM,CAAAC,KAAA,IAAAhD,SAAA,CAAAgD,KAAA;EAAA;EACrC,MAAMC,YAAY,GAAGvD,UAAU,CAACqD,MAAM,CAAC;EACvC,OAAOE,YAAY,IAAI/C,SAAS;AAClC,CAAC;AAED,SACEQ,eAAe,EACfU,WAAW,EACXyB,oBAAoB,EACpBhB,SAAS,EACT/B,uBAAuB","ignoreList":[]}
1
+ {"version":3,"file":"fieldUtils.js","names":["classNames","useState","useEffect","newId","omitUndefinedProperties","obj","Object","entries","reduce","acc","key","value","undefined","callAllHandlers","handlers","unifiedEventHandler","event","filter","handler","forEach","useHasValue","defaultValue","hasUncontrolledValue","setHasUncontrolledValue","hasValue","handleInputEvent","e","target","useIdList","uniqueIdPrefix","initialList","idList","setIdList","addId","idToAdd","oldIdList","getNewId","removeId","idToRemove","id","useRegisteredId","explicitlyRegisteredId","registeredId","setRegisteredId","mergeAttributeValues","values","mergedValues"],"sources":["../../src/Form/fieldUtils.ts"],"sourcesContent":["import classNames from 'classnames';\nimport { useState, useEffect } from 'react';\nimport { newId } from '../utils';\n\nconst omitUndefinedProperties = (obj = {}) => Object.entries(obj)\n .reduce((acc, [key, value]) => {\n if (value !== undefined) {\n acc[key] = value;\n }\n return acc;\n }, {} as Record<string, any>);\n\nconst callAllHandlers = <EventType extends Object>(...handlers: ((event: EventType) => void)[]) => {\n const unifiedEventHandler = (event: EventType) => {\n handlers\n .filter(handler => typeof handler === 'function')\n .forEach(handler => handler(event));\n };\n return unifiedEventHandler;\n};\n\nconst useHasValue = <ValueType>({ defaultValue, value }: { defaultValue?: ValueType, value?: ValueType }) => {\n const [hasUncontrolledValue, setHasUncontrolledValue] = useState(!!defaultValue || defaultValue === 0);\n const hasValue = !!value || value === 0 || hasUncontrolledValue;\n const handleInputEvent = (e: React.ChangeEvent<HTMLInputElement>) => setHasUncontrolledValue(!!e.target.value);\n return [hasValue, handleInputEvent];\n};\n\nconst useIdList = (\n uniqueIdPrefix: string,\n initialList?: string[],\n): [idList: string[], useRegisteredId: (id: string | undefined) => string | undefined] => {\n const [idList, setIdList] = useState(initialList || []);\n const addId = (idToAdd: string) => {\n setIdList(oldIdList => [...oldIdList, idToAdd]);\n return idToAdd;\n };\n const getNewId = () => {\n const idToAdd = newId(`${uniqueIdPrefix}-`);\n return addId(idToAdd);\n };\n const removeId = (idToRemove: string | undefined) => {\n setIdList(oldIdList => oldIdList.filter(id => id !== idToRemove));\n };\n\n const useRegisteredId = (explicitlyRegisteredId: string | undefined) => {\n const [registeredId, setRegisteredId] = useState(explicitlyRegisteredId);\n useEffect(() => {\n if (explicitlyRegisteredId) {\n addId(explicitlyRegisteredId);\n } else if (!registeredId) {\n setRegisteredId(getNewId());\n }\n return () => removeId(registeredId);\n }, [registeredId, explicitlyRegisteredId]);\n return registeredId;\n };\n\n return [idList, useRegisteredId];\n};\n\nconst mergeAttributeValues = (...values: (string | undefined)[]) => {\n const mergedValues = classNames(values);\n return mergedValues || undefined;\n};\n\nexport {\n callAllHandlers,\n useHasValue,\n mergeAttributeValues,\n useIdList,\n omitUndefinedProperties,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -12,8 +12,7 @@ const checkboxValuesReducer = (state, action) => {
12
12
  return [];
13
13
  }
14
14
  };
15
- const useCheckboxSetValues = function () {
16
- let initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
15
+ const useCheckboxSetValues = (initialState = []) => {
17
16
  const [state, dispatch] = useReducer(checkboxValuesReducer, initialState);
18
17
  const dispatchers = {
19
18
  add: value => dispatch({
@@ -1 +1 @@
1
- {"version":3,"file":"useCheckboxSetValues.js","names":["useReducer","checkboxValuesReducer","state","action","type","value","filter","useCheckboxSetValues","initialState","arguments","length","undefined","dispatch","dispatchers","add","remove","set","clear"],"sources":["../../src/Form/useCheckboxSetValues.jsx"],"sourcesContent":["import { useReducer } from 'react';\n\nconst checkboxValuesReducer = (state, action) => {\n switch (action.type) {\n case 'add':\n return [...state, action.value];\n case 'remove':\n return state.filter(value => value !== action.value);\n case 'set':\n return [...action.value];\n case 'clear':\n default:\n return [];\n }\n};\n\nconst useCheckboxSetValues = (initialState = []) => {\n const [state, dispatch] = useReducer(checkboxValuesReducer, initialState);\n\n const dispatchers = {\n add: (value) => dispatch({ type: 'add', value }),\n remove: (value) => dispatch({ type: 'remove', value }),\n set: (value) => dispatch({ type: 'set', value }),\n clear: () => dispatch({ type: 'clear' }),\n };\n return [state, dispatchers];\n};\n\nexport default useCheckboxSetValues;\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAElC,MAAMC,qBAAqB,GAAGA,CAACC,KAAK,EAAEC,MAAM,KAAK;EAC/C,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,KAAK;MACR,OAAO,CAAC,GAAGF,KAAK,EAAEC,MAAM,CAACE,KAAK,CAAC;IACjC,KAAK,QAAQ;MACX,OAAOH,KAAK,CAACI,MAAM,CAACD,KAAK,IAAIA,KAAK,KAAKF,MAAM,CAACE,KAAK,CAAC;IACtD,KAAK,KAAK;MACR,OAAO,CAAC,GAAGF,MAAM,CAACE,KAAK,CAAC;IAC1B,KAAK,OAAO;IACZ;MACE,OAAO,EAAE;EACb;AACF,CAAC;AAED,MAAME,oBAAoB,GAAG,SAAAA,CAAA,EAAuB;EAAA,IAAtBC,YAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAC7C,MAAM,CAACP,KAAK,EAAEU,QAAQ,CAAC,GAAGZ,UAAU,CAACC,qBAAqB,EAAEO,YAAY,CAAC;EAEzE,MAAMK,WAAW,GAAG;IAClBC,GAAG,EAAGT,KAAK,IAAKO,QAAQ,CAAC;MAAER,IAAI,EAAE,KAAK;MAAEC;IAAM,CAAC,CAAC;IAChDU,MAAM,EAAGV,KAAK,IAAKO,QAAQ,CAAC;MAAER,IAAI,EAAE,QAAQ;MAAEC;IAAM,CAAC,CAAC;IACtDW,GAAG,EAAGX,KAAK,IAAKO,QAAQ,CAAC;MAAER,IAAI,EAAE,KAAK;MAAEC;IAAM,CAAC,CAAC;IAChDY,KAAK,EAAEA,CAAA,KAAML,QAAQ,CAAC;MAAER,IAAI,EAAE;IAAQ,CAAC;EACzC,CAAC;EACD,OAAO,CAACF,KAAK,EAAEW,WAAW,CAAC;AAC7B,CAAC;AAED,eAAeN,oBAAoB","ignoreList":[]}
1
+ {"version":3,"file":"useCheckboxSetValues.js","names":["useReducer","checkboxValuesReducer","state","action","type","value","filter","useCheckboxSetValues","initialState","dispatch","dispatchers","add","remove","set","clear"],"sources":["../../src/Form/useCheckboxSetValues.jsx"],"sourcesContent":["import { useReducer } from 'react';\n\nconst checkboxValuesReducer = (state, action) => {\n switch (action.type) {\n case 'add':\n return [...state, action.value];\n case 'remove':\n return state.filter(value => value !== action.value);\n case 'set':\n return [...action.value];\n case 'clear':\n default:\n return [];\n }\n};\n\nconst useCheckboxSetValues = (initialState = []) => {\n const [state, dispatch] = useReducer(checkboxValuesReducer, initialState);\n\n const dispatchers = {\n add: (value) => dispatch({ type: 'add', value }),\n remove: (value) => dispatch({ type: 'remove', value }),\n set: (value) => dispatch({ type: 'set', value }),\n clear: () => dispatch({ type: 'clear' }),\n };\n return [state, dispatchers];\n};\n\nexport default useCheckboxSetValues;\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAElC,MAAMC,qBAAqB,GAAGA,CAACC,KAAK,EAAEC,MAAM,KAAK;EAC/C,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,KAAK;MACR,OAAO,CAAC,GAAGF,KAAK,EAAEC,MAAM,CAACE,KAAK,CAAC;IACjC,KAAK,QAAQ;MACX,OAAOH,KAAK,CAACI,MAAM,CAACD,KAAK,IAAIA,KAAK,KAAKF,MAAM,CAACE,KAAK,CAAC;IACtD,KAAK,KAAK;MACR,OAAO,CAAC,GAAGF,MAAM,CAACE,KAAK,CAAC;IAC1B,KAAK,OAAO;IACZ;MACE,OAAO,EAAE;EACb;AACF,CAAC;AAED,MAAME,oBAAoB,GAAGA,CAACC,YAAY,GAAG,EAAE,KAAK;EAClD,MAAM,CAACN,KAAK,EAAEO,QAAQ,CAAC,GAAGT,UAAU,CAACC,qBAAqB,EAAEO,YAAY,CAAC;EAEzE,MAAME,WAAW,GAAG;IAClBC,GAAG,EAAGN,KAAK,IAAKI,QAAQ,CAAC;MAAEL,IAAI,EAAE,KAAK;MAAEC;IAAM,CAAC,CAAC;IAChDO,MAAM,EAAGP,KAAK,IAAKI,QAAQ,CAAC;MAAEL,IAAI,EAAE,QAAQ;MAAEC;IAAM,CAAC,CAAC;IACtDQ,GAAG,EAAGR,KAAK,IAAKI,QAAQ,CAAC;MAAEL,IAAI,EAAE,KAAK;MAAEC;IAAM,CAAC,CAAC;IAChDS,KAAK,EAAEA,CAAA,KAAML,QAAQ,CAAC;MAAEL,IAAI,EAAE;IAAQ,CAAC;EACzC,CAAC;EACD,OAAO,CAACF,KAAK,EAAEQ,WAAW,CAAC;AAC7B,CAAC;AAED,eAAeH,oBAAoB","ignoreList":[]}
@@ -16,21 +16,20 @@ const messages = defineMessages({
16
16
  defaultMessage: 'Opens in a new tab'
17
17
  }
18
18
  });
19
- const Hyperlink = /*#__PURE__*/forwardRef((_ref, ref) => {
20
- let {
21
- as: Component = 'a',
22
- className,
23
- destination,
24
- children,
25
- target = '_self',
26
- onClick,
27
- externalLinkAlternativeText,
28
- externalLinkTitle,
29
- variant = 'default',
30
- isInline = false,
31
- showLaunchIcon = true,
32
- ...attrs
33
- } = _ref;
19
+ const Hyperlink = /*#__PURE__*/forwardRef(({
20
+ as: Component = 'a',
21
+ className,
22
+ destination,
23
+ children,
24
+ target = '_self',
25
+ onClick,
26
+ externalLinkAlternativeText,
27
+ externalLinkTitle,
28
+ variant = 'default',
29
+ isInline = false,
30
+ showLaunchIcon = true,
31
+ ...attrs
32
+ }, ref) => {
34
33
  const intl = useIntl();
35
34
  let externalLinkIcon;
36
35
  if (target === '_blank') {
@@ -89,12 +88,9 @@ Hyperlink.propTypes = {
89
88
  // @ts-ignore
90
89
  as: PropTypes.elementType,
91
90
  /** specifies the URL; required iff `as` prop is a standard anchor tag */
92
- destination: customPropTypeRequirement(PropTypes.string, _ref2 => {
93
- let {
94
- as
95
- } = _ref2;
96
- return as && as === 'a';
97
- },
91
+ destination: customPropTypeRequirement(PropTypes.string, ({
92
+ as
93
+ }) => as && as === 'a',
98
94
  // "[`destination` is required when]..."
99
95
  'the `as` prop is a standard anchor element (i.e., "a")'),
100
96
  /** Content of the hyperlink */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","forwardRef","PropTypes","classNames","defineMessages","useIntl","Launch","Icon","customPropTypeRequirement","messages","externalLinkAltText","id","defaultMessage","externalLinkTitle","Hyperlink","_ref","ref","as","Component","className","destination","children","target","onClick","externalLinkAlternativeText","variant","isInline","showLaunchIcon","attrs","intl","externalLinkIcon","generateRel","rel","includes","createElement","title","formatMessage","src","screenReaderText","style","height","width","additionalProps","href","propTypes","elementType","string","_ref2","node","isRequired","oneOf","func","bool","defaultProps","undefined","displayName"],"sources":["../../src/Hyperlink/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {\n type BsPrefixRefForwardingComponent as ComponentWithAsProp,\n type BsPrefixProps,\n} from 'react-bootstrap/esm/helpers';\nimport { defineMessages, useIntl } from 'react-intl';\nimport { Launch } from '../../icons';\nimport Icon from '../Icon';\n// @ts-ignore\nimport { customPropTypeRequirement } from '../utils/propTypes/utils';\n\nexport interface HyperlinkProps extends BsPrefixProps, Omit<React.ComponentPropsWithRef<'a'>, 'href' | 'target'> {\n /** specifies the URL */\n destination?: string;\n /** Content of the hyperlink */\n children: React.ReactNode;\n /** Custom class names for the hyperlink */\n className?: string;\n /** Alt text for the icon indicating that this link opens in a new tab, if target=\"_blank\". e.g. _(\"in a new tab\") */\n externalLinkAlternativeText?: string;\n /** Tooltip text for the \"opens in new tab\" icon, if target=\"_blank\". e.g. _(\"Opens in a new tab\"). */\n externalLinkTitle?: string;\n /** type of hyperlink */\n variant?: 'default' | 'muted' | 'brand';\n /** Display the link with an underline. By default, it is only underlined on hover. */\n isInline?: boolean;\n /** specify if we need to show launch Icon. By default, it will be visible. */\n showLaunchIcon?: boolean;\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?: '_blank' | '_self';\n}\n\nexport type HyperlinkType = ComponentWithAsProp<'a', HyperlinkProps>;\n\nconst messages = defineMessages({\n externalLinkAltText: {\n id: 'Hyperlink.externalLinkAltText',\n defaultMessage: 'in a new tab',\n },\n externalLinkTitle: {\n id: 'Hyperlink.externalLinkTitle',\n defaultMessage: 'Opens in a new tab',\n },\n});\n\nconst Hyperlink = forwardRef<HTMLAnchorElement, HyperlinkProps>(({\n as: Component = 'a',\n className,\n destination,\n children,\n target = '_self',\n onClick,\n externalLinkAlternativeText,\n externalLinkTitle,\n variant = 'default',\n isInline = false,\n showLaunchIcon = true,\n ...attrs\n}, ref) => {\n const intl = useIntl();\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 || intl.formatMessage(messages.externalLinkTitle)}\n >\n <Icon\n src={Launch}\n screenReaderText={externalLinkAlternativeText || intl.formatMessage(messages.externalLinkAltText)}\n style={{ height: '1em', width: '1em' }}\n data-testid=\"hyperlink-icon\"\n />\n </span>\n );\n }\n }\n\n const additionalProps: Record<string, any> = { ...attrs };\n if (destination) {\n additionalProps.href = destination;\n }\n\n return (\n <Component\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 target={target}\n onClick={onClick}\n {...additionalProps}\n >\n {children}\n {externalLinkIcon}\n </Component>\n );\n});\n\nHyperlink.propTypes = {\n /** specifies the component element type to render for the hyperlink */\n // @ts-ignore\n as: PropTypes.elementType,\n /** specifies the URL; required iff `as` prop is a standard anchor tag */\n destination: customPropTypeRequirement(\n PropTypes.string,\n ({ as }: { as: React.ElementType }) => as && as === 'a',\n // \"[`destination` is required when]...\"\n 'the `as` prop is a standard anchor element (i.e., \"a\")',\n ),\n /** Content of the hyperlink */\n // @ts-ignore\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.oneOf(['_blank', '_self']),\n /** specifies the callback function when the link is clicked */\n onClick: PropTypes.func,\n /** Alt text for the icon indicating that this link opens in a new tab, if target=\"_blank\". e.g. _(\"in a new tab\") */\n externalLinkAlternativeText: PropTypes.string,\n /** Tooltip text for the \"opens in new tab\" icon, if target=\"_blank\". e.g. _(\"Opens in a new tab\"). */\n externalLinkTitle: PropTypes.string,\n /** type of hyperlink */\n variant: PropTypes.oneOf(['default', 'muted', 'brand']),\n /** Display the link with an underline. By default, it is only underlined on hover. */\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\nHyperlink.defaultProps = {\n as: 'a',\n className: undefined,\n destination: undefined,\n externalLinkAlternativeText: undefined,\n externalLinkTitle: undefined,\n isInline: false,\n onClick: undefined,\n showLaunchIcon: true,\n target: '_self',\n variant: 'default',\n};\n\nHyperlink.displayName = 'Hyperlink';\n\nexport default Hyperlink;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","forwardRef","PropTypes","classNames","defineMessages","useIntl","Launch","Icon","customPropTypeRequirement","messages","externalLinkAltText","id","defaultMessage","externalLinkTitle","Hyperlink","as","Component","className","destination","children","target","onClick","externalLinkAlternativeText","variant","isInline","showLaunchIcon","attrs","ref","intl","externalLinkIcon","generateRel","rel","includes","createElement","title","formatMessage","src","screenReaderText","style","height","width","additionalProps","href","propTypes","elementType","string","node","isRequired","oneOf","func","bool","defaultProps","undefined","displayName"],"sources":["../../src/Hyperlink/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {\n type BsPrefixRefForwardingComponent as ComponentWithAsProp,\n type BsPrefixProps,\n} from 'react-bootstrap/esm/helpers';\nimport { defineMessages, useIntl } from 'react-intl';\nimport { Launch } from '../../icons';\nimport Icon from '../Icon';\n// @ts-ignore\nimport { customPropTypeRequirement } from '../utils/propTypes/utils';\n\nexport interface HyperlinkProps extends BsPrefixProps, Omit<React.ComponentPropsWithRef<'a'>, 'href' | 'target'> {\n /** specifies the URL */\n destination?: string;\n /** Content of the hyperlink */\n children: React.ReactNode;\n /** Custom class names for the hyperlink */\n className?: string;\n /** Alt text for the icon indicating that this link opens in a new tab, if target=\"_blank\". e.g. _(\"in a new tab\") */\n externalLinkAlternativeText?: string;\n /** Tooltip text for the \"opens in new tab\" icon, if target=\"_blank\". e.g. _(\"Opens in a new tab\"). */\n externalLinkTitle?: string;\n /** type of hyperlink */\n variant?: 'default' | 'muted' | 'brand';\n /** Display the link with an underline. By default, it is only underlined on hover. */\n isInline?: boolean;\n /** specify if we need to show launch Icon. By default, it will be visible. */\n showLaunchIcon?: boolean;\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?: '_blank' | '_self';\n}\n\nexport type HyperlinkType = ComponentWithAsProp<'a', HyperlinkProps>;\n\nconst messages = defineMessages({\n externalLinkAltText: {\n id: 'Hyperlink.externalLinkAltText',\n defaultMessage: 'in a new tab',\n },\n externalLinkTitle: {\n id: 'Hyperlink.externalLinkTitle',\n defaultMessage: 'Opens in a new tab',\n },\n});\n\nconst Hyperlink = forwardRef<HTMLAnchorElement, HyperlinkProps>(({\n as: Component = 'a',\n className,\n destination,\n children,\n target = '_self',\n onClick,\n externalLinkAlternativeText,\n externalLinkTitle,\n variant = 'default',\n isInline = false,\n showLaunchIcon = true,\n ...attrs\n}, ref) => {\n const intl = useIntl();\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 || intl.formatMessage(messages.externalLinkTitle)}\n >\n <Icon\n src={Launch}\n screenReaderText={externalLinkAlternativeText || intl.formatMessage(messages.externalLinkAltText)}\n style={{ height: '1em', width: '1em' }}\n data-testid=\"hyperlink-icon\"\n />\n </span>\n );\n }\n }\n\n const additionalProps: Record<string, any> = { ...attrs };\n if (destination) {\n additionalProps.href = destination;\n }\n\n return (\n <Component\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 target={target}\n onClick={onClick}\n {...additionalProps}\n >\n {children}\n {externalLinkIcon}\n </Component>\n );\n});\n\nHyperlink.propTypes = {\n /** specifies the component element type to render for the hyperlink */\n // @ts-ignore\n as: PropTypes.elementType,\n /** specifies the URL; required iff `as` prop is a standard anchor tag */\n destination: customPropTypeRequirement(\n PropTypes.string,\n ({ as }: { as: React.ElementType }) => as && as === 'a',\n // \"[`destination` is required when]...\"\n 'the `as` prop is a standard anchor element (i.e., \"a\")',\n ),\n /** Content of the hyperlink */\n // @ts-ignore\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.oneOf(['_blank', '_self']),\n /** specifies the callback function when the link is clicked */\n onClick: PropTypes.func,\n /** Alt text for the icon indicating that this link opens in a new tab, if target=\"_blank\". e.g. _(\"in a new tab\") */\n externalLinkAlternativeText: PropTypes.string,\n /** Tooltip text for the \"opens in new tab\" icon, if target=\"_blank\". e.g. _(\"Opens in a new tab\"). */\n externalLinkTitle: PropTypes.string,\n /** type of hyperlink */\n variant: PropTypes.oneOf(['default', 'muted', 'brand']),\n /** Display the link with an underline. By default, it is only underlined on hover. */\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\nHyperlink.defaultProps = {\n as: 'a',\n className: undefined,\n destination: undefined,\n externalLinkAlternativeText: undefined,\n externalLinkTitle: undefined,\n isInline: false,\n onClick: undefined,\n showLaunchIcon: true,\n target: '_self',\n variant: 'default',\n};\n\nHyperlink.displayName = 'Hyperlink';\n\nexport default Hyperlink;\n"],"mappings":"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","ignoreList":[]}
@@ -11,17 +11,16 @@ import withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';
11
11
  * - focusable is set to false on the svg in all cases as a workaround for an ie11 bug
12
12
  */
13
13
 
14
- function Icon(_ref) {
15
- let {
16
- src: Component,
17
- id,
18
- className,
19
- hidden,
20
- screenReaderText,
21
- svgAttrs,
22
- size,
23
- ...attrs
24
- } = _ref;
14
+ function Icon({
15
+ src: Component,
16
+ id,
17
+ className,
18
+ hidden,
19
+ screenReaderText,
20
+ svgAttrs,
21
+ size,
22
+ ...attrs
23
+ }) {
25
24
  if (Component) {
26
25
  // If no aria label is specified, hide this icon from screenreaders
27
26
  const hasAriaLabel = svgAttrs['aria-label'] || svgAttrs['aria-labelledby'];
@@ -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","hasAriaLabel","mergedSvgProps","undefined","createElement","role","focusable","Fragment","propTypes","elementType","shape","string","oneOf","bool","oneOfType","element","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 '@openedx/paragon/icons';`\n */\n src: 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":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classNames","newId","withDeprecatedProps","DeprTypes","Icon","src","Component","id","className","hidden","screenReaderText","svgAttrs","size","attrs","hasAriaLabel","mergedSvgProps","undefined","createElement","role","focusable","Fragment","propTypes","elementType","shape","string","oneOf","bool","oneOfType","element","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 '@openedx/paragon/icons';`\n */\n src: 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":"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","ignoreList":[]}