@openedx/paragon 23.14.2 → 23.14.4

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 (379) hide show
  1. package/dist/ActionRow/index.d.ts +18 -0
  2. package/dist/ActionRow/index.js +6 -24
  3. package/dist/ActionRow/index.js.map +1 -1
  4. package/dist/Alert/index.js +21 -24
  5. package/dist/Alert/index.js.map +1 -1
  6. package/dist/Annotation/index.d.ts +13 -0
  7. package/dist/Annotation/index.js +11 -30
  8. package/dist/Annotation/index.js.map +1 -1
  9. package/dist/Avatar/index.d.ts +11 -0
  10. package/dist/Avatar/index.js +7 -21
  11. package/dist/Avatar/index.js.map +1 -1
  12. package/dist/AvatarButton/index.d.ts +17 -0
  13. package/dist/AvatarButton/index.js +11 -33
  14. package/dist/AvatarButton/index.js.map +1 -1
  15. package/dist/Breadcrumb/BreadcrumbLink.js +5 -6
  16. package/dist/Breadcrumb/BreadcrumbLink.js.map +1 -1
  17. package/dist/Breadcrumb/index.js +11 -12
  18. package/dist/Breadcrumb/index.js.map +1 -1
  19. package/dist/Bubble/index.js +15 -18
  20. package/dist/Bubble/index.js.map +1 -1
  21. package/dist/Button/index.d.ts +42 -7
  22. package/dist/Button/index.js +43 -115
  23. package/dist/Button/index.js.map +1 -1
  24. package/dist/Card/BaseCard.js +11 -12
  25. package/dist/Card/BaseCard.js.map +1 -1
  26. package/dist/Card/CardBody.js +9 -12
  27. package/dist/Card/CardBody.js.map +1 -1
  28. package/dist/Card/CardCarousel/CardCarousel.js +13 -14
  29. package/dist/Card/CardCarousel/CardCarousel.js.map +1 -1
  30. package/dist/Card/CardCarousel/CardCarouselHeader.js +4 -5
  31. package/dist/Card/CardCarousel/CardCarouselHeader.js.map +1 -1
  32. package/dist/Card/CardCarousel/CardCarouselItems.js +3 -4
  33. package/dist/Card/CardCarousel/CardCarouselItems.js.map +1 -1
  34. package/dist/Card/CardCarousel/CardCarouselProvider.js +7 -8
  35. package/dist/Card/CardCarousel/CardCarouselProvider.js.map +1 -1
  36. package/dist/Card/CardCarousel/CardCarouselSubtitle.js +5 -6
  37. package/dist/Card/CardCarousel/CardCarouselSubtitle.js.map +1 -1
  38. package/dist/Card/CardCarousel/CardCarouselTitle.js +5 -6
  39. package/dist/Card/CardCarousel/CardCarouselTitle.js.map +1 -1
  40. package/dist/Card/CardCarousel/messages.d.ts +13 -0
  41. package/dist/Card/CardCarousel/messages.js +4 -5
  42. package/dist/Card/CardCarousel/messages.js.map +1 -0
  43. package/dist/Card/CardContext.js +6 -7
  44. package/dist/Card/CardContext.js.map +1 -1
  45. package/dist/Card/CardDeck.js +9 -10
  46. package/dist/Card/CardDeck.js.map +1 -1
  47. package/dist/Card/CardDivider.js +8 -11
  48. package/dist/Card/CardDivider.js.map +1 -1
  49. package/dist/Card/CardFooter.js +9 -10
  50. package/dist/Card/CardFooter.js.map +1 -1
  51. package/dist/Card/CardGrid.js +6 -7
  52. package/dist/Card/CardGrid.js.map +1 -1
  53. package/dist/Card/CardHeader.js +9 -10
  54. package/dist/Card/CardHeader.js.map +1 -1
  55. package/dist/Card/CardImageCap.js +15 -16
  56. package/dist/Card/CardImageCap.js.map +1 -1
  57. package/dist/Card/CardSection.js +9 -10
  58. package/dist/Card/CardSection.js.map +1 -1
  59. package/dist/Card/CardStatus.js +9 -10
  60. package/dist/Card/CardStatus.js.map +1 -1
  61. package/dist/Card/index.js +9 -10
  62. package/dist/Card/index.js.map +1 -1
  63. package/dist/Chip/ChipIcon.js +8 -9
  64. package/dist/Chip/ChipIcon.js.map +1 -1
  65. package/dist/Chip/index.d.ts +22 -0
  66. package/dist/Chip/index.js +15 -70
  67. package/dist/Chip/index.js.map +1 -1
  68. package/dist/ChipCarousel/index.js +49 -53
  69. package/dist/ChipCarousel/index.js.map +1 -1
  70. package/dist/ChipCarousel/messages.d.ts +13 -0
  71. package/dist/ChipCarousel/messages.js +4 -5
  72. package/dist/ChipCarousel/messages.js.map +1 -0
  73. package/dist/CloseButton/index.js.map +1 -1
  74. package/dist/Collapse/index.js.map +1 -1
  75. package/dist/Collapsible/CollapsibleBody.js +6 -7
  76. package/dist/Collapsible/CollapsibleBody.js.map +1 -1
  77. package/dist/Collapsible/CollapsibleTrigger.js +9 -10
  78. package/dist/Collapsible/CollapsibleTrigger.js.map +1 -1
  79. package/dist/Collapsible/CollapsibleVisible.js +5 -6
  80. package/dist/Collapsible/CollapsibleVisible.js.map +1 -1
  81. package/dist/ColorPicker/index.js +6 -7
  82. package/dist/ColorPicker/index.js.map +1 -1
  83. package/dist/Container/index.js +9 -12
  84. package/dist/Container/index.js.map +1 -1
  85. package/dist/DataTable/BulkActions.js +4 -5
  86. package/dist/DataTable/BulkActions.js.map +1 -1
  87. package/dist/DataTable/CardView.js +16 -18
  88. package/dist/DataTable/CardView.js.map +1 -1
  89. package/dist/DataTable/CollapsibleButtonGroup.js +5 -6
  90. package/dist/DataTable/CollapsibleButtonGroup.js.map +1 -1
  91. package/dist/DataTable/DataTableLayout.js +5 -6
  92. package/dist/DataTable/DataTableLayout.js.map +1 -1
  93. package/dist/DataTable/EmptyTable.js +5 -6
  94. package/dist/DataTable/EmptyTable.js.map +1 -1
  95. package/dist/DataTable/ExpandAll.js +4 -5
  96. package/dist/DataTable/ExpandAll.js.map +1 -1
  97. package/dist/DataTable/ExpandRow.js +3 -4
  98. package/dist/DataTable/ExpandRow.js.map +1 -1
  99. package/dist/DataTable/FilterStatus.js +8 -9
  100. package/dist/DataTable/FilterStatus.js.map +1 -1
  101. package/dist/DataTable/RowStatus.js +4 -5
  102. package/dist/DataTable/RowStatus.js.map +1 -1
  103. package/dist/DataTable/SidebarFilters.js +3 -4
  104. package/dist/DataTable/SidebarFilters.js.map +1 -1
  105. package/dist/DataTable/Table.js +3 -4
  106. package/dist/DataTable/Table.js.map +1 -1
  107. package/dist/DataTable/TableActions.js +3 -4
  108. package/dist/DataTable/TableActions.js.map +1 -1
  109. package/dist/DataTable/TableCell.js +5 -6
  110. package/dist/DataTable/TableCell.js.map +1 -1
  111. package/dist/DataTable/TableControlBar.js +3 -4
  112. package/dist/DataTable/TableControlBar.js.map +1 -1
  113. package/dist/DataTable/TableFilters.js +6 -7
  114. package/dist/DataTable/TableFilters.js.map +1 -1
  115. package/dist/DataTable/TableFooter.js +4 -5
  116. package/dist/DataTable/TableFooter.js.map +1 -1
  117. package/dist/DataTable/TableHeaderCell.js +13 -15
  118. package/dist/DataTable/TableHeaderCell.js.map +1 -1
  119. package/dist/DataTable/TableHeaderRow.js +3 -4
  120. package/dist/DataTable/TableHeaderRow.js.map +1 -1
  121. package/dist/DataTable/TableRow.js +3 -4
  122. package/dist/DataTable/TableRow.js.map +1 -1
  123. package/dist/DataTable/filters/CheckboxFilter.js +25 -29
  124. package/dist/DataTable/filters/CheckboxFilter.js.map +1 -1
  125. package/dist/DataTable/filters/DropdownFilter.js +16 -20
  126. package/dist/DataTable/filters/DropdownFilter.js.map +1 -1
  127. package/dist/DataTable/filters/MultiSelectDropdownFilter.js +25 -29
  128. package/dist/DataTable/filters/MultiSelectDropdownFilter.js.map +1 -1
  129. package/dist/DataTable/filters/TextFilter.js +8 -9
  130. package/dist/DataTable/filters/TextFilter.js.map +1 -1
  131. package/dist/DataTable/hooks.js +11 -13
  132. package/dist/DataTable/hooks.js.map +1 -1
  133. package/dist/DataTable/index.js +35 -36
  134. package/dist/DataTable/index.js.map +1 -1
  135. package/dist/DataTable/messages.d.ts +13 -0
  136. package/dist/DataTable/messages.js +4 -5
  137. package/dist/DataTable/messages.js.map +1 -0
  138. package/dist/DataTable/selection/BaseSelectionStatus.js +11 -12
  139. package/dist/DataTable/selection/BaseSelectionStatus.js.map +1 -1
  140. package/dist/DataTable/selection/ControlledSelect.js +3 -4
  141. package/dist/DataTable/selection/ControlledSelect.js.map +1 -1
  142. package/dist/DataTable/selection/ControlledSelectHeader.js +3 -4
  143. package/dist/DataTable/selection/ControlledSelectHeader.js.map +1 -1
  144. package/dist/DataTable/selection/ControlledSelectionStatus.js +4 -5
  145. package/dist/DataTable/selection/ControlledSelectionStatus.js.map +1 -1
  146. package/dist/DataTable/selection/SelectionStatus.js +4 -5
  147. package/dist/DataTable/selection/SelectionStatus.js.map +1 -1
  148. package/dist/DataTable/utils/getVisibleColumns.js +9 -13
  149. package/dist/DataTable/utils/getVisibleColumns.js.map +1 -1
  150. package/dist/Dropdown/index.js +17 -20
  151. package/dist/Dropdown/index.js.map +1 -1
  152. package/dist/Dropzone/DefaultContent.js +5 -6
  153. package/dist/Dropzone/DefaultContent.js.map +1 -1
  154. package/dist/Dropzone/DragError.js +3 -4
  155. package/dist/Dropzone/DragError.js.map +1 -1
  156. package/dist/Dropzone/GenericError.js +4 -5
  157. package/dist/Dropzone/GenericError.js.map +1 -1
  158. package/dist/Dropzone/UploadProgress.js +6 -7
  159. package/dist/Dropzone/UploadProgress.js.map +1 -1
  160. package/dist/Dropzone/index.js +14 -15
  161. package/dist/Dropzone/index.js.map +1 -1
  162. package/dist/Dropzone/messages.d.ts +53 -0
  163. package/dist/Dropzone/messages.js +12 -13
  164. package/dist/Dropzone/messages.js.map +1 -0
  165. package/dist/Fade/index.js.map +1 -1
  166. package/dist/Form/FormAutosuggest.js +18 -20
  167. package/dist/Form/FormAutosuggest.js.map +1 -1
  168. package/dist/Form/FormAutosuggestOption.js +6 -7
  169. package/dist/Form/FormAutosuggestOption.js.map +1 -1
  170. package/dist/Form/FormCheckbox.js +16 -18
  171. package/dist/Form/FormCheckbox.js.map +1 -1
  172. package/dist/Form/FormCheckboxSet.js +11 -12
  173. package/dist/Form/FormCheckboxSet.js.map +1 -1
  174. package/dist/Form/FormCheckboxSetContext.js +9 -10
  175. package/dist/Form/FormCheckboxSetContext.js.map +1 -1
  176. package/dist/Form/FormControl.js +12 -13
  177. package/dist/Form/FormControl.js.map +1 -1
  178. package/dist/Form/FormControlDecorator.js +4 -5
  179. package/dist/Form/FormControlDecorator.js.map +1 -1
  180. package/dist/Form/FormControlDecoratorGroup.js +8 -9
  181. package/dist/Form/FormControlDecoratorGroup.js.map +1 -1
  182. package/dist/Form/FormControlFeedback.js +4 -5
  183. package/dist/Form/FormControlFeedback.js.map +1 -1
  184. package/dist/Form/FormControlFloatingLabel.js +3 -4
  185. package/dist/Form/FormControlFloatingLabel.js.map +1 -1
  186. package/dist/Form/FormControlSet.js +7 -8
  187. package/dist/Form/FormControlSet.js.map +1 -1
  188. package/dist/Form/FormGroup.js +9 -10
  189. package/dist/Form/FormGroup.js.map +1 -1
  190. package/dist/Form/FormGroupContext.js +7 -8
  191. package/dist/Form/FormGroupContext.js.map +1 -1
  192. package/dist/Form/FormLabel.d.ts +2 -11
  193. package/dist/Form/FormLabel.js +5 -15
  194. package/dist/Form/FormLabel.js.map +1 -1
  195. package/dist/Form/FormRadio.js +28 -31
  196. package/dist/Form/FormRadio.js.map +1 -1
  197. package/dist/Form/FormRadioSet.js +11 -12
  198. package/dist/Form/FormRadioSet.js.map +1 -1
  199. package/dist/Form/FormRadioSetContext.js +9 -10
  200. package/dist/Form/FormRadioSetContext.js.map +1 -1
  201. package/dist/Form/FormSwitch.js +25 -29
  202. package/dist/Form/FormSwitch.js.map +1 -1
  203. package/dist/Form/FormText.js +16 -19
  204. package/dist/Form/FormText.js.map +1 -1
  205. package/dist/Form/fieldUtils.js +11 -22
  206. package/dist/Form/fieldUtils.js.map +1 -1
  207. package/dist/Form/useCheckboxSetValues.js +1 -2
  208. package/dist/Form/useCheckboxSetValues.js.map +1 -1
  209. package/dist/Hyperlink/index.js +17 -21
  210. package/dist/Hyperlink/index.js.map +1 -1
  211. package/dist/Icon/index.js +10 -11
  212. package/dist/Icon/index.js.map +1 -1
  213. package/dist/IconButton/index.d.ts +8 -304
  214. package/dist/IconButton/index.js +21 -84
  215. package/dist/IconButton/index.js.map +1 -1
  216. package/dist/IconButtonToggle/index.js +5 -6
  217. package/dist/IconButtonToggle/index.js.map +1 -1
  218. package/dist/Image/index.js.map +1 -1
  219. package/dist/Layout/index.js +4 -5
  220. package/dist/Layout/index.js.map +1 -1
  221. package/dist/Media/index.js.map +1 -1
  222. package/dist/Menu/MenuItem.js +8 -9
  223. package/dist/Menu/MenuItem.js.map +1 -1
  224. package/dist/Menu/SelectMenu.js +8 -9
  225. package/dist/Menu/SelectMenu.js.map +1 -1
  226. package/dist/Menu/index.js +6 -7
  227. package/dist/Menu/index.js.map +1 -1
  228. package/dist/Modal/AlertModal.js +6 -7
  229. package/dist/Modal/AlertModal.js.map +1 -1
  230. package/dist/Modal/FullscreenModal.js +7 -8
  231. package/dist/Modal/FullscreenModal.js.map +1 -1
  232. package/dist/Modal/MarketingModal.js +9 -10
  233. package/dist/Modal/MarketingModal.js.map +1 -1
  234. package/dist/Modal/ModalCloseButton.js +5 -6
  235. package/dist/Modal/ModalCloseButton.js.map +1 -1
  236. package/dist/Modal/ModalContext.js +6 -7
  237. package/dist/Modal/ModalContext.js.map +1 -1
  238. package/dist/Modal/ModalDialog.js +16 -17
  239. package/dist/Modal/ModalDialog.js.map +1 -1
  240. package/dist/Modal/ModalDialogBody.js +5 -6
  241. package/dist/Modal/ModalDialogBody.js.map +1 -1
  242. package/dist/Modal/ModalDialogFooter.js +5 -6
  243. package/dist/Modal/ModalDialogFooter.js.map +1 -1
  244. package/dist/Modal/ModalDialogHeader.js +9 -12
  245. package/dist/Modal/ModalDialogHeader.js.map +1 -1
  246. package/dist/Modal/ModalDialogHero.js +5 -6
  247. package/dist/Modal/ModalDialogHero.js.map +1 -1
  248. package/dist/Modal/ModalDialogHeroBackground.js +6 -7
  249. package/dist/Modal/ModalDialogHeroBackground.js.map +1 -1
  250. package/dist/Modal/ModalDialogHeroContent.js +5 -6
  251. package/dist/Modal/ModalDialogHeroContent.js.map +1 -1
  252. package/dist/Modal/ModalDialogTitle.js +5 -6
  253. package/dist/Modal/ModalDialogTitle.js.map +1 -1
  254. package/dist/Modal/ModalLayer.js +13 -16
  255. package/dist/Modal/ModalLayer.js.map +1 -1
  256. package/dist/Modal/ModalPopup.js +11 -12
  257. package/dist/Modal/ModalPopup.js.map +1 -1
  258. package/dist/Modal/PopperElement.js +7 -8
  259. package/dist/Modal/PopperElement.js.map +1 -1
  260. package/dist/Modal/StandardModal.js +7 -8
  261. package/dist/Modal/StandardModal.js.map +1 -1
  262. package/dist/OverflowScroll/OverflowScroll.js +12 -13
  263. package/dist/OverflowScroll/OverflowScroll.js.map +1 -1
  264. package/dist/OverflowScroll/OverflowScrollItems.js +3 -4
  265. package/dist/OverflowScroll/OverflowScrollItems.js.map +1 -1
  266. package/dist/Overlay/index.d.ts +2 -2
  267. package/dist/PageBanner/index.js +9 -10
  268. package/dist/PageBanner/index.js.map +1 -1
  269. package/dist/Pagination/PaginationContext.js +12 -13
  270. package/dist/Pagination/PaginationContext.js.map +1 -1
  271. package/dist/Pagination/subcomponents/PageButton.js +3 -4
  272. package/dist/Pagination/subcomponents/PageButton.js.map +1 -1
  273. package/dist/Popover/index.js +11 -14
  274. package/dist/Popover/index.js.map +1 -1
  275. package/dist/ProductTour/Checkpoint.js +12 -13
  276. package/dist/ProductTour/Checkpoint.js.map +1 -1
  277. package/dist/ProductTour/CheckpointActionRow.js +10 -11
  278. package/dist/ProductTour/CheckpointActionRow.js.map +1 -1
  279. package/dist/ProductTour/CheckpointBody.js +3 -4
  280. package/dist/ProductTour/CheckpointBody.js.map +1 -1
  281. package/dist/ProductTour/CheckpointHeader.js +7 -8
  282. package/dist/ProductTour/CheckpointHeader.js.map +1 -1
  283. package/dist/ProductTour/CheckpointTitle.js +6 -9
  284. package/dist/ProductTour/CheckpointTitle.js.map +1 -1
  285. package/dist/ProductTour/index.js +3 -4
  286. package/dist/ProductTour/index.js.map +1 -1
  287. package/dist/ProductTour/messages.d.ts +23 -0
  288. package/dist/ProductTour/messages.js +6 -7
  289. package/dist/ProductTour/messages.js.map +1 -0
  290. package/dist/ProgressBar/index.js +11 -12
  291. package/dist/ProgressBar/index.js.map +1 -1
  292. package/dist/ResponsiveEmbed/index.js.map +1 -1
  293. package/dist/Scrollable/index.js +4 -5
  294. package/dist/Scrollable/index.js.map +1 -1
  295. package/dist/SearchField/SearchFieldLabel.js +4 -5
  296. package/dist/SearchField/SearchFieldLabel.js.map +1 -1
  297. package/dist/SelectableBox/SelectableBoxSet.js +13 -14
  298. package/dist/SelectableBox/SelectableBoxSet.js.map +1 -1
  299. package/dist/SelectableBox/index.js +14 -15
  300. package/dist/SelectableBox/index.js.map +1 -1
  301. package/dist/Skeleton/index.js.map +1 -1
  302. package/dist/Spinner/index.js +5 -6
  303. package/dist/Spinner/index.js.map +1 -1
  304. package/dist/Stack/index.js +12 -15
  305. package/dist/Stack/index.js.map +1 -1
  306. package/dist/StatefulButton/index.js +9 -10
  307. package/dist/StatefulButton/index.js.map +1 -1
  308. package/dist/Stepper/Stepper.js +4 -5
  309. package/dist/Stepper/Stepper.js.map +1 -1
  310. package/dist/Stepper/StepperActionRow.js +6 -7
  311. package/dist/Stepper/StepperActionRow.js.map +1 -1
  312. package/dist/Stepper/StepperContext.js +4 -5
  313. package/dist/Stepper/StepperContext.js.map +1 -1
  314. package/dist/Stepper/StepperHeader.js +23 -31
  315. package/dist/Stepper/StepperHeader.js.map +1 -1
  316. package/dist/Stepper/StepperHeaderStep.js +8 -9
  317. package/dist/Stepper/StepperHeaderStep.js.map +1 -1
  318. package/dist/Stepper/StepperStep.js +10 -11
  319. package/dist/Stepper/StepperStep.js.map +1 -1
  320. package/dist/Sticky/index.js +8 -12
  321. package/dist/Sticky/index.js.map +1 -1
  322. package/dist/Tabs/index.js +8 -9
  323. package/dist/Tabs/index.js.map +1 -1
  324. package/dist/Toast/ToastContainer.js +3 -4
  325. package/dist/Toast/ToastContainer.js.map +1 -1
  326. package/dist/Toast/index.d.ts +20 -41
  327. package/dist/Toast/index.js +11 -48
  328. package/dist/Toast/index.js.map +1 -1
  329. package/dist/ToggleButton/index.js.map +1 -1
  330. package/dist/Tooltip/index.js +11 -14
  331. package/dist/Tooltip/index.js.map +1 -1
  332. package/dist/Truncate/index.js +9 -10
  333. package/dist/Truncate/index.js.map +1 -1
  334. package/dist/asInput/index.js +9 -13
  335. package/dist/asInput/index.js.map +1 -1
  336. package/dist/hooks/useArrowKeyNavigationHook.js +17 -21
  337. package/dist/hooks/useArrowKeyNavigationHook.js.map +1 -1
  338. package/dist/hooks/useIsVisibleHook.js +4 -6
  339. package/dist/hooks/useIsVisibleHook.js.map +1 -1
  340. package/dist/hooks/useToggleHook.js +1 -3
  341. package/dist/hooks/useToggleHook.js.map +1 -1
  342. package/dist/index.d.ts +4 -4
  343. package/dist/index.js +4 -8
  344. package/dist/index.js.map +1 -1
  345. package/dist/utils/newId.js +1 -2
  346. package/dist/utils/newId.js.map +1 -1
  347. package/package.json +1 -1
  348. package/src/ActionRow/{index.jsx → index.tsx} +14 -22
  349. package/src/Annotation/{index.jsx → index.tsx} +15 -22
  350. package/src/Avatar/{index.jsx → index.tsx} +13 -19
  351. package/src/AvatarButton/{index.jsx → index.tsx} +23 -31
  352. package/src/Button/index.tsx +68 -93
  353. package/src/Chip/index.tsx +26 -59
  354. package/src/CloseButton/index.tsx +1 -0
  355. package/src/Collapse/index.tsx +1 -0
  356. package/src/Fade/index.tsx +1 -0
  357. package/src/Form/FormLabel.tsx +2 -10
  358. package/src/IconButton/index.tsx +17 -81
  359. package/src/Image/index.tsx +2 -0
  360. package/src/Media/index.tsx +1 -0
  361. package/src/Modal/modal-popup.mdx +1 -1
  362. package/src/ResponsiveEmbed/index.tsx +1 -0
  363. package/src/Skeleton/index.tsx +1 -0
  364. package/src/Toast/index.tsx +21 -40
  365. package/src/ToggleButton/index.tsx +2 -0
  366. package/src/index.ts +4 -8
  367. /package/{src/CloseButton/index.jsx → dist/CloseButton/index.d.ts} +0 -0
  368. /package/{src/Collapse/index.jsx → dist/Collapse/index.d.ts} +0 -0
  369. /package/{src/Fade/index.jsx → dist/Fade/index.d.ts} +0 -0
  370. /package/{src/Image/index.jsx → dist/Image/index.d.ts} +0 -0
  371. /package/{src/Media/index.jsx → dist/Media/index.d.ts} +0 -0
  372. /package/{src/ResponsiveEmbed/index.jsx → dist/ResponsiveEmbed/index.d.ts} +0 -0
  373. /package/{src/Skeleton/index.jsx → dist/Skeleton/index.d.ts} +0 -0
  374. /package/{src/ToggleButton/index.jsx → dist/ToggleButton/index.d.ts} +0 -0
  375. /package/src/Card/CardCarousel/{messages.js → messages.ts} +0 -0
  376. /package/src/ChipCarousel/{messages.js → messages.ts} +0 -0
  377. /package/src/DataTable/{messages.js → messages.ts} +0 -0
  378. /package/src/Dropzone/{messages.js → messages.ts} +0 -0
  379. /package/src/ProductTour/{messages.js → messages.ts} +0 -0
@@ -1,10 +1,9 @@
1
1
  import { useEffect, useState } from 'react';
2
2
  import ReactDOM from 'react-dom';
3
3
  const TOAST_ROOT_ID = 'toast-root';
4
- function ToastContainer(_ref) {
5
- let {
6
- children
7
- } = _ref;
4
+ function ToastContainer({
5
+ children
6
+ }) {
8
7
  const [rootElement, setRootElement] = useState(null);
9
8
  useEffect(() => {
10
9
  if (typeof document !== 'undefined') {
@@ -1 +1 @@
1
- {"version":3,"file":"ToastContainer.js","names":["useEffect","useState","ReactDOM","TOAST_ROOT_ID","ToastContainer","_ref","children","rootElement","setRootElement","document","existingElement","getElementById","createElement","id","className","body","appendChild","createPortal"],"sources":["../../src/Toast/ToastContainer.tsx"],"sourcesContent":["import { ReactNode, useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\ninterface ToastContainerProps {\n children: ReactNode;\n}\n\nconst TOAST_ROOT_ID = 'toast-root';\n\nfunction ToastContainer({ children }: ToastContainerProps) {\n const [rootElement, setRootElement] = useState<HTMLElement | null>(null);\n\n useEffect(() => {\n if (typeof document !== 'undefined') {\n let existingElement = document.getElementById(TOAST_ROOT_ID);\n\n if (!existingElement) {\n existingElement = document.createElement('div');\n existingElement.id = TOAST_ROOT_ID;\n existingElement.className = 'toast-container';\n document.body.appendChild(existingElement);\n }\n setRootElement(existingElement);\n }\n }, []);\n\n return rootElement ? ReactDOM.createPortal(children, rootElement) : null;\n}\n\nexport default ToastContainer;\n"],"mappings":"AAAA,SAAoBA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AACtD,OAAOC,QAAQ,MAAM,WAAW;AAMhC,MAAMC,aAAa,GAAG,YAAY;AAElC,SAASC,cAAcA,CAAAC,IAAA,EAAoC;EAAA,IAAnC;IAAEC;EAA8B,CAAC,GAAAD,IAAA;EACvD,MAAM,CAACE,WAAW,EAAEC,cAAc,CAAC,GAAGP,QAAQ,CAAqB,IAAI,CAAC;EAExED,SAAS,CAAC,MAAM;IACd,IAAI,OAAOS,QAAQ,KAAK,WAAW,EAAE;MACnC,IAAIC,eAAe,GAAGD,QAAQ,CAACE,cAAc,CAACR,aAAa,CAAC;MAE5D,IAAI,CAACO,eAAe,EAAE;QACpBA,eAAe,GAAGD,QAAQ,CAACG,aAAa,CAAC,KAAK,CAAC;QAC/CF,eAAe,CAACG,EAAE,GAAGV,aAAa;QAClCO,eAAe,CAACI,SAAS,GAAG,iBAAiB;QAC7CL,QAAQ,CAACM,IAAI,CAACC,WAAW,CAACN,eAAe,CAAC;MAC5C;MACAF,cAAc,CAACE,eAAe,CAAC;IACjC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOH,WAAW,gBAAGL,QAAQ,CAACe,YAAY,CAACX,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAI;AAC1E;AAEA,eAAeH,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"ToastContainer.js","names":["useEffect","useState","ReactDOM","TOAST_ROOT_ID","ToastContainer","children","rootElement","setRootElement","document","existingElement","getElementById","createElement","id","className","body","appendChild","createPortal"],"sources":["../../src/Toast/ToastContainer.tsx"],"sourcesContent":["import { ReactNode, useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\ninterface ToastContainerProps {\n children: ReactNode;\n}\n\nconst TOAST_ROOT_ID = 'toast-root';\n\nfunction ToastContainer({ children }: ToastContainerProps) {\n const [rootElement, setRootElement] = useState<HTMLElement | null>(null);\n\n useEffect(() => {\n if (typeof document !== 'undefined') {\n let existingElement = document.getElementById(TOAST_ROOT_ID);\n\n if (!existingElement) {\n existingElement = document.createElement('div');\n existingElement.id = TOAST_ROOT_ID;\n existingElement.className = 'toast-container';\n document.body.appendChild(existingElement);\n }\n setRootElement(existingElement);\n }\n }, []);\n\n return rootElement ? ReactDOM.createPortal(children, rootElement) : null;\n}\n\nexport default ToastContainer;\n"],"mappings":"AAAA,SAAoBA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AACtD,OAAOC,QAAQ,MAAM,WAAW;AAMhC,MAAMC,aAAa,GAAG,YAAY;AAElC,SAASC,cAAcA,CAAC;EAAEC;AAA8B,CAAC,EAAE;EACzD,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGN,QAAQ,CAAqB,IAAI,CAAC;EAExED,SAAS,CAAC,MAAM;IACd,IAAI,OAAOQ,QAAQ,KAAK,WAAW,EAAE;MACnC,IAAIC,eAAe,GAAGD,QAAQ,CAACE,cAAc,CAACP,aAAa,CAAC;MAE5D,IAAI,CAACM,eAAe,EAAE;QACpBA,eAAe,GAAGD,QAAQ,CAACG,aAAa,CAAC,KAAK,CAAC;QAC/CF,eAAe,CAACG,EAAE,GAAGT,aAAa;QAClCM,eAAe,CAACI,SAAS,GAAG,iBAAiB;QAC7CL,QAAQ,CAACM,IAAI,CAACC,WAAW,CAACN,eAAe,CAAC;MAC5C;MACAF,cAAc,CAACE,eAAe,CAAC;IACjC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOH,WAAW,gBAAGJ,QAAQ,CAACc,YAAY,CAACX,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAI;AAC1E;AAEA,eAAeF,cAAc","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
2
  export declare const TOAST_CLOSE_LABEL_TEXT = "Close";
4
3
  export declare const TOAST_DELAY = 5000;
5
4
  interface ToastAction {
@@ -8,52 +7,32 @@ interface ToastAction {
8
7
  onClick?: (event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;
9
8
  }
10
9
  interface ToastProps {
10
+ /** A string or an element that is rendered inside the main body of the `Toast`. */
11
11
  children: string;
12
+ /**
13
+ * A function that is called on close. It can be used to perform
14
+ * actions upon closing of the `Toast`, such as setting the "show"
15
+ * element to false.
16
+ * */
12
17
  onClose: () => void;
18
+ /** Boolean used to control whether the `Toast` shows. */
13
19
  show: boolean;
20
+ /**
21
+ * Fields used to build optional action button.
22
+ * `label` is a string rendered inside the button.
23
+ * `href` is a link that will render the action button as an anchor tag.
24
+ * `onClick` is a function that is called when the button is clicked.
25
+ * The full type definition can be seen [here](https://github.com/openedx/paragon/blob/release-23.x/src/Toast/index.tsx#L16)
26
+ */
14
27
  action?: ToastAction;
28
+ /**
29
+ * Alt text for the `Toast`'s dismiss button. Defaults to 'Close'.
30
+ */
15
31
  closeLabel?: string;
32
+ /** Time in milliseconds for which the `Toast` will display. */
16
33
  delay?: number;
34
+ /** Class names for the `BaseToast` component. */
17
35
  className?: string;
18
36
  }
19
- declare function Toast({ action, children, className, closeLabel, onClose, show, ...rest }: ToastProps): import("react/jsx-runtime").JSX.Element;
20
- declare namespace Toast {
21
- var defaultProps: {
22
- action: null;
23
- closeLabel: undefined;
24
- delay: number;
25
- className: undefined;
26
- };
27
- var propTypes: {
28
- /** A string or an element that is rendered inside the main body of the `Toast`. */
29
- children: PropTypes.Validator<string>;
30
- /**
31
- * A function that is called on close. It can be used to perform
32
- * actions upon closing of the `Toast`, such as setting the "show"
33
- * element to false.
34
- * */
35
- onClose: PropTypes.Validator<(...args: any[]) => any>;
36
- /** Boolean used to control whether the `Toast` shows */
37
- show: PropTypes.Validator<boolean>;
38
- /**
39
- * Fields used to build optional action button.
40
- * `label` is a string rendered inside the button.
41
- * `href` is a link that will render the action button as an anchor tag.
42
- * `onClick` is a function that is called when the button is clicked.
43
- */
44
- action: PropTypes.Requireable<PropTypes.InferProps<{
45
- label: PropTypes.Validator<string>;
46
- href: PropTypes.Requireable<string>;
47
- onClick: PropTypes.Requireable<(...args: any[]) => any>;
48
- }>>;
49
- /**
50
- * Alt text for the `Toast`'s dismiss button. Defaults to 'Close'.
51
- */
52
- closeLabel: PropTypes.Requireable<string>;
53
- /** Time in milliseconds for which the `Toast` will display. */
54
- delay: PropTypes.Requireable<number>;
55
- /** Class names for the `BaseToast` component */
56
- className: PropTypes.Requireable<string>;
57
- };
58
- }
37
+ declare function Toast({ action, children, className, closeLabel, onClose, show, delay, ...rest }: ToastProps): import("react/jsx-runtime").JSX.Element;
59
38
  export default Toast;
@@ -1,6 +1,5 @@
1
1
  import React, { useState } from 'react';
2
2
  import classNames from 'classnames';
3
- import PropTypes from 'prop-types';
4
3
  import BaseToast from 'react-bootstrap/Toast';
5
4
  import { useIntl } from 'react-intl';
6
5
  import { Close } from '../../icons';
@@ -10,16 +9,16 @@ import Icon from '../Icon';
10
9
  import IconButton from '../IconButton';
11
10
  export const TOAST_CLOSE_LABEL_TEXT = 'Close';
12
11
  export const TOAST_DELAY = 5000;
13
- function Toast(_ref) {
14
- let {
15
- action,
16
- children,
17
- className,
18
- closeLabel,
19
- onClose,
20
- show,
21
- ...rest
22
- } = _ref;
12
+ function Toast({
13
+ action,
14
+ children,
15
+ className,
16
+ closeLabel,
17
+ onClose,
18
+ show,
19
+ delay = TOAST_DELAY,
20
+ ...rest
21
+ }) {
23
22
  const intl = useIntl();
24
23
  const [autoHide, setAutoHide] = useState(true);
25
24
  const intlCloseLabel = closeLabel || intl.formatMessage({
@@ -36,6 +35,7 @@ function Toast(_ref) {
36
35
  onMouseOut: () => setAutoHide(true),
37
36
  onMouseOver: () => setAutoHide(false),
38
37
  show: show,
38
+ delay: delay,
39
39
  ...rest
40
40
  }, /*#__PURE__*/React.createElement("div", {
41
41
  className: "toast-header"
@@ -59,42 +59,5 @@ function Toast(_ref) {
59
59
  variant: "inverse-outline-primary"
60
60
  }, action.label)));
61
61
  }
62
- Toast.defaultProps = {
63
- action: null,
64
- closeLabel: undefined,
65
- delay: TOAST_DELAY,
66
- className: undefined
67
- };
68
- Toast.propTypes = {
69
- /** A string or an element that is rendered inside the main body of the `Toast`. */
70
- children: PropTypes.string.isRequired,
71
- /**
72
- * A function that is called on close. It can be used to perform
73
- * actions upon closing of the `Toast`, such as setting the "show"
74
- * element to false.
75
- * */
76
- onClose: PropTypes.func.isRequired,
77
- /** Boolean used to control whether the `Toast` shows */
78
- show: PropTypes.bool.isRequired,
79
- /**
80
- * Fields used to build optional action button.
81
- * `label` is a string rendered inside the button.
82
- * `href` is a link that will render the action button as an anchor tag.
83
- * `onClick` is a function that is called when the button is clicked.
84
- */
85
- action: PropTypes.shape({
86
- label: PropTypes.string.isRequired,
87
- href: PropTypes.string,
88
- onClick: PropTypes.func
89
- }),
90
- /**
91
- * Alt text for the `Toast`'s dismiss button. Defaults to 'Close'.
92
- */
93
- closeLabel: PropTypes.string,
94
- /** Time in milliseconds for which the `Toast` will display. */
95
- delay: PropTypes.number,
96
- /** Class names for the `BaseToast` component */
97
- className: PropTypes.string
98
- };
99
62
  export default Toast;
100
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useState","classNames","PropTypes","BaseToast","useIntl","Close","ToastContainer","Button","Icon","IconButton","TOAST_CLOSE_LABEL_TEXT","TOAST_DELAY","Toast","_ref","action","children","className","closeLabel","onClose","show","rest","intl","autoHide","setAutoHide","intlCloseLabel","formatMessage","id","defaultMessage","description","createElement","autohide","onBlur","onFocus","onMouseOut","onMouseOver","iconAs","alt","src","onClick","variant","invertColors","as","href","size","label","defaultProps","undefined","delay","propTypes","string","isRequired","func","bool","shape","number"],"sources":["../../src/Toast/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport BaseToast from 'react-bootstrap/Toast';\nimport { useIntl } from 'react-intl';\n\nimport { Close } from '../../icons';\nimport ToastContainer from './ToastContainer';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport IconButton from '../IconButton';\n\nexport const TOAST_CLOSE_LABEL_TEXT = 'Close';\nexport const TOAST_DELAY = 5000;\n\ninterface ToastAction {\n label: string;\n href?: string;\n onClick?: (event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n}\n\ninterface ToastProps {\n children: string;\n onClose: () => void;\n show: boolean;\n action?: ToastAction;\n closeLabel?: string;\n delay?: number;\n className?: string;\n}\n\nfunction Toast({\n action,\n children,\n className,\n closeLabel,\n onClose,\n show,\n ...rest\n}: ToastProps) {\n const intl = useIntl();\n const [autoHide, setAutoHide] = useState(true);\n\n const intlCloseLabel = closeLabel || intl.formatMessage({\n id: 'pgn.Toast.closeLabel',\n defaultMessage: 'Close',\n description: 'Close label for Toast component',\n });\n\n return (\n <ToastContainer>\n <BaseToast\n autohide={autoHide}\n className={classNames('pgn__toast', className)}\n onClose={onClose}\n onBlur={() => setAutoHide(true)}\n onFocus={() => setAutoHide(false)}\n onMouseOut={() => setAutoHide(true)}\n onMouseOver={() => setAutoHide(false)}\n show={show}\n {...rest}\n >\n <div className=\"toast-header\">\n <p className=\"small\">{children}</p>\n <div className=\"toast-header-btn-container\">\n <IconButton\n iconAs={Icon}\n alt={intlCloseLabel}\n className=\"align-self-start\"\n src={Close}\n onClick={onClose}\n variant=\"primary\"\n invertColors\n />\n </div>\n </div>\n {action && (\n <Button\n as={action.href ? 'a' : 'button'}\n href={action.href}\n onClick={action.onClick}\n size=\"sm\"\n variant=\"inverse-outline-primary\"\n >\n {action.label}\n </Button>\n )}\n </BaseToast>\n </ToastContainer>\n );\n}\n\nToast.defaultProps = {\n action: null,\n closeLabel: undefined,\n delay: TOAST_DELAY,\n className: undefined,\n};\n\nToast.propTypes = {\n /** A string or an element that is rendered inside the main body of the `Toast`. */\n children: PropTypes.string.isRequired,\n /**\n * A function that is called on close. It can be used to perform\n * actions upon closing of the `Toast`, such as setting the \"show\"\n * element to false.\n * */\n onClose: PropTypes.func.isRequired,\n /** Boolean used to control whether the `Toast` shows */\n show: PropTypes.bool.isRequired,\n /**\n * Fields used to build optional action button.\n * `label` is a string rendered inside the button.\n * `href` is a link that will render the action button as an anchor tag.\n * `onClick` is a function that is called when the button is clicked.\n */\n action: PropTypes.shape({\n label: PropTypes.string.isRequired,\n href: PropTypes.string,\n onClick: PropTypes.func,\n }),\n /**\n * Alt text for the `Toast`'s dismiss button. Defaults to 'Close'.\n */\n closeLabel: PropTypes.string,\n /** Time in milliseconds for which the `Toast` will display. */\n delay: PropTypes.number,\n /** Class names for the `BaseToast` component */\n className: PropTypes.string,\n};\n\nexport default Toast;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useState","classNames","BaseToast","useIntl","Close","ToastContainer","Button","Icon","IconButton","TOAST_CLOSE_LABEL_TEXT","TOAST_DELAY","Toast","action","children","className","closeLabel","onClose","show","delay","rest","intl","autoHide","setAutoHide","intlCloseLabel","formatMessage","id","defaultMessage","description","createElement","autohide","onBlur","onFocus","onMouseOut","onMouseOver","iconAs","alt","src","onClick","variant","invertColors","as","href","size","label"],"sources":["../../src/Toast/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport classNames from 'classnames';\nimport BaseToast from 'react-bootstrap/Toast';\nimport { useIntl } from 'react-intl';\n\nimport { Close } from '../../icons';\nimport ToastContainer from './ToastContainer';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport IconButton from '../IconButton';\n\nexport const TOAST_CLOSE_LABEL_TEXT = 'Close';\nexport const TOAST_DELAY = 5000;\n\ninterface ToastAction {\n label: string;\n href?: string;\n onClick?: (event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n}\n\ninterface ToastProps {\n /** A string or an element that is rendered inside the main body of the `Toast`. */\n children: string;\n /**\n * A function that is called on close. It can be used to perform\n * actions upon closing of the `Toast`, such as setting the \"show\"\n * element to false.\n * */\n onClose: () => void;\n /** Boolean used to control whether the `Toast` shows. */\n show: boolean;\n /**\n * Fields used to build optional action button.\n * `label` is a string rendered inside the button.\n * `href` is a link that will render the action button as an anchor tag.\n * `onClick` is a function that is called when the button is clicked.\n * The full type definition can be seen [here](https://github.com/openedx/paragon/blob/release-23.x/src/Toast/index.tsx#L16)\n */\n action?: ToastAction;\n /**\n * Alt text for the `Toast`'s dismiss button. Defaults to 'Close'.\n */\n closeLabel?: string;\n /** Time in milliseconds for which the `Toast` will display. */\n delay?: number;\n /** Class names for the `BaseToast` component. */\n className?: string;\n}\n\nfunction Toast({\n action,\n children,\n className,\n closeLabel,\n onClose,\n show,\n delay = TOAST_DELAY,\n ...rest\n}: ToastProps) {\n const intl = useIntl();\n const [autoHide, setAutoHide] = useState(true);\n\n const intlCloseLabel = closeLabel || intl.formatMessage({\n id: 'pgn.Toast.closeLabel',\n defaultMessage: 'Close',\n description: 'Close label for Toast component',\n });\n\n return (\n <ToastContainer>\n <BaseToast\n autohide={autoHide}\n className={classNames('pgn__toast', className)}\n onClose={onClose}\n onBlur={() => setAutoHide(true)}\n onFocus={() => setAutoHide(false)}\n onMouseOut={() => setAutoHide(true)}\n onMouseOver={() => setAutoHide(false)}\n show={show}\n delay={delay}\n {...rest}\n >\n <div className=\"toast-header\">\n <p className=\"small\">{children}</p>\n <div className=\"toast-header-btn-container\">\n <IconButton\n iconAs={Icon}\n alt={intlCloseLabel}\n className=\"align-self-start\"\n src={Close}\n onClick={onClose}\n variant=\"primary\"\n invertColors\n />\n </div>\n </div>\n {action && (\n <Button\n as={action.href ? 'a' : 'button'}\n href={action.href}\n onClick={action.onClick}\n size=\"sm\"\n variant=\"inverse-outline-primary\"\n >\n {action.label}\n </Button>\n )}\n </BaseToast>\n </ToastContainer>\n );\n}\n\nexport default Toast;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,uBAAuB;AAC7C,SAASC,OAAO,QAAQ,YAAY;AAEpC,SAASC,KAAK,QAAQ,aAAa;AACnC,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,OAAOC,MAAM,MAAM,WAAW;AAC9B,OAAOC,IAAI,MAAM,SAAS;AAC1B,OAAOC,UAAU,MAAM,eAAe;AAEtC,OAAO,MAAMC,sBAAsB,GAAG,OAAO;AAC7C,OAAO,MAAMC,WAAW,GAAG,IAAI;AAqC/B,SAASC,KAAKA,CAAC;EACbC,MAAM;EACNC,QAAQ;EACRC,SAAS;EACTC,UAAU;EACVC,OAAO;EACPC,IAAI;EACJC,KAAK,GAAGR,WAAW;EACnB,GAAGS;AACO,CAAC,EAAE;EACb,MAAMC,IAAI,GAAGjB,OAAO,CAAC,CAAC;EACtB,MAAM,CAACkB,QAAQ,EAAEC,WAAW,CAAC,GAAGtB,QAAQ,CAAC,IAAI,CAAC;EAE9C,MAAMuB,cAAc,GAAGR,UAAU,IAAIK,IAAI,CAACI,aAAa,CAAC;IACtDC,EAAE,EAAE,sBAAsB;IAC1BC,cAAc,EAAE,OAAO;IACvBC,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,oBACE5B,KAAA,CAAA6B,aAAA,CAACvB,cAAc,qBACbN,KAAA,CAAA6B,aAAA,CAAC1B,SAAS;IACR2B,QAAQ,EAAER,QAAS;IACnBP,SAAS,EAAEb,UAAU,CAAC,YAAY,EAAEa,SAAS,CAAE;IAC/CE,OAAO,EAAEA,OAAQ;IACjBc,MAAM,EAAEA,CAAA,KAAMR,WAAW,CAAC,IAAI,CAAE;IAChCS,OAAO,EAAEA,CAAA,KAAMT,WAAW,CAAC,KAAK,CAAE;IAClCU,UAAU,EAAEA,CAAA,KAAMV,WAAW,CAAC,IAAI,CAAE;IACpCW,WAAW,EAAEA,CAAA,KAAMX,WAAW,CAAC,KAAK,CAAE;IACtCL,IAAI,EAAEA,IAAK;IACXC,KAAK,EAAEA,KAAM;IAAA,GACTC;EAAI,gBAERpB,KAAA,CAAA6B,aAAA;IAAKd,SAAS,EAAC;EAAc,gBAC3Bf,KAAA,CAAA6B,aAAA;IAAGd,SAAS,EAAC;EAAO,GAAED,QAAY,CAAC,eACnCd,KAAA,CAAA6B,aAAA;IAAKd,SAAS,EAAC;EAA4B,gBACzCf,KAAA,CAAA6B,aAAA,CAACpB,UAAU;IACT0B,MAAM,EAAE3B,IAAK;IACb4B,GAAG,EAAEZ,cAAe;IACpBT,SAAS,EAAC,kBAAkB;IAC5BsB,GAAG,EAAEhC,KAAM;IACXiC,OAAO,EAAErB,OAAQ;IACjBsB,OAAO,EAAC,SAAS;IACjBC,YAAY;EAAA,CACb,CACE,CACF,CAAC,EACL3B,MAAM,iBACLb,KAAA,CAAA6B,aAAA,CAACtB,MAAM;IACLkC,EAAE,EAAE5B,MAAM,CAAC6B,IAAI,GAAG,GAAG,GAAG,QAAS;IACjCA,IAAI,EAAE7B,MAAM,CAAC6B,IAAK;IAClBJ,OAAO,EAAEzB,MAAM,CAACyB,OAAQ;IACxBK,IAAI,EAAC,IAAI;IACTJ,OAAO,EAAC;EAAyB,GAEhC1B,MAAM,CAAC+B,KACF,CAED,CACG,CAAC;AAErB;AAEA,eAAehC,KAAK","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","ToggleButtonGroup"],"sources":["../../src/ToggleButton/index.jsx"],"sourcesContent":["export { default } from 'react-bootstrap/ToggleButton';\nexport { default as ToggleButtonGroup } from 'react-bootstrap/ToggleButtonGroup';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,8BAA8B;AACtD,SAASA,OAAO,IAAIC,iBAAiB,QAAQ,mCAAmC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["default","ToggleButtonGroup"],"sources":["../../src/ToggleButton/index.tsx"],"sourcesContent":["export { default } from 'react-bootstrap/ToggleButton';\nexport { default as ToggleButtonGroup } from 'react-bootstrap/ToggleButtonGroup';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,8BAA8B;AACtD,SAASA,OAAO,IAAIC,iBAAiB,QAAQ,mCAAmC","ignoreList":[]}
@@ -3,20 +3,17 @@ import PropTypes from 'prop-types';
3
3
  import classNames from 'classnames';
4
4
  import BaseTooltip from 'react-bootstrap/Tooltip';
5
5
  const PLACEMENT_VARIANTS = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
6
- const Tooltip = /*#__PURE__*/React.forwardRef((_ref, ref) => {
7
- let {
8
- children,
9
- variant,
10
- ...props
11
- } = _ref;
12
- return /*#__PURE__*/React.createElement(BaseTooltip, {
13
- ...props,
14
- className: classNames({
15
- 'tooltip-light': variant === 'light'
16
- }, props.className),
17
- ref: ref
18
- }, children);
19
- });
6
+ const Tooltip = /*#__PURE__*/React.forwardRef(({
7
+ children,
8
+ variant,
9
+ ...props
10
+ }, ref) => /*#__PURE__*/React.createElement(BaseTooltip, {
11
+ ...props,
12
+ className: classNames({
13
+ 'tooltip-light': variant === 'light'
14
+ }, props.className),
15
+ ref: ref
16
+ }, children));
20
17
  Tooltip.propTypes = {
21
18
  ...BaseTooltip.propTypes,
22
19
  /** An html id attribute, necessary for accessibility. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classNames","BaseTooltip","PLACEMENT_VARIANTS","Tooltip","forwardRef","_ref","ref","children","variant","props","createElement","className","propTypes","id","string","isRequired","placement","oneOf","arrowProps","shape","oneOfType","func","current","element","style","show","bool","popper","bsPrefix","node","defaultProps","undefined"],"sources":["../../src/Tooltip/index.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport BaseTooltip, { type TooltipProps as BaseTooltipProps } from 'react-bootstrap/Tooltip';\nimport { type Placement } from 'react-bootstrap/Overlay';\nimport type { ComponentWithAsProp } from '../utils/types/bootstrap';\n\ninterface TooltipProps extends BaseTooltipProps {\n variant?: 'light';\n}\n\nconst PLACEMENT_VARIANTS: Placement[] = [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n\nconst Tooltip: ComponentWithAsProp<'div', TooltipProps> = React.forwardRef(({\n children,\n variant,\n ...props\n}, ref) => (\n <BaseTooltip\n {...props}\n className={classNames({ 'tooltip-light': variant === 'light' }, props.className)}\n ref={ref}\n >\n {children}\n </BaseTooltip>\n));\n\nTooltip.propTypes = {\n ...BaseTooltip.propTypes,\n /** An html id attribute, necessary for accessibility. */\n id: PropTypes.string.isRequired,\n /**\n * Sets the direction the `Tooltip` is positioned towards.\n *\n * This is generally provided by the `Overlay` component positioning the tooltip.\n */\n placement: PropTypes.oneOf(PLACEMENT_VARIANTS),\n /**\n * An `Overlay` injected set of props for positioning the `Tooltip` arrow.\n *\n * This is generally provided by the `Overlay` component positioning the tooltip.\n */\n arrowProps: PropTypes.shape({\n ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.element }),\n ]),\n style: PropTypes.shape({}),\n }),\n /** Whether the `Overlay` is shown. */\n show: PropTypes.bool,\n /** A `Popper.js` config object passed to the the underlying popper instance. */\n popper: PropTypes.shape({}),\n /** Overrides underlying component base CSS class name */\n bsPrefix: PropTypes.string,\n /** Specifies the content of the `Tooltip` */\n children: PropTypes.node,\n /** Specifies class name to append to the base element */\n className: PropTypes.string,\n /** The visual style of the `Tooltip` */\n variant: PropTypes.string,\n};\n\nTooltip.defaultProps = {\n ...Tooltip.defaultProps,\n id: undefined,\n placement: 'right',\n arrowProps: undefined,\n show: undefined,\n popper: undefined,\n children: undefined,\n className: undefined,\n variant: undefined,\n bsPrefix: 'tooltip',\n};\n\nexport default Tooltip;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,WAAW,MAAiD,yBAAyB;AAQ5F,MAAMC,kBAA+B,GAAG,CACtC,YAAY,EACZ,MAAM,EACN,UAAU,EACV,WAAW,EACX,KAAK,EACL,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,UAAU,EACV,MAAM,EACN,YAAY,CACb;AAED,MAAMC,OAAiD,gBAAGL,KAAK,CAACM,UAAU,CAAC,CAAAC,IAAA,EAIxEC,GAAG;EAAA,IAJsE;IAC1EC,QAAQ;IACRC,OAAO;IACP,GAAGC;EACL,CAAC,GAAAJ,IAAA;EAAA,oBACCP,KAAA,CAAAY,aAAA,CAACT,WAAW;IAAA,GACNQ,KAAK;IACTE,SAAS,EAAEX,UAAU,CAAC;MAAE,eAAe,EAAEQ,OAAO,KAAK;IAAQ,CAAC,EAAEC,KAAK,CAACE,SAAS,CAAE;IACjFL,GAAG,EAAEA;EAAI,GAERC,QACU,CAAC;AAAA,CACf,CAAC;AAEFJ,OAAO,CAACS,SAAS,GAAG;EAClB,GAAGX,WAAW,CAACW,SAAS;EACxB;EACAC,EAAE,EAAEd,SAAS,CAACe,MAAM,CAACC,UAAU;EAC/B;AACF;AACA;AACA;AACA;EACEC,SAAS,EAAEjB,SAAS,CAACkB,KAAK,CAACf,kBAAkB,CAAC;EAC9C;AACF;AACA;AACA;AACA;EACEgB,UAAU,EAAEnB,SAAS,CAACoB,KAAK,CAAC;IAC1Bb,GAAG,EAAEP,SAAS,CAACqB,SAAS,CAAC,CACvBrB,SAAS,CAACsB,IAAI,EACdtB,SAAS,CAACoB,KAAK,CAAC;MAAEG,OAAO,EAAEvB,SAAS,CAACwB;IAAQ,CAAC,CAAC,CAChD,CAAC;IACFC,KAAK,EAAEzB,SAAS,CAACoB,KAAK,CAAC,CAAC,CAAC;EAC3B,CAAC,CAAC;EACF;EACAM,IAAI,EAAE1B,SAAS,CAAC2B,IAAI;EACpB;EACAC,MAAM,EAAE5B,SAAS,CAACoB,KAAK,CAAC,CAAC,CAAC,CAAC;EAC3B;EACAS,QAAQ,EAAE7B,SAAS,CAACe,MAAM;EAC1B;EACAP,QAAQ,EAAER,SAAS,CAAC8B,IAAI;EACxB;EACAlB,SAAS,EAAEZ,SAAS,CAACe,MAAM;EAC3B;EACAN,OAAO,EAAET,SAAS,CAACe;AACrB,CAAC;AAEDX,OAAO,CAAC2B,YAAY,GAAG;EACrB,GAAG3B,OAAO,CAAC2B,YAAY;EACvBjB,EAAE,EAAEkB,SAAS;EACbf,SAAS,EAAE,OAAO;EAClBE,UAAU,EAAEa,SAAS;EACrBN,IAAI,EAAEM,SAAS;EACfJ,MAAM,EAAEI,SAAS;EACjBxB,QAAQ,EAAEwB,SAAS;EACnBpB,SAAS,EAAEoB,SAAS;EACpBvB,OAAO,EAAEuB,SAAS;EAClBH,QAAQ,EAAE;AACZ,CAAC;AAED,eAAezB,OAAO","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classNames","BaseTooltip","PLACEMENT_VARIANTS","Tooltip","forwardRef","children","variant","props","ref","createElement","className","propTypes","id","string","isRequired","placement","oneOf","arrowProps","shape","oneOfType","func","current","element","style","show","bool","popper","bsPrefix","node","defaultProps","undefined"],"sources":["../../src/Tooltip/index.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport BaseTooltip, { type TooltipProps as BaseTooltipProps } from 'react-bootstrap/Tooltip';\nimport { type Placement } from 'react-bootstrap/Overlay';\nimport type { ComponentWithAsProp } from '../utils/types/bootstrap';\n\ninterface TooltipProps extends BaseTooltipProps {\n variant?: 'light';\n}\n\nconst PLACEMENT_VARIANTS: Placement[] = [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n\nconst Tooltip: ComponentWithAsProp<'div', TooltipProps> = React.forwardRef(({\n children,\n variant,\n ...props\n}, ref) => (\n <BaseTooltip\n {...props}\n className={classNames({ 'tooltip-light': variant === 'light' }, props.className)}\n ref={ref}\n >\n {children}\n </BaseTooltip>\n));\n\nTooltip.propTypes = {\n ...BaseTooltip.propTypes,\n /** An html id attribute, necessary for accessibility. */\n id: PropTypes.string.isRequired,\n /**\n * Sets the direction the `Tooltip` is positioned towards.\n *\n * This is generally provided by the `Overlay` component positioning the tooltip.\n */\n placement: PropTypes.oneOf(PLACEMENT_VARIANTS),\n /**\n * An `Overlay` injected set of props for positioning the `Tooltip` arrow.\n *\n * This is generally provided by the `Overlay` component positioning the tooltip.\n */\n arrowProps: PropTypes.shape({\n ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.element }),\n ]),\n style: PropTypes.shape({}),\n }),\n /** Whether the `Overlay` is shown. */\n show: PropTypes.bool,\n /** A `Popper.js` config object passed to the the underlying popper instance. */\n popper: PropTypes.shape({}),\n /** Overrides underlying component base CSS class name */\n bsPrefix: PropTypes.string,\n /** Specifies the content of the `Tooltip` */\n children: PropTypes.node,\n /** Specifies class name to append to the base element */\n className: PropTypes.string,\n /** The visual style of the `Tooltip` */\n variant: PropTypes.string,\n};\n\nTooltip.defaultProps = {\n ...Tooltip.defaultProps,\n id: undefined,\n placement: 'right',\n arrowProps: undefined,\n show: undefined,\n popper: undefined,\n children: undefined,\n className: undefined,\n variant: undefined,\n bsPrefix: 'tooltip',\n};\n\nexport default Tooltip;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,WAAW,MAAiD,yBAAyB;AAQ5F,MAAMC,kBAA+B,GAAG,CACtC,YAAY,EACZ,MAAM,EACN,UAAU,EACV,WAAW,EACX,KAAK,EACL,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,UAAU,EACV,MAAM,EACN,YAAY,CACb;AAED,MAAMC,OAAiD,gBAAGL,KAAK,CAACM,UAAU,CAAC,CAAC;EAC1EC,QAAQ;EACRC,OAAO;EACP,GAAGC;AACL,CAAC,EAAEC,GAAG,kBACJV,KAAA,CAAAW,aAAA,CAACR,WAAW;EAAA,GACNM,KAAK;EACTG,SAAS,EAAEV,UAAU,CAAC;IAAE,eAAe,EAAEM,OAAO,KAAK;EAAQ,CAAC,EAAEC,KAAK,CAACG,SAAS,CAAE;EACjFF,GAAG,EAAEA;AAAI,GAERH,QACU,CACd,CAAC;AAEFF,OAAO,CAACQ,SAAS,GAAG;EAClB,GAAGV,WAAW,CAACU,SAAS;EACxB;EACAC,EAAE,EAAEb,SAAS,CAACc,MAAM,CAACC,UAAU;EAC/B;AACF;AACA;AACA;AACA;EACEC,SAAS,EAAEhB,SAAS,CAACiB,KAAK,CAACd,kBAAkB,CAAC;EAC9C;AACF;AACA;AACA;AACA;EACEe,UAAU,EAAElB,SAAS,CAACmB,KAAK,CAAC;IAC1BV,GAAG,EAAET,SAAS,CAACoB,SAAS,CAAC,CACvBpB,SAAS,CAACqB,IAAI,EACdrB,SAAS,CAACmB,KAAK,CAAC;MAAEG,OAAO,EAAEtB,SAAS,CAACuB;IAAQ,CAAC,CAAC,CAChD,CAAC;IACFC,KAAK,EAAExB,SAAS,CAACmB,KAAK,CAAC,CAAC,CAAC;EAC3B,CAAC,CAAC;EACF;EACAM,IAAI,EAAEzB,SAAS,CAAC0B,IAAI;EACpB;EACAC,MAAM,EAAE3B,SAAS,CAACmB,KAAK,CAAC,CAAC,CAAC,CAAC;EAC3B;EACAS,QAAQ,EAAE5B,SAAS,CAACc,MAAM;EAC1B;EACAR,QAAQ,EAAEN,SAAS,CAAC6B,IAAI;EACxB;EACAlB,SAAS,EAAEX,SAAS,CAACc,MAAM;EAC3B;EACAP,OAAO,EAAEP,SAAS,CAACc;AACrB,CAAC;AAEDV,OAAO,CAAC0B,YAAY,GAAG;EACrB,GAAG1B,OAAO,CAAC0B,YAAY;EACvBjB,EAAE,EAAEkB,SAAS;EACbf,SAAS,EAAE,OAAO;EAClBE,UAAU,EAAEa,SAAS;EACrBN,IAAI,EAAEM,SAAS;EACfJ,MAAM,EAAEI,SAAS;EACjBzB,QAAQ,EAAEyB,SAAS;EACnBpB,SAAS,EAAEoB,SAAS;EACpBxB,OAAO,EAAEwB,SAAS;EAClBH,QAAQ,EAAE;AACZ,CAAC;AAED,eAAexB,OAAO","ignoreList":[]}
@@ -5,16 +5,15 @@ import useWindowSize from '../hooks/useWindowSizeHook';
5
5
  const DEFAULT_TRUNCATE_LINES = 1;
6
6
  const DEFAULT_TRUNCATE_ELLIPSIS = '...';
7
7
  const DEFAULT_TRUNCATE_ELEMENT_TYPE = 'div';
8
- function TruncateDeprecated(_ref) {
9
- let {
10
- children,
11
- lines,
12
- ellipsis,
13
- elementType,
14
- className,
15
- whiteSpace,
16
- onTruncate
17
- } = _ref;
8
+ function TruncateDeprecated({
9
+ children,
10
+ lines,
11
+ ellipsis,
12
+ elementType,
13
+ className,
14
+ whiteSpace,
15
+ onTruncate
16
+ }) {
18
17
  const textContainer = useRef();
19
18
  const {
20
19
  width
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useLayoutEffect","useRef","useEffect","PropTypes","truncateLines","useWindowSize","DEFAULT_TRUNCATE_LINES","DEFAULT_TRUNCATE_ELLIPSIS","DEFAULT_TRUNCATE_ELEMENT_TYPE","TruncateDeprecated","_ref","children","lines","ellipsis","elementType","className","whiteSpace","onTruncate","textContainer","width","current","truncated","original","setAttribute","innerHTML","forEach","element","appendChild","createElement","ref","propTypes","string","isRequired","oneOfType","number","node","bool","func","defaultProps","undefined","Truncate","console","log","Deprecated"],"sources":["../../src/Truncate/index.jsx"],"sourcesContent":["import React, {\n useLayoutEffect, useRef, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { truncateLines } from './utils';\nimport useWindowSize from '../hooks/useWindowSizeHook';\n\nconst DEFAULT_TRUNCATE_LINES = 1;\nconst DEFAULT_TRUNCATE_ELLIPSIS = '...';\nconst DEFAULT_TRUNCATE_ELEMENT_TYPE = 'div';\n\nfunction TruncateDeprecated({\n children, lines, ellipsis, elementType, className, whiteSpace, onTruncate,\n}) {\n const textContainer = useRef();\n const { width } = useWindowSize();\n\n useLayoutEffect(() => {\n if (textContainer.current) {\n const [truncated, original] = truncateLines(children, textContainer.current, {\n ellipsis,\n whiteSpace,\n lines,\n });\n textContainer.current.setAttribute('title', original);\n textContainer.current.setAttribute('aria-label', original);\n textContainer.current.innerHTML = '';\n truncated.forEach(element => {\n textContainer.current.appendChild(element);\n });\n if (onTruncate) {\n onTruncate(truncated);\n }\n }\n }, [children, ellipsis, lines, onTruncate, whiteSpace, width]);\n\n return React.createElement(elementType, {\n ref: textContainer,\n className,\n });\n}\n\nTruncateDeprecated.propTypes = {\n /** The expected text to which the ellipsis would be applied. */\n children: PropTypes.string.isRequired,\n /** The number of lines the text to be truncated to. */\n lines: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** Text content for the ellipsis - will appear after the truncated lines. */\n ellipsis: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.node]),\n /** Adds the whitespace from before the ellipsis. */\n whiteSpace: PropTypes.bool,\n /** Custom html element for truncated text. */\n elementType: PropTypes.string,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n /** Callback fired when a text truncating */\n onTruncate: PropTypes.func,\n};\n\nTruncateDeprecated.defaultProps = {\n lines: DEFAULT_TRUNCATE_LINES,\n ellipsis: DEFAULT_TRUNCATE_ELLIPSIS,\n whiteSpace: false,\n elementType: DEFAULT_TRUNCATE_ELEMENT_TYPE,\n className: undefined,\n onTruncate: undefined,\n};\n\nfunction Truncate() {\n useEffect(() => {\n // eslint-disable-next-line no-console\n console.log('Please use Truncate.Deprecated until a replacement is created');\n }, []);\n return null;\n}\nTruncate.Deprecated = TruncateDeprecated;\n\nexport default Truncate;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useLayoutEffect","useRef","useEffect","PropTypes","truncateLines","useWindowSize","DEFAULT_TRUNCATE_LINES","DEFAULT_TRUNCATE_ELLIPSIS","DEFAULT_TRUNCATE_ELEMENT_TYPE","TruncateDeprecated","children","lines","ellipsis","elementType","className","whiteSpace","onTruncate","textContainer","width","current","truncated","original","setAttribute","innerHTML","forEach","element","appendChild","createElement","ref","propTypes","string","isRequired","oneOfType","number","node","bool","func","defaultProps","undefined","Truncate","console","log","Deprecated"],"sources":["../../src/Truncate/index.jsx"],"sourcesContent":["import React, {\n useLayoutEffect, useRef, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { truncateLines } from './utils';\nimport useWindowSize from '../hooks/useWindowSizeHook';\n\nconst DEFAULT_TRUNCATE_LINES = 1;\nconst DEFAULT_TRUNCATE_ELLIPSIS = '...';\nconst DEFAULT_TRUNCATE_ELEMENT_TYPE = 'div';\n\nfunction TruncateDeprecated({\n children, lines, ellipsis, elementType, className, whiteSpace, onTruncate,\n}) {\n const textContainer = useRef();\n const { width } = useWindowSize();\n\n useLayoutEffect(() => {\n if (textContainer.current) {\n const [truncated, original] = truncateLines(children, textContainer.current, {\n ellipsis,\n whiteSpace,\n lines,\n });\n textContainer.current.setAttribute('title', original);\n textContainer.current.setAttribute('aria-label', original);\n textContainer.current.innerHTML = '';\n truncated.forEach(element => {\n textContainer.current.appendChild(element);\n });\n if (onTruncate) {\n onTruncate(truncated);\n }\n }\n }, [children, ellipsis, lines, onTruncate, whiteSpace, width]);\n\n return React.createElement(elementType, {\n ref: textContainer,\n className,\n });\n}\n\nTruncateDeprecated.propTypes = {\n /** The expected text to which the ellipsis would be applied. */\n children: PropTypes.string.isRequired,\n /** The number of lines the text to be truncated to. */\n lines: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** Text content for the ellipsis - will appear after the truncated lines. */\n ellipsis: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.node]),\n /** Adds the whitespace from before the ellipsis. */\n whiteSpace: PropTypes.bool,\n /** Custom html element for truncated text. */\n elementType: PropTypes.string,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n /** Callback fired when a text truncating */\n onTruncate: PropTypes.func,\n};\n\nTruncateDeprecated.defaultProps = {\n lines: DEFAULT_TRUNCATE_LINES,\n ellipsis: DEFAULT_TRUNCATE_ELLIPSIS,\n whiteSpace: false,\n elementType: DEFAULT_TRUNCATE_ELEMENT_TYPE,\n className: undefined,\n onTruncate: undefined,\n};\n\nfunction Truncate() {\n useEffect(() => {\n // eslint-disable-next-line no-console\n console.log('Please use Truncate.Deprecated until a replacement is created');\n }, []);\n return null;\n}\nTruncate.Deprecated = TruncateDeprecated;\n\nexport default Truncate;\n"],"mappings":"AAAA,OAAOA,KAAK,IACVC,eAAe,EAAEC,MAAM,EAAEC,SAAS,QAC7B,OAAO;AACd,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,aAAa,QAAQ,SAAS;AACvC,OAAOC,aAAa,MAAM,4BAA4B;AAEtD,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,yBAAyB,GAAG,KAAK;AACvC,MAAMC,6BAA6B,GAAG,KAAK;AAE3C,SAASC,kBAAkBA,CAAC;EAC1BC,QAAQ;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,WAAW;EAAEC,SAAS;EAAEC,UAAU;EAAEC;AACjE,CAAC,EAAE;EACD,MAAMC,aAAa,GAAGhB,MAAM,CAAC,CAAC;EAC9B,MAAM;IAAEiB;EAAM,CAAC,GAAGb,aAAa,CAAC,CAAC;EAEjCL,eAAe,CAAC,MAAM;IACpB,IAAIiB,aAAa,CAACE,OAAO,EAAE;MACzB,MAAM,CAACC,SAAS,EAAEC,QAAQ,CAAC,GAAGjB,aAAa,CAACM,QAAQ,EAAEO,aAAa,CAACE,OAAO,EAAE;QAC3EP,QAAQ;QACRG,UAAU;QACVJ;MACF,CAAC,CAAC;MACFM,aAAa,CAACE,OAAO,CAACG,YAAY,CAAC,OAAO,EAAED,QAAQ,CAAC;MACrDJ,aAAa,CAACE,OAAO,CAACG,YAAY,CAAC,YAAY,EAAED,QAAQ,CAAC;MAC1DJ,aAAa,CAACE,OAAO,CAACI,SAAS,GAAG,EAAE;MACpCH,SAAS,CAACI,OAAO,CAACC,OAAO,IAAI;QAC3BR,aAAa,CAACE,OAAO,CAACO,WAAW,CAACD,OAAO,CAAC;MAC5C,CAAC,CAAC;MACF,IAAIT,UAAU,EAAE;QACdA,UAAU,CAACI,SAAS,CAAC;MACvB;IACF;EACF,CAAC,EAAE,CAACV,QAAQ,EAAEE,QAAQ,EAAED,KAAK,EAAEK,UAAU,EAAED,UAAU,EAAEG,KAAK,CAAC,CAAC;EAE9D,oBAAOnB,KAAK,CAAC4B,aAAa,CAACd,WAAW,EAAE;IACtCe,GAAG,EAAEX,aAAa;IAClBH;EACF,CAAC,CAAC;AACJ;AAEAL,kBAAkB,CAACoB,SAAS,GAAG;EAC7B;EACAnB,QAAQ,EAAEP,SAAS,CAAC2B,MAAM,CAACC,UAAU;EACrC;EACApB,KAAK,EAAER,SAAS,CAAC6B,SAAS,CAAC,CAAC7B,SAAS,CAAC2B,MAAM,EAAE3B,SAAS,CAAC8B,MAAM,CAAC,CAAC;EAChE;EACArB,QAAQ,EAAET,SAAS,CAAC6B,SAAS,CAAC,CAAC7B,SAAS,CAAC2B,MAAM,EAAE3B,SAAS,CAAC8B,MAAM,EAAE9B,SAAS,CAAC+B,IAAI,CAAC,CAAC;EACnF;EACAnB,UAAU,EAAEZ,SAAS,CAACgC,IAAI;EAC1B;EACAtB,WAAW,EAAEV,SAAS,CAAC2B,MAAM;EAC7B;EACAhB,SAAS,EAAEX,SAAS,CAAC2B,MAAM;EAC3B;EACAd,UAAU,EAAEb,SAAS,CAACiC;AACxB,CAAC;AAED3B,kBAAkB,CAAC4B,YAAY,GAAG;EAChC1B,KAAK,EAAEL,sBAAsB;EAC7BM,QAAQ,EAAEL,yBAAyB;EACnCQ,UAAU,EAAE,KAAK;EACjBF,WAAW,EAAEL,6BAA6B;EAC1CM,SAAS,EAAEwB,SAAS;EACpBtB,UAAU,EAAEsB;AACd,CAAC;AAED,SAASC,QAAQA,CAAA,EAAG;EAClBrC,SAAS,CAAC,MAAM;IACd;IACAsC,OAAO,CAACC,GAAG,CAAC,+DAA+D,CAAC;EAC9E,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACb;AACAF,QAAQ,CAACG,UAAU,GAAGjC,kBAAkB;AAExC,eAAe8B,QAAQ","ignoreList":[]}
@@ -53,9 +53,7 @@ export const defaultProps = {
53
53
  type: undefined,
54
54
  inputRef: undefined
55
55
  };
56
- const asInput = function (WrappedComponent) {
57
- let inputType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
58
- let labelFirst = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
56
+ const asInput = (WrappedComponent, inputType = undefined, labelFirst = true) => {
59
57
  class NewComponent extends React.Component {
60
58
  constructor(props) {
61
59
  super(props);
@@ -157,11 +155,10 @@ const asInput = function (WrappedComponent) {
157
155
  }
158
156
  return desc;
159
157
  }
160
- getAddons(_ref) {
161
- let {
162
- addonElements,
163
- type
164
- } = _ref;
158
+ getAddons({
159
+ addonElements,
160
+ type
161
+ }) {
165
162
  if (Array.isArray(addonElements)) {
166
163
  return addonElements.map((addon, index) => /*#__PURE__*/React.cloneElement(addon, {
167
164
  key: this.generateInputGroupAddonKey({
@@ -183,11 +180,10 @@ const asInput = function (WrappedComponent) {
183
180
  return false;
184
181
  }
185
182
  }
186
- generateInputGroupAddonKey(_ref2) {
187
- let {
188
- prefix,
189
- index
190
- } = _ref2;
183
+ generateInputGroupAddonKey({
184
+ prefix,
185
+ index
186
+ }) {
191
187
  return `${this.state.id}-${prefix}-${index}`;
192
188
  }
193
189
  renderInput(describedBy) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classNames","newId","ValidationMessage","Variant","withDeprecatedProps","DeprTypes","getDisplayName","WrappedComponent","displayName","name","inputProps","label","oneOfType","string","element","isRequired","id","value","number","dangerIconDescription","description","disabled","bool","required","onChange","func","onKeyPress","onBlur","validator","isValid","validationMessage","className","themes","arrayOf","inline","inputGroupPrepend","inputGroupAppend","type","inputRef","shape","current","instanceOf","defaultProps","undefined","asInput","inputType","arguments","length","labelFirst","NewComponent","Component","constructor","props","handleChange","bind","handleBlur","handleKeyPress","renderInput","state","componentDidUpdate","prevProps","updatedState","Object","keys","setState","event","target","checked","val","getLabel","createElement","htmlFor","isGroupedInput","getDescriptions","errorId","descriptionId","desc","error","invalidMessage","variant","status","hasDangerTheme","DANGER","INFO","variantIconDescription","describedBy","key","trim","getAddons","_ref","addonElements","Array","isArray","map","addon","index","cloneElement","generateInputGroupAddonKey","prefix","indexOf","_ref2","others","renderInputGroupAppend","renderInputGroupPrepend","render","propTypes","deprType","FORMAT","expect","transform","join","message","ariaLabel","MOVED","newName"],"sources":["../../src/asInput/index.jsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport newId from '../utils/newId';\nimport ValidationMessage from '../ValidationMessage/index';\nimport Variant from '../utils/constants';\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\nexport const getDisplayName = WrappedComponent => WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\nexport const inputProps = {\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n name: PropTypes.string.isRequired,\n id: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n dangerIconDescription: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n description: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]),\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n onKeyPress: PropTypes.func,\n onBlur: PropTypes.func,\n validator: PropTypes.func,\n isValid: PropTypes.bool,\n validationMessage: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n className: PropTypes.string,\n themes: PropTypes.arrayOf(PropTypes.string),\n inline: PropTypes.bool,\n inputGroupPrepend: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element), PropTypes.element]),\n inputGroupAppend: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element), PropTypes.element]),\n type: PropTypes.string,\n inputRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(PropTypes.element) }),\n ]),\n};\n\nexport const defaultProps = {\n onChange: () => {},\n onBlur: () => {},\n onKeyPress: () => {},\n id: undefined,\n value: '',\n dangerIconDescription: '',\n description: undefined,\n disabled: false,\n required: false,\n validator: undefined,\n isValid: true,\n validationMessage: '',\n className: undefined,\n themes: [],\n inline: false,\n inputGroupPrepend: undefined,\n inputGroupAppend: undefined,\n type: undefined,\n inputRef: undefined,\n};\n\nconst asInput = (WrappedComponent, inputType = undefined, labelFirst = true) => {\n class NewComponent extends React.Component {\n constructor(props) {\n super(props);\n this.handleChange = this.handleChange.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.renderInput = this.renderInput.bind(this);\n\n const id = this.props.id ? this.props.id : newId('asInput');\n const isValid = this.props.validator ? true : this.props.isValid;\n const validationMessage = this.props.validator ? '' : this.props.validationMessage;\n const dangerIconDescription = this.props.validator ? '' : this.props.dangerIconDescription;\n this.state = {\n id,\n value: this.props.value,\n isValid,\n validationMessage,\n dangerIconDescription,\n };\n }\n\n /* eslint-disable react/no-did-update-set-state */\n componentDidUpdate(prevProps) {\n const updatedState = {};\n if (this.props.value !== prevProps.value) {\n updatedState.value = this.props.value;\n }\n if (this.props.isValid !== prevProps.isValid && !this.props.validator) {\n updatedState.isValid = this.props.isValid;\n }\n if (this.props.validationMessage !== prevProps.validationMessage && !this.props.validator) {\n updatedState.validationMessage = this.props.validationMessage;\n }\n if (this.props.dangerIconDescription !== prevProps.dangerIconDescription\n && !this.props.validator) {\n updatedState.dangerIconDescription = this.props.dangerIconDescription;\n }\n // If validator goes away, revert to props\n if (this.props.validator !== prevProps.validator && !this.props.validator) {\n updatedState.isValid = this.props.isValid;\n updatedState.validationMessage = this.props.validationMessage;\n updatedState.dangerIconDescription = this.props.dangerIconDescription;\n }\n if (Object.keys(updatedState).length > 0) {\n this.setState(updatedState);\n }\n }\n\n handleChange(event) {\n this.setState({ value: event.target.value });\n\n this.props.onChange(\n event.target.type === 'checkbox' ? event.target.checked : event.target.value,\n this.props.name,\n );\n }\n\n handleKeyPress(event) {\n this.props.onKeyPress(event, this.props.name);\n }\n\n handleBlur(event) {\n const val = event.target.value;\n\n if (this.props.validator) {\n this.setState(this.props.validator(val));\n }\n this.props.onBlur(val, this.props.name);\n }\n\n getLabel() {\n return (\n // eslint-disable-next-line jsx-a11y/label-has-for\n <label\n id={`label-${this.state.id}`}\n htmlFor={this.state.id}\n className={classNames({\n 'form-check-label': this.isGroupedInput(),\n })}\n >\n {this.props.label}\n </label>\n );\n }\n\n getDescriptions() {\n // possible future work: multiple feedback msgs?\n const errorId = `error-${this.state.id}`;\n const descriptionId = `description-${this.state.id}`;\n const desc = {};\n\n // TODO: refactor this component to use Variants instead of the themes array.\n desc.error = (\n <ValidationMessage\n id={errorId}\n isValid={this.state.isValid}\n invalidMessage={this.state.validationMessage}\n variant={{\n status: this.hasDangerTheme() ? Variant.status.DANGER : Variant.status.INFO,\n }}\n variantIconDescription={this.state.dangerIconDescription}\n />\n );\n desc.describedBy = errorId;\n\n if (this.props.description) {\n desc.description = (\n <small className=\"form-text\" id={descriptionId} key=\"1\">\n {this.props.description}\n </small>\n );\n desc.describedBy = `${desc.describedBy} ${descriptionId}`.trim();\n }\n\n return desc;\n }\n\n getAddons({ addonElements, type }) {\n if (Array.isArray(addonElements)) {\n return addonElements.map((addon, index) => React.cloneElement(\n addon,\n { key: this.generateInputGroupAddonKey({ prefix: type, index }) },\n ));\n }\n return addonElements;\n }\n\n hasDangerTheme() {\n return this.props.themes.indexOf('danger') >= 0;\n }\n\n isGroupedInput() {\n switch (inputType) {\n case 'checkbox':\n return true;\n default:\n return false;\n }\n }\n\n generateInputGroupAddonKey({ prefix, index }) {\n return `${this.state.id}-${prefix}-${index}`;\n }\n\n renderInput(describedBy) {\n const {\n className,\n inputRef,\n type,\n isValid,\n // unused\n validator,\n themes,\n inline,\n inputGroupPrepend,\n inputGroupAppend,\n label,\n dangerIconDescription,\n description,\n validationMessage,\n ...others\n } = this.props;\n\n return (\n <WrappedComponent\n {...others}\n id={this.state.id}\n value={this.state.value}\n className={classNames(\n {\n 'form-control': !this.isGroupedInput(),\n 'form-check-input': this.isGroupedInput(),\n 'is-invalid': !this.state.isValid,\n 'is-invalid-nodanger': !this.hasDangerTheme(),\n },\n className,\n )}\n aria-describedby={describedBy}\n aria-invalid={!isValid}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onKeyPress={this.handleKeyPress}\n type={type}\n inputRef={inputRef}\n />\n );\n }\n\n renderInputGroupAppend() {\n return (\n <div className=\"input-group-append\">\n {this.getAddons({ type: 'append', addonElements: this.props.inputGroupAppend })}\n </div>\n );\n }\n\n renderInputGroupPrepend() {\n return (\n <div className=\"input-group-prepend\">\n {this.getAddons({ type: 'prepend', addonElements: this.props.inputGroupPrepend })}\n </div>\n );\n }\n\n render() {\n const { description, error, describedBy } = this.getDescriptions();\n return (\n <div className={classNames({\n 'form-group': !this.isGroupedInput(),\n 'form-inline': !this.isGroupedInput() && this.props.inline,\n 'form-check': this.isGroupedInput(),\n })}\n >\n {labelFirst && this.getLabel()}\n {this.props.inputGroupPrepend || this.props.inputGroupAppend ? (\n <div className={classNames('input-group')} data-testid=\"input-group\">\n {this.renderInputGroupPrepend()}\n {this.renderInput(describedBy)}\n {this.renderInputGroupAppend()}\n </div>\n ) : this.renderInput(describedBy)}\n {!labelFirst && this.getLabel()}\n {error}\n {description}\n </div>\n );\n }\n }\n\n NewComponent.displayName = `asInput(${getDisplayName(WrappedComponent)})`;\n\n NewComponent.propTypes = inputProps;\n\n NewComponent.defaultProps = defaultProps;\n\n return withDeprecatedProps(NewComponent, 'asInput', {\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 ariaLabel: {\n deprType: DeprTypes.MOVED,\n newName: 'aria-label',\n },\n });\n};\n\nexport default asInput;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classNames","newId","ValidationMessage","Variant","withDeprecatedProps","DeprTypes","getDisplayName","WrappedComponent","displayName","name","inputProps","label","oneOfType","string","element","isRequired","id","value","number","dangerIconDescription","description","disabled","bool","required","onChange","func","onKeyPress","onBlur","validator","isValid","validationMessage","className","themes","arrayOf","inline","inputGroupPrepend","inputGroupAppend","type","inputRef","shape","current","instanceOf","defaultProps","undefined","asInput","inputType","labelFirst","NewComponent","Component","constructor","props","handleChange","bind","handleBlur","handleKeyPress","renderInput","state","componentDidUpdate","prevProps","updatedState","Object","keys","length","setState","event","target","checked","val","getLabel","createElement","htmlFor","isGroupedInput","getDescriptions","errorId","descriptionId","desc","error","invalidMessage","variant","status","hasDangerTheme","DANGER","INFO","variantIconDescription","describedBy","key","trim","getAddons","addonElements","Array","isArray","map","addon","index","cloneElement","generateInputGroupAddonKey","prefix","indexOf","others","renderInputGroupAppend","renderInputGroupPrepend","render","propTypes","deprType","FORMAT","expect","transform","join","message","ariaLabel","MOVED","newName"],"sources":["../../src/asInput/index.jsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport newId from '../utils/newId';\nimport ValidationMessage from '../ValidationMessage/index';\nimport Variant from '../utils/constants';\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\nexport const getDisplayName = WrappedComponent => WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\nexport const inputProps = {\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n name: PropTypes.string.isRequired,\n id: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n dangerIconDescription: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n description: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]),\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n onKeyPress: PropTypes.func,\n onBlur: PropTypes.func,\n validator: PropTypes.func,\n isValid: PropTypes.bool,\n validationMessage: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n className: PropTypes.string,\n themes: PropTypes.arrayOf(PropTypes.string),\n inline: PropTypes.bool,\n inputGroupPrepend: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element), PropTypes.element]),\n inputGroupAppend: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element), PropTypes.element]),\n type: PropTypes.string,\n inputRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(PropTypes.element) }),\n ]),\n};\n\nexport const defaultProps = {\n onChange: () => {},\n onBlur: () => {},\n onKeyPress: () => {},\n id: undefined,\n value: '',\n dangerIconDescription: '',\n description: undefined,\n disabled: false,\n required: false,\n validator: undefined,\n isValid: true,\n validationMessage: '',\n className: undefined,\n themes: [],\n inline: false,\n inputGroupPrepend: undefined,\n inputGroupAppend: undefined,\n type: undefined,\n inputRef: undefined,\n};\n\nconst asInput = (WrappedComponent, inputType = undefined, labelFirst = true) => {\n class NewComponent extends React.Component {\n constructor(props) {\n super(props);\n this.handleChange = this.handleChange.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.renderInput = this.renderInput.bind(this);\n\n const id = this.props.id ? this.props.id : newId('asInput');\n const isValid = this.props.validator ? true : this.props.isValid;\n const validationMessage = this.props.validator ? '' : this.props.validationMessage;\n const dangerIconDescription = this.props.validator ? '' : this.props.dangerIconDescription;\n this.state = {\n id,\n value: this.props.value,\n isValid,\n validationMessage,\n dangerIconDescription,\n };\n }\n\n /* eslint-disable react/no-did-update-set-state */\n componentDidUpdate(prevProps) {\n const updatedState = {};\n if (this.props.value !== prevProps.value) {\n updatedState.value = this.props.value;\n }\n if (this.props.isValid !== prevProps.isValid && !this.props.validator) {\n updatedState.isValid = this.props.isValid;\n }\n if (this.props.validationMessage !== prevProps.validationMessage && !this.props.validator) {\n updatedState.validationMessage = this.props.validationMessage;\n }\n if (this.props.dangerIconDescription !== prevProps.dangerIconDescription\n && !this.props.validator) {\n updatedState.dangerIconDescription = this.props.dangerIconDescription;\n }\n // If validator goes away, revert to props\n if (this.props.validator !== prevProps.validator && !this.props.validator) {\n updatedState.isValid = this.props.isValid;\n updatedState.validationMessage = this.props.validationMessage;\n updatedState.dangerIconDescription = this.props.dangerIconDescription;\n }\n if (Object.keys(updatedState).length > 0) {\n this.setState(updatedState);\n }\n }\n\n handleChange(event) {\n this.setState({ value: event.target.value });\n\n this.props.onChange(\n event.target.type === 'checkbox' ? event.target.checked : event.target.value,\n this.props.name,\n );\n }\n\n handleKeyPress(event) {\n this.props.onKeyPress(event, this.props.name);\n }\n\n handleBlur(event) {\n const val = event.target.value;\n\n if (this.props.validator) {\n this.setState(this.props.validator(val));\n }\n this.props.onBlur(val, this.props.name);\n }\n\n getLabel() {\n return (\n // eslint-disable-next-line jsx-a11y/label-has-for\n <label\n id={`label-${this.state.id}`}\n htmlFor={this.state.id}\n className={classNames({\n 'form-check-label': this.isGroupedInput(),\n })}\n >\n {this.props.label}\n </label>\n );\n }\n\n getDescriptions() {\n // possible future work: multiple feedback msgs?\n const errorId = `error-${this.state.id}`;\n const descriptionId = `description-${this.state.id}`;\n const desc = {};\n\n // TODO: refactor this component to use Variants instead of the themes array.\n desc.error = (\n <ValidationMessage\n id={errorId}\n isValid={this.state.isValid}\n invalidMessage={this.state.validationMessage}\n variant={{\n status: this.hasDangerTheme() ? Variant.status.DANGER : Variant.status.INFO,\n }}\n variantIconDescription={this.state.dangerIconDescription}\n />\n );\n desc.describedBy = errorId;\n\n if (this.props.description) {\n desc.description = (\n <small className=\"form-text\" id={descriptionId} key=\"1\">\n {this.props.description}\n </small>\n );\n desc.describedBy = `${desc.describedBy} ${descriptionId}`.trim();\n }\n\n return desc;\n }\n\n getAddons({ addonElements, type }) {\n if (Array.isArray(addonElements)) {\n return addonElements.map((addon, index) => React.cloneElement(\n addon,\n { key: this.generateInputGroupAddonKey({ prefix: type, index }) },\n ));\n }\n return addonElements;\n }\n\n hasDangerTheme() {\n return this.props.themes.indexOf('danger') >= 0;\n }\n\n isGroupedInput() {\n switch (inputType) {\n case 'checkbox':\n return true;\n default:\n return false;\n }\n }\n\n generateInputGroupAddonKey({ prefix, index }) {\n return `${this.state.id}-${prefix}-${index}`;\n }\n\n renderInput(describedBy) {\n const {\n className,\n inputRef,\n type,\n isValid,\n // unused\n validator,\n themes,\n inline,\n inputGroupPrepend,\n inputGroupAppend,\n label,\n dangerIconDescription,\n description,\n validationMessage,\n ...others\n } = this.props;\n\n return (\n <WrappedComponent\n {...others}\n id={this.state.id}\n value={this.state.value}\n className={classNames(\n {\n 'form-control': !this.isGroupedInput(),\n 'form-check-input': this.isGroupedInput(),\n 'is-invalid': !this.state.isValid,\n 'is-invalid-nodanger': !this.hasDangerTheme(),\n },\n className,\n )}\n aria-describedby={describedBy}\n aria-invalid={!isValid}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onKeyPress={this.handleKeyPress}\n type={type}\n inputRef={inputRef}\n />\n );\n }\n\n renderInputGroupAppend() {\n return (\n <div className=\"input-group-append\">\n {this.getAddons({ type: 'append', addonElements: this.props.inputGroupAppend })}\n </div>\n );\n }\n\n renderInputGroupPrepend() {\n return (\n <div className=\"input-group-prepend\">\n {this.getAddons({ type: 'prepend', addonElements: this.props.inputGroupPrepend })}\n </div>\n );\n }\n\n render() {\n const { description, error, describedBy } = this.getDescriptions();\n return (\n <div className={classNames({\n 'form-group': !this.isGroupedInput(),\n 'form-inline': !this.isGroupedInput() && this.props.inline,\n 'form-check': this.isGroupedInput(),\n })}\n >\n {labelFirst && this.getLabel()}\n {this.props.inputGroupPrepend || this.props.inputGroupAppend ? (\n <div className={classNames('input-group')} data-testid=\"input-group\">\n {this.renderInputGroupPrepend()}\n {this.renderInput(describedBy)}\n {this.renderInputGroupAppend()}\n </div>\n ) : this.renderInput(describedBy)}\n {!labelFirst && this.getLabel()}\n {error}\n {description}\n </div>\n );\n }\n }\n\n NewComponent.displayName = `asInput(${getDisplayName(WrappedComponent)})`;\n\n NewComponent.propTypes = inputProps;\n\n NewComponent.defaultProps = defaultProps;\n\n return withDeprecatedProps(NewComponent, 'asInput', {\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 ariaLabel: {\n deprType: DeprTypes.MOVED,\n newName: 'aria-label',\n },\n });\n};\n\nexport default asInput;\n"],"mappings":"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","ignoreList":[]}
@@ -3,24 +3,22 @@
3
3
  // files confused. Renaming this file allows us to keep the URLs of the docs site
4
4
  // unchanged.
5
5
  import { useRef, useEffect } from 'react';
6
- function handleEnter(_ref) {
7
- let {
8
- event,
9
- currentIndex,
10
- activeElement
11
- } = _ref;
6
+ function handleEnter({
7
+ event,
8
+ currentIndex,
9
+ activeElement
10
+ }) {
12
11
  if (currentIndex === -1) {
13
12
  return;
14
13
  }
15
14
  activeElement.click();
16
15
  event.preventDefault();
17
16
  }
18
- function handleArrowKey(_ref2) {
19
- let {
20
- event,
21
- currentIndex,
22
- availableElements
23
- } = _ref2;
17
+ function handleArrowKey({
18
+ event,
19
+ currentIndex,
20
+ availableElements
21
+ }) {
24
22
  // If the focus isn't in the container, focus on the first thing
25
23
  if (currentIndex === -1) {
26
24
  availableElements[0].focus();
@@ -46,13 +44,12 @@ function handleArrowKey(_ref2) {
46
44
  /**
47
45
  * Implement arrow key navigation for the given parentNode
48
46
  */
49
- function handleEvents(_ref3) {
50
- let {
51
- event,
52
- ignoredKeys = [],
53
- parentNode,
54
- selectors = 'a,button,input'
55
- } = _ref3;
47
+ function handleEvents({
48
+ event,
49
+ ignoredKeys = [],
50
+ parentNode,
51
+ selectors = 'a,button,input'
52
+ }) {
56
53
  if (!parentNode) {
57
54
  return;
58
55
  }
@@ -97,8 +94,7 @@ function handleEvents(_ref3) {
97
94
  /**
98
95
  * A React hook to enable arrow key navigation on a component.
99
96
  */
100
- export default function useArrowKeyNavigation() {
101
- let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
97
+ export default function useArrowKeyNavigation(props = {}) {
102
98
  const {
103
99
  selectors,
104
100
  ignoredKeys
@@ -1 +1 @@
1
- {"version":3,"file":"useArrowKeyNavigationHook.js","names":["useRef","useEffect","handleEnter","_ref","event","currentIndex","activeElement","click","preventDefault","handleArrowKey","_ref2","availableElements","focus","nextElement","key","length","handleEvents","_ref3","ignoredKeys","parentNode","selectors","includes","document","contains","querySelectorAll","Array","from","findIndex","availableElement","useArrowKeyNavigation","props","arguments","undefined","eventHandler","current","addEventListener","removeEventListener"],"sources":["../../src/hooks/useArrowKeyNavigationHook.tsx"],"sourcesContent":["// Note: this file was renamed from 'useArrowKeyNavigation.tsx' to 'useArrowKeyNavigationHook.tsx' to fix\n// some bugs in the Gatsby www site, where Webpack was getting the .tsx and .mdx\n// files confused. Renaming this file allows us to keep the URLs of the docs site\n// unchanged.\nimport { useRef, useEffect } from 'react';\n\ninterface HandleEnterArgs {\n event: KeyboardEvent;\n currentIndex: number;\n activeElement: HTMLElement;\n}\n\nfunction handleEnter({ event, currentIndex, activeElement }: HandleEnterArgs) {\n if (currentIndex === -1) { return; }\n activeElement.click();\n event.preventDefault();\n}\n\ninterface HandleArrowKeyArgs {\n event: KeyboardEvent;\n currentIndex: number;\n availableElements: NodeListOf<HTMLElement>;\n}\n\nfunction handleArrowKey({ event, currentIndex, availableElements }: HandleArrowKeyArgs) {\n // If the focus isn't in the container, focus on the first thing\n if (currentIndex === -1) { availableElements[0].focus(); }\n\n // Move the focus up or down. Wrap around ends of list.\n let nextElement;\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowRight') {\n nextElement = availableElements[(currentIndex + 1) % availableElements.length];\n }\n if (event.key === 'ArrowUp' || event.key === 'ArrowLeft') {\n nextElement = currentIndex - 1 < 0\n ? availableElements[currentIndex - 1 + availableElements.length]\n : availableElements[currentIndex - 1];\n }\n if (event.key === 'End') {\n nextElement = availableElements[availableElements.length - 1];\n }\n if (event.key === 'Home') {\n [nextElement] = availableElements;\n }\n\n nextElement?.focus();\n event.preventDefault();\n}\n\ninterface HandleEventsArgs {\n event: KeyboardEvent;\n ignoredKeys?: string[];\n parentNode: HTMLElement | undefined;\n selectors?: string;\n}\n\n/**\n * Implement arrow key navigation for the given parentNode\n */\nfunction handleEvents({\n event,\n ignoredKeys = [],\n parentNode,\n selectors = 'a,button,input',\n}: HandleEventsArgs) {\n if (!parentNode) { return; }\n\n const { key } = event;\n\n if (!['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Enter', 'Home', 'End'].includes(key)\n || ignoredKeys.includes(key)) {\n return;\n }\n\n const { activeElement } = document;\n\n // If we're not inside the container, don't do anything\n if (!parentNode.contains(activeElement)) { return; }\n\n // Get the list of elements we're allowed to scroll through\n const availableElements = parentNode.querySelectorAll<HTMLElement>(selectors);\n\n // No elements are available to loop through.\n if (!availableElements.length) { return; }\n\n // Which index is currently selected\n const currentIndex = Array.from(availableElements).findIndex(\n (availableElement) => availableElement === activeElement,\n );\n\n if (key === 'Enter' && activeElement) {\n handleEnter({ event, currentIndex, activeElement: activeElement as HTMLElement });\n }\n handleArrowKey({ event, currentIndex, availableElements });\n}\n\nexport interface ArrowKeyNavProps {\n /** e.g. 'a,button,input' */\n selectors?: string;\n ignoredKeys?: string[];\n}\n\n/**\n * A React hook to enable arrow key navigation on a component.\n */\nexport default function useArrowKeyNavigation(props: ArrowKeyNavProps = {}) {\n const { selectors, ignoredKeys } = props;\n const parentNode = useRef<HTMLElement>();\n\n useEffect(() => {\n const eventHandler = (event: KeyboardEvent) => {\n handleEvents({\n event, ignoredKeys, parentNode: parentNode.current, selectors,\n });\n };\n\n document.addEventListener('keydown', eventHandler);\n\n return () => document.removeEventListener('keydown', eventHandler);\n }, [ignoredKeys, selectors]);\n\n return parentNode;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useArrowKeyNavigationHook.js","names":["useRef","useEffect","handleEnter","event","currentIndex","activeElement","click","preventDefault","handleArrowKey","availableElements","focus","nextElement","key","length","handleEvents","ignoredKeys","parentNode","selectors","includes","document","contains","querySelectorAll","Array","from","findIndex","availableElement","useArrowKeyNavigation","props","eventHandler","current","addEventListener","removeEventListener"],"sources":["../../src/hooks/useArrowKeyNavigationHook.tsx"],"sourcesContent":["// Note: this file was renamed from 'useArrowKeyNavigation.tsx' to 'useArrowKeyNavigationHook.tsx' to fix\n// some bugs in the Gatsby www site, where Webpack was getting the .tsx and .mdx\n// files confused. Renaming this file allows us to keep the URLs of the docs site\n// unchanged.\nimport { useRef, useEffect } from 'react';\n\ninterface HandleEnterArgs {\n event: KeyboardEvent;\n currentIndex: number;\n activeElement: HTMLElement;\n}\n\nfunction handleEnter({ event, currentIndex, activeElement }: HandleEnterArgs) {\n if (currentIndex === -1) { return; }\n activeElement.click();\n event.preventDefault();\n}\n\ninterface HandleArrowKeyArgs {\n event: KeyboardEvent;\n currentIndex: number;\n availableElements: NodeListOf<HTMLElement>;\n}\n\nfunction handleArrowKey({ event, currentIndex, availableElements }: HandleArrowKeyArgs) {\n // If the focus isn't in the container, focus on the first thing\n if (currentIndex === -1) { availableElements[0].focus(); }\n\n // Move the focus up or down. Wrap around ends of list.\n let nextElement;\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowRight') {\n nextElement = availableElements[(currentIndex + 1) % availableElements.length];\n }\n if (event.key === 'ArrowUp' || event.key === 'ArrowLeft') {\n nextElement = currentIndex - 1 < 0\n ? availableElements[currentIndex - 1 + availableElements.length]\n : availableElements[currentIndex - 1];\n }\n if (event.key === 'End') {\n nextElement = availableElements[availableElements.length - 1];\n }\n if (event.key === 'Home') {\n [nextElement] = availableElements;\n }\n\n nextElement?.focus();\n event.preventDefault();\n}\n\ninterface HandleEventsArgs {\n event: KeyboardEvent;\n ignoredKeys?: string[];\n parentNode: HTMLElement | undefined;\n selectors?: string;\n}\n\n/**\n * Implement arrow key navigation for the given parentNode\n */\nfunction handleEvents({\n event,\n ignoredKeys = [],\n parentNode,\n selectors = 'a,button,input',\n}: HandleEventsArgs) {\n if (!parentNode) { return; }\n\n const { key } = event;\n\n if (!['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Enter', 'Home', 'End'].includes(key)\n || ignoredKeys.includes(key)) {\n return;\n }\n\n const { activeElement } = document;\n\n // If we're not inside the container, don't do anything\n if (!parentNode.contains(activeElement)) { return; }\n\n // Get the list of elements we're allowed to scroll through\n const availableElements = parentNode.querySelectorAll<HTMLElement>(selectors);\n\n // No elements are available to loop through.\n if (!availableElements.length) { return; }\n\n // Which index is currently selected\n const currentIndex = Array.from(availableElements).findIndex(\n (availableElement) => availableElement === activeElement,\n );\n\n if (key === 'Enter' && activeElement) {\n handleEnter({ event, currentIndex, activeElement: activeElement as HTMLElement });\n }\n handleArrowKey({ event, currentIndex, availableElements });\n}\n\nexport interface ArrowKeyNavProps {\n /** e.g. 'a,button,input' */\n selectors?: string;\n ignoredKeys?: string[];\n}\n\n/**\n * A React hook to enable arrow key navigation on a component.\n */\nexport default function useArrowKeyNavigation(props: ArrowKeyNavProps = {}) {\n const { selectors, ignoredKeys } = props;\n const parentNode = useRef<HTMLElement>();\n\n useEffect(() => {\n const eventHandler = (event: KeyboardEvent) => {\n handleEvents({\n event, ignoredKeys, parentNode: parentNode.current, selectors,\n });\n };\n\n document.addEventListener('keydown', eventHandler);\n\n return () => document.removeEventListener('keydown', eventHandler);\n }, [ignoredKeys, selectors]);\n\n return parentNode;\n}\n"],"mappings":"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","ignoreList":[]}