@canonical/react-components 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/package.json +7 -10
  2. package/dist-esm/components/Accordion/Accordion.js +0 -52
  3. package/dist-esm/components/Accordion/AccordionSection/AccordionSection.js +0 -47
  4. package/dist-esm/components/Accordion/AccordionSection/index.js +0 -1
  5. package/dist-esm/components/Accordion/index.js +0 -1
  6. package/dist-esm/components/ActionButton/ActionButton.js +0 -106
  7. package/dist-esm/components/ActionButton/index.js +0 -1
  8. package/dist-esm/components/ApplicationLayout/AppAside/AppAside.js +0 -29
  9. package/dist-esm/components/ApplicationLayout/AppAside/index.js +0 -1
  10. package/dist-esm/components/ApplicationLayout/AppMain/AppMain.js +0 -21
  11. package/dist-esm/components/ApplicationLayout/AppMain/index.js +0 -1
  12. package/dist-esm/components/ApplicationLayout/AppNavigation/AppNavigation.js +0 -31
  13. package/dist-esm/components/ApplicationLayout/AppNavigation/index.js +0 -1
  14. package/dist-esm/components/ApplicationLayout/AppNavigationBar/AppNavigationBar.js +0 -24
  15. package/dist-esm/components/ApplicationLayout/AppNavigationBar/index.js +0 -1
  16. package/dist-esm/components/ApplicationLayout/AppStatus/AppStatus.js +0 -21
  17. package/dist-esm/components/ApplicationLayout/AppStatus/index.js +0 -1
  18. package/dist-esm/components/ApplicationLayout/Application/Application.js +0 -22
  19. package/dist-esm/components/ApplicationLayout/Application/index.js +0 -1
  20. package/dist-esm/components/ApplicationLayout/ApplicationLayout.js +0 -113
  21. package/dist-esm/components/ApplicationLayout/index.js +0 -7
  22. package/dist-esm/components/ArticlePagination/ArticlePagination.js +0 -39
  23. package/dist-esm/components/ArticlePagination/index.js +0 -1
  24. package/dist-esm/components/Badge/Badge.js +0 -64
  25. package/dist-esm/components/Badge/index.js +0 -1
  26. package/dist-esm/components/Button/Button.js +0 -55
  27. package/dist-esm/components/Button/index.js +0 -1
  28. package/dist-esm/components/Card/Card.js +0 -45
  29. package/dist-esm/components/Card/index.js +0 -1
  30. package/dist-esm/components/CheckboxInput/CheckableInput/CheckableInput.js +0 -35
  31. package/dist-esm/components/CheckboxInput/CheckableInput/index.js +0 -1
  32. package/dist-esm/components/CheckboxInput/CheckboxInput.js +0 -24
  33. package/dist-esm/components/CheckboxInput/index.js +0 -1
  34. package/dist-esm/components/Chip/Chip.js +0 -81
  35. package/dist-esm/components/Chip/index.js +0 -1
  36. package/dist-esm/components/Code/Code.js +0 -49
  37. package/dist-esm/components/Code/index.js +0 -1
  38. package/dist-esm/components/CodeSnippet/CodeSnippet.js +0 -28
  39. package/dist-esm/components/CodeSnippet/CodeSnippetBlock.js +0 -64
  40. package/dist-esm/components/CodeSnippet/CodeSnippetDropdown.js +0 -27
  41. package/dist-esm/components/CodeSnippet/index.js +0 -2
  42. package/dist-esm/components/Col/Col.js +0 -38
  43. package/dist-esm/components/Col/index.js +0 -1
  44. package/dist-esm/components/ConfirmationButton/ConfirmationButton.js +0 -63
  45. package/dist-esm/components/ConfirmationButton/index.js +0 -1
  46. package/dist-esm/components/ConfirmationModal/ConfirmationModal.js +0 -47
  47. package/dist-esm/components/ConfirmationModal/index.js +0 -1
  48. package/dist-esm/components/ContextualMenu/ContextualMenu.js +0 -215
  49. package/dist-esm/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.js +0 -249
  50. package/dist-esm/components/ContextualMenu/ContextualMenuDropdown/index.js +0 -1
  51. package/dist-esm/components/ContextualMenu/index.js +0 -1
  52. package/dist-esm/components/EmptyState/EmptyState.js +0 -28
  53. package/dist-esm/components/EmptyState/index.js +0 -1
  54. package/dist-esm/components/Field/Field.js +0 -126
  55. package/dist-esm/components/Field/index.js +0 -1
  56. package/dist-esm/components/Form/Form.js +0 -28
  57. package/dist-esm/components/Form/index.js +0 -1
  58. package/dist-esm/components/FormikField/FormikField.js +0 -33
  59. package/dist-esm/components/FormikField/index.js +0 -1
  60. package/dist-esm/components/Icon/Icon.js +0 -61
  61. package/dist-esm/components/Icon/index.js +0 -1
  62. package/dist-esm/components/Input/Input.js +0 -103
  63. package/dist-esm/components/Input/index.js +0 -1
  64. package/dist-esm/components/Label/Label.js +0 -27
  65. package/dist-esm/components/Label/index.js +0 -1
  66. package/dist-esm/components/Link/Link.js +0 -37
  67. package/dist-esm/components/Link/index.js +0 -1
  68. package/dist-esm/components/List/List.js +0 -110
  69. package/dist-esm/components/List/index.js +0 -1
  70. package/dist-esm/components/Loader/Loader.js +0 -14
  71. package/dist-esm/components/Loader/index.js +0 -1
  72. package/dist-esm/components/LoginPageLayout/LoginPageLayout.js +0 -63
  73. package/dist-esm/components/LoginPageLayout/index.js +0 -1
  74. package/dist-esm/components/MainTable/MainTable.js +0 -211
  75. package/dist-esm/components/MainTable/index.js +0 -1
  76. package/dist-esm/components/Modal/Modal.js +0 -135
  77. package/dist-esm/components/Modal/index.js +0 -1
  78. package/dist-esm/components/ModularTable/ModularTable.js +0 -166
  79. package/dist-esm/components/ModularTable/index.js +0 -1
  80. package/dist-esm/components/MultiSelect/FadeInDown/FadeInDown.js +0 -25
  81. package/dist-esm/components/MultiSelect/FadeInDown/index.js +0 -1
  82. package/dist-esm/components/MultiSelect/MultiSelect.js +0 -308
  83. package/dist-esm/components/MultiSelect/index.js +0 -1
  84. package/dist-esm/components/Navigation/Navigation.js +0 -215
  85. package/dist-esm/components/Navigation/NavigationLink/NavigationLink.js +0 -58
  86. package/dist-esm/components/Navigation/NavigationLink/index.js +0 -1
  87. package/dist-esm/components/Navigation/NavigationMenu/NavigationMenu.js +0 -57
  88. package/dist-esm/components/Navigation/NavigationMenu/index.js +0 -1
  89. package/dist-esm/components/Navigation/index.js +0 -1
  90. package/dist-esm/components/Navigation/types.js +0 -1
  91. package/dist-esm/components/Notification/Notification.js +0 -119
  92. package/dist-esm/components/Notification/index.js +0 -1
  93. package/dist-esm/components/NotificationProvider/NotificationProvider.js +0 -83
  94. package/dist-esm/components/NotificationProvider/index.js +0 -2
  95. package/dist-esm/components/NotificationProvider/messageBuilder.js +0 -31
  96. package/dist-esm/components/NotificationProvider/types.js +0 -1
  97. package/dist-esm/components/Pagination/Pagination.js +0 -173
  98. package/dist-esm/components/Pagination/PaginationButton/PaginationButton.js +0 -31
  99. package/dist-esm/components/Pagination/PaginationButton/index.js +0 -1
  100. package/dist-esm/components/Pagination/PaginationItem/PaginationItem.js +0 -20
  101. package/dist-esm/components/Pagination/PaginationItem/index.js +0 -1
  102. package/dist-esm/components/Pagination/index.js +0 -1
  103. package/dist-esm/components/Panel/Panel.js +0 -89
  104. package/dist-esm/components/Panel/index.js +0 -1
  105. package/dist-esm/components/PasswordToggle/PasswordToggle.js +0 -90
  106. package/dist-esm/components/PasswordToggle/index.js +0 -1
  107. package/dist-esm/components/RadioInput/RadioInput.js +0 -22
  108. package/dist-esm/components/RadioInput/index.js +0 -1
  109. package/dist-esm/components/Row/Row.js +0 -22
  110. package/dist-esm/components/Row/index.js +0 -1
  111. package/dist-esm/components/SearchAndFilter/FilterPanelSection/FilterPanelSection.js +0 -107
  112. package/dist-esm/components/SearchAndFilter/FilterPanelSection/index.js +0 -1
  113. package/dist-esm/components/SearchAndFilter/SearchAndFilter.js +0 -286
  114. package/dist-esm/components/SearchAndFilter/index.js +0 -1
  115. package/dist-esm/components/SearchAndFilter/types.js +0 -1
  116. package/dist-esm/components/SearchAndFilter/utils.js +0 -22
  117. package/dist-esm/components/SearchBox/SearchBox.js +0 -95
  118. package/dist-esm/components/SearchBox/index.js +0 -1
  119. package/dist-esm/components/Select/Select.js +0 -84
  120. package/dist-esm/components/Select/index.js +0 -1
  121. package/dist-esm/components/SideNavigation/SideNavigation.js +0 -89
  122. package/dist-esm/components/SideNavigation/SideNavigationBase/SideNavigationBase.js +0 -31
  123. package/dist-esm/components/SideNavigation/SideNavigationBase/index.js +0 -1
  124. package/dist-esm/components/SideNavigation/SideNavigationItem/SideNavigationItem.js +0 -32
  125. package/dist-esm/components/SideNavigation/SideNavigationItem/index.js +0 -1
  126. package/dist-esm/components/SideNavigation/SideNavigationLink/SideNavigationLink.js +0 -25
  127. package/dist-esm/components/SideNavigation/SideNavigationLink/index.js +0 -1
  128. package/dist-esm/components/SideNavigation/SideNavigationText/SideNavigationText.js +0 -20
  129. package/dist-esm/components/SideNavigation/SideNavigationText/index.js +0 -1
  130. package/dist-esm/components/SideNavigation/index.js +0 -4
  131. package/dist-esm/components/Slider/Slider.js +0 -83
  132. package/dist-esm/components/Slider/index.js +0 -1
  133. package/dist-esm/components/Spinner/Spinner.js +0 -36
  134. package/dist-esm/components/Spinner/index.js +0 -1
  135. package/dist-esm/components/StatusLabel/StatusLabel.js +0 -36
  136. package/dist-esm/components/StatusLabel/index.js +0 -1
  137. package/dist-esm/components/Strip/Strip.js +0 -50
  138. package/dist-esm/components/Strip/index.js +0 -1
  139. package/dist-esm/components/SummaryButton/SummaryButton.js +0 -28
  140. package/dist-esm/components/SummaryButton/index.js +0 -1
  141. package/dist-esm/components/Switch/Switch.js +0 -28
  142. package/dist-esm/components/Switch/index.js +0 -1
  143. package/dist-esm/components/Table/Table.js +0 -23
  144. package/dist-esm/components/Table/index.js +0 -1
  145. package/dist-esm/components/TableCell/TableCell.js +0 -26
  146. package/dist-esm/components/TableCell/index.js +0 -1
  147. package/dist-esm/components/TableHeader/TableHeader.js +0 -17
  148. package/dist-esm/components/TableHeader/index.js +0 -1
  149. package/dist-esm/components/TablePagination/TablePagination.js +0 -104
  150. package/dist-esm/components/TablePagination/TablePaginationControls/TablePaginationControls.js +0 -120
  151. package/dist-esm/components/TablePagination/TablePaginationControls/index.js +0 -1
  152. package/dist-esm/components/TablePagination/index.js +0 -1
  153. package/dist-esm/components/TablePagination/utils.js +0 -67
  154. package/dist-esm/components/TableRow/TableRow.js +0 -15
  155. package/dist-esm/components/TableRow/index.js +0 -1
  156. package/dist-esm/components/Tabs/Tabs.js +0 -42
  157. package/dist-esm/components/Tabs/index.js +0 -1
  158. package/dist-esm/components/Textarea/Textarea.js +0 -115
  159. package/dist-esm/components/Textarea/index.js +0 -1
  160. package/dist-esm/components/Tooltip/Tooltip.js +0 -245
  161. package/dist-esm/components/Tooltip/index.js +0 -1
  162. package/dist-esm/enums.js +0 -8
  163. package/dist-esm/hooks/index.js +0 -8
  164. package/dist-esm/hooks/useId.js +0 -13
  165. package/dist-esm/hooks/useListener.js +0 -51
  166. package/dist-esm/hooks/useOnClickOutside.js +0 -38
  167. package/dist-esm/hooks/useOnEscapePressed.js +0 -25
  168. package/dist-esm/hooks/usePagination.js +0 -45
  169. package/dist-esm/hooks/usePrevious.js +0 -16
  170. package/dist-esm/hooks/useThrottle.js +0 -49
  171. package/dist-esm/hooks/useWindowFitment.js +0 -109
  172. package/dist-esm/index.js +0 -69
  173. package/dist-esm/types/index.js +0 -1
  174. package/dist-esm/types/react-table-config.d.js +0 -1
  175. package/dist-esm/utils.js +0 -41
  176. /package/{dist-types → dist}/components/Accordion/Accordion.d.ts +0 -0
  177. /package/{dist-types → dist}/components/Accordion/AccordionSection/AccordionSection.d.ts +0 -0
  178. /package/{dist-types → dist}/components/Accordion/AccordionSection/index.d.ts +0 -0
  179. /package/{dist-types → dist}/components/Accordion/index.d.ts +0 -0
  180. /package/{dist-types → dist}/components/ActionButton/ActionButton.d.ts +0 -0
  181. /package/{dist-types → dist}/components/ActionButton/index.d.ts +0 -0
  182. /package/{dist-types → dist}/components/ApplicationLayout/AppAside/AppAside.d.ts +0 -0
  183. /package/{dist-types → dist}/components/ApplicationLayout/AppAside/index.d.ts +0 -0
  184. /package/{dist-types → dist}/components/ApplicationLayout/AppMain/AppMain.d.ts +0 -0
  185. /package/{dist-types → dist}/components/ApplicationLayout/AppMain/index.d.ts +0 -0
  186. /package/{dist-types → dist}/components/ApplicationLayout/AppNavigation/AppNavigation.d.ts +0 -0
  187. /package/{dist-types → dist}/components/ApplicationLayout/AppNavigation/index.d.ts +0 -0
  188. /package/{dist-types → dist}/components/ApplicationLayout/AppNavigationBar/AppNavigationBar.d.ts +0 -0
  189. /package/{dist-types → dist}/components/ApplicationLayout/AppNavigationBar/index.d.ts +0 -0
  190. /package/{dist-types → dist}/components/ApplicationLayout/AppStatus/AppStatus.d.ts +0 -0
  191. /package/{dist-types → dist}/components/ApplicationLayout/AppStatus/index.d.ts +0 -0
  192. /package/{dist-types → dist}/components/ApplicationLayout/Application/Application.d.ts +0 -0
  193. /package/{dist-types → dist}/components/ApplicationLayout/Application/index.d.ts +0 -0
  194. /package/{dist-types → dist}/components/ApplicationLayout/ApplicationLayout.d.ts +0 -0
  195. /package/{dist-types → dist}/components/ApplicationLayout/index.d.ts +0 -0
  196. /package/{dist-types → dist}/components/ArticlePagination/ArticlePagination.d.ts +0 -0
  197. /package/{dist-types → dist}/components/ArticlePagination/index.d.ts +0 -0
  198. /package/{dist-types → dist}/components/Badge/Badge.d.ts +0 -0
  199. /package/{dist-types → dist}/components/Badge/index.d.ts +0 -0
  200. /package/{dist-types → dist}/components/Button/Button.d.ts +0 -0
  201. /package/{dist-types → dist}/components/Button/index.d.ts +0 -0
  202. /package/{dist-types → dist}/components/Card/Card.d.ts +0 -0
  203. /package/{dist-types → dist}/components/Card/index.d.ts +0 -0
  204. /package/{dist-types → dist}/components/CheckboxInput/CheckableInput/CheckableInput.d.ts +0 -0
  205. /package/{dist-types → dist}/components/CheckboxInput/CheckableInput/index.d.ts +0 -0
  206. /package/{dist-types → dist}/components/CheckboxInput/CheckboxInput.d.ts +0 -0
  207. /package/{dist-types → dist}/components/CheckboxInput/index.d.ts +0 -0
  208. /package/{dist-types → dist}/components/Chip/Chip.d.ts +0 -0
  209. /package/{dist-types → dist}/components/Chip/index.d.ts +0 -0
  210. /package/{dist-types → dist}/components/Code/Code.d.ts +0 -0
  211. /package/{dist-types → dist}/components/Code/index.d.ts +0 -0
  212. /package/{dist-types → dist}/components/CodeSnippet/CodeSnippet.d.ts +0 -0
  213. /package/{dist-types → dist}/components/CodeSnippet/CodeSnippetBlock.d.ts +0 -0
  214. /package/{dist-types → dist}/components/CodeSnippet/CodeSnippetDropdown.d.ts +0 -0
  215. /package/{dist-types → dist}/components/CodeSnippet/index.d.ts +0 -0
  216. /package/{dist-types → dist}/components/Col/Col.d.ts +0 -0
  217. /package/{dist-types → dist}/components/Col/index.d.ts +0 -0
  218. /package/{dist-types → dist}/components/ConfirmationButton/ConfirmationButton.d.ts +0 -0
  219. /package/{dist-types → dist}/components/ConfirmationButton/index.d.ts +0 -0
  220. /package/{dist-types → dist}/components/ConfirmationModal/ConfirmationModal.d.ts +0 -0
  221. /package/{dist-types → dist}/components/ConfirmationModal/index.d.ts +0 -0
  222. /package/{dist-types → dist}/components/ContextualMenu/ContextualMenu.d.ts +0 -0
  223. /package/{dist-types → dist}/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.d.ts +0 -0
  224. /package/{dist-types → dist}/components/ContextualMenu/ContextualMenuDropdown/index.d.ts +0 -0
  225. /package/{dist-types → dist}/components/ContextualMenu/index.d.ts +0 -0
  226. /package/{dist-types → dist}/components/EmptyState/EmptyState.d.ts +0 -0
  227. /package/{dist-types → dist}/components/EmptyState/index.d.ts +0 -0
  228. /package/{dist-types → dist}/components/Field/Field.d.ts +0 -0
  229. /package/{dist-types → dist}/components/Field/index.d.ts +0 -0
  230. /package/{dist-types → dist}/components/Form/Form.d.ts +0 -0
  231. /package/{dist-types → dist}/components/Form/index.d.ts +0 -0
  232. /package/{dist-types → dist}/components/FormikField/FormikField.d.ts +0 -0
  233. /package/{dist-types → dist}/components/FormikField/index.d.ts +0 -0
  234. /package/{dist-types → dist}/components/Icon/Icon.d.ts +0 -0
  235. /package/{dist-types → dist}/components/Icon/index.d.ts +0 -0
  236. /package/{dist-types → dist}/components/Input/Input.d.ts +0 -0
  237. /package/{dist-types → dist}/components/Input/index.d.ts +0 -0
  238. /package/{dist-types → dist}/components/Label/Label.d.ts +0 -0
  239. /package/{dist-types → dist}/components/Label/index.d.ts +0 -0
  240. /package/{dist-types → dist}/components/Link/Link.d.ts +0 -0
  241. /package/{dist-types → dist}/components/Link/index.d.ts +0 -0
  242. /package/{dist-types → dist}/components/List/List.d.ts +0 -0
  243. /package/{dist-types → dist}/components/List/index.d.ts +0 -0
  244. /package/{dist-types → dist}/components/Loader/Loader.d.ts +0 -0
  245. /package/{dist-types → dist}/components/Loader/index.d.ts +0 -0
  246. /package/{dist-types → dist}/components/LoginPageLayout/LoginPageLayout.d.ts +0 -0
  247. /package/{dist-types → dist}/components/LoginPageLayout/index.d.ts +0 -0
  248. /package/{dist-types → dist}/components/MainTable/MainTable.d.ts +0 -0
  249. /package/{dist-types → dist}/components/MainTable/index.d.ts +0 -0
  250. /package/{dist-types → dist}/components/Modal/Modal.d.ts +0 -0
  251. /package/{dist-types → dist}/components/Modal/index.d.ts +0 -0
  252. /package/{dist-types → dist}/components/ModularTable/ModularTable.d.ts +0 -0
  253. /package/{dist-types → dist}/components/ModularTable/index.d.ts +0 -0
  254. /package/{dist-types → dist}/components/MultiSelect/FadeInDown/FadeInDown.d.ts +0 -0
  255. /package/{dist-types → dist}/components/MultiSelect/FadeInDown/index.d.ts +0 -0
  256. /package/{dist-types → dist}/components/MultiSelect/MultiSelect.d.ts +0 -0
  257. /package/{dist-types → dist}/components/MultiSelect/index.d.ts +0 -0
  258. /package/{dist-types → dist}/components/Navigation/Navigation.d.ts +0 -0
  259. /package/{dist-types → dist}/components/Navigation/NavigationLink/NavigationLink.d.ts +0 -0
  260. /package/{dist-types → dist}/components/Navigation/NavigationLink/index.d.ts +0 -0
  261. /package/{dist-types → dist}/components/Navigation/NavigationMenu/NavigationMenu.d.ts +0 -0
  262. /package/{dist-types → dist}/components/Navigation/NavigationMenu/index.d.ts +0 -0
  263. /package/{dist-types → dist}/components/Navigation/index.d.ts +0 -0
  264. /package/{dist-types → dist}/components/Navigation/types.d.ts +0 -0
  265. /package/{dist-types → dist}/components/Notification/Notification.d.ts +0 -0
  266. /package/{dist-types → dist}/components/Notification/index.d.ts +0 -0
  267. /package/{dist-types → dist}/components/NotificationProvider/NotificationProvider.d.ts +0 -0
  268. /package/{dist-types → dist}/components/NotificationProvider/index.d.ts +0 -0
  269. /package/{dist-types → dist}/components/NotificationProvider/messageBuilder.d.ts +0 -0
  270. /package/{dist-types → dist}/components/NotificationProvider/types.d.ts +0 -0
  271. /package/{dist-types → dist}/components/Pagination/Pagination.d.ts +0 -0
  272. /package/{dist-types → dist}/components/Pagination/PaginationButton/PaginationButton.d.ts +0 -0
  273. /package/{dist-types → dist}/components/Pagination/PaginationButton/index.d.ts +0 -0
  274. /package/{dist-types → dist}/components/Pagination/PaginationItem/PaginationItem.d.ts +0 -0
  275. /package/{dist-types → dist}/components/Pagination/PaginationItem/index.d.ts +0 -0
  276. /package/{dist-types → dist}/components/Pagination/index.d.ts +0 -0
  277. /package/{dist-types → dist}/components/Panel/Panel.d.ts +0 -0
  278. /package/{dist-types → dist}/components/Panel/index.d.ts +0 -0
  279. /package/{dist-types → dist}/components/PasswordToggle/PasswordToggle.d.ts +0 -0
  280. /package/{dist-types → dist}/components/PasswordToggle/index.d.ts +0 -0
  281. /package/{dist-types → dist}/components/RadioInput/RadioInput.d.ts +0 -0
  282. /package/{dist-types → dist}/components/RadioInput/index.d.ts +0 -0
  283. /package/{dist-types → dist}/components/Row/Row.d.ts +0 -0
  284. /package/{dist-types → dist}/components/Row/index.d.ts +0 -0
  285. /package/{dist-types → dist}/components/SearchAndFilter/FilterPanelSection/FilterPanelSection.d.ts +0 -0
  286. /package/{dist-types → dist}/components/SearchAndFilter/FilterPanelSection/index.d.ts +0 -0
  287. /package/{dist-types → dist}/components/SearchAndFilter/SearchAndFilter.d.ts +0 -0
  288. /package/{dist-types → dist}/components/SearchAndFilter/index.d.ts +0 -0
  289. /package/{dist-types → dist}/components/SearchAndFilter/types.d.ts +0 -0
  290. /package/{dist-types → dist}/components/SearchAndFilter/utils.d.ts +0 -0
  291. /package/{dist-types → dist}/components/SearchBox/SearchBox.d.ts +0 -0
  292. /package/{dist-types → dist}/components/SearchBox/index.d.ts +0 -0
  293. /package/{dist-types → dist}/components/Select/Select.d.ts +0 -0
  294. /package/{dist-types → dist}/components/Select/index.d.ts +0 -0
  295. /package/{dist-types → dist}/components/SideNavigation/SideNavigation.d.ts +0 -0
  296. /package/{dist-types → dist}/components/SideNavigation/SideNavigationBase/SideNavigationBase.d.ts +0 -0
  297. /package/{dist-types → dist}/components/SideNavigation/SideNavigationBase/index.d.ts +0 -0
  298. /package/{dist-types → dist}/components/SideNavigation/SideNavigationItem/SideNavigationItem.d.ts +0 -0
  299. /package/{dist-types → dist}/components/SideNavigation/SideNavigationItem/index.d.ts +0 -0
  300. /package/{dist-types → dist}/components/SideNavigation/SideNavigationLink/SideNavigationLink.d.ts +0 -0
  301. /package/{dist-types → dist}/components/SideNavigation/SideNavigationLink/index.d.ts +0 -0
  302. /package/{dist-types → dist}/components/SideNavigation/SideNavigationText/SideNavigationText.d.ts +0 -0
  303. /package/{dist-types → dist}/components/SideNavigation/SideNavigationText/index.d.ts +0 -0
  304. /package/{dist-types → dist}/components/SideNavigation/index.d.ts +0 -0
  305. /package/{dist-types → dist}/components/Slider/Slider.d.ts +0 -0
  306. /package/{dist-types → dist}/components/Slider/index.d.ts +0 -0
  307. /package/{dist-types → dist}/components/Spinner/Spinner.d.ts +0 -0
  308. /package/{dist-types → dist}/components/Spinner/index.d.ts +0 -0
  309. /package/{dist-types → dist}/components/StatusLabel/StatusLabel.d.ts +0 -0
  310. /package/{dist-types → dist}/components/StatusLabel/index.d.ts +0 -0
  311. /package/{dist-types → dist}/components/Strip/Strip.d.ts +0 -0
  312. /package/{dist-types → dist}/components/Strip/index.d.ts +0 -0
  313. /package/{dist-types → dist}/components/SummaryButton/SummaryButton.d.ts +0 -0
  314. /package/{dist-types → dist}/components/SummaryButton/index.d.ts +0 -0
  315. /package/{dist-types → dist}/components/Switch/Switch.d.ts +0 -0
  316. /package/{dist-types → dist}/components/Switch/index.d.ts +0 -0
  317. /package/{dist-types → dist}/components/Table/Table.d.ts +0 -0
  318. /package/{dist-types → dist}/components/Table/index.d.ts +0 -0
  319. /package/{dist-types → dist}/components/TableCell/TableCell.d.ts +0 -0
  320. /package/{dist-types → dist}/components/TableCell/index.d.ts +0 -0
  321. /package/{dist-types → dist}/components/TableHeader/TableHeader.d.ts +0 -0
  322. /package/{dist-types → dist}/components/TableHeader/index.d.ts +0 -0
  323. /package/{dist-types → dist}/components/TablePagination/TablePagination.d.ts +0 -0
  324. /package/{dist-types → dist}/components/TablePagination/TablePaginationControls/TablePaginationControls.d.ts +0 -0
  325. /package/{dist-types → dist}/components/TablePagination/TablePaginationControls/index.d.ts +0 -0
  326. /package/{dist-types → dist}/components/TablePagination/index.d.ts +0 -0
  327. /package/{dist-types → dist}/components/TablePagination/utils.d.ts +0 -0
  328. /package/{dist-types → dist}/components/TableRow/TableRow.d.ts +0 -0
  329. /package/{dist-types → dist}/components/TableRow/index.d.ts +0 -0
  330. /package/{dist-types → dist}/components/Tabs/Tabs.d.ts +0 -0
  331. /package/{dist-types → dist}/components/Tabs/index.d.ts +0 -0
  332. /package/{dist-types → dist}/components/Textarea/Textarea.d.ts +0 -0
  333. /package/{dist-types → dist}/components/Textarea/index.d.ts +0 -0
  334. /package/{dist-types → dist}/components/Tooltip/Tooltip.d.ts +0 -0
  335. /package/{dist-types → dist}/components/Tooltip/index.d.ts +0 -0
  336. /package/{dist-types → dist}/enums.d.ts +0 -0
  337. /package/{dist-types → dist}/hooks/index.d.ts +0 -0
  338. /package/{dist-types → dist}/hooks/useId.d.ts +0 -0
  339. /package/{dist-types → dist}/hooks/useListener.d.ts +0 -0
  340. /package/{dist-types → dist}/hooks/useOnClickOutside.d.ts +0 -0
  341. /package/{dist-types → dist}/hooks/useOnEscapePressed.d.ts +0 -0
  342. /package/{dist-types → dist}/hooks/usePagination.d.ts +0 -0
  343. /package/{dist-types → dist}/hooks/usePrevious.d.ts +0 -0
  344. /package/{dist-types → dist}/hooks/useThrottle.d.ts +0 -0
  345. /package/{dist-types → dist}/hooks/useWindowFitment.d.ts +0 -0
  346. /package/{dist-types → dist}/index.d.ts +0 -0
  347. /package/{dist-types → dist}/types/index.d.ts +0 -0
  348. /package/{dist-types → dist}/utils.d.ts +0 -0
@@ -1,245 +0,0 @@
1
- import classNames from "classnames";
2
- import React, { useCallback, useEffect, useId, useRef, useState } from "react";
3
- import usePortal from "react-useportal";
4
- import { useWindowFitment, useListener } from "../../hooks";
5
- export var position = {
6
- btmCenter: "btm-center",
7
- btmLeft: "btm-left",
8
- btmRight: "btm-right",
9
- left: "left",
10
- right: "right",
11
- topCenter: "top-center",
12
- topLeft: "top-left",
13
- topRight: "top-right"
14
- };
15
- var getPositionStyle = (pos, wrapperNode) => {
16
- if (!wrapperNode) {
17
- return null;
18
- }
19
- var dimensions = wrapperNode.getBoundingClientRect();
20
- var {
21
- x,
22
- y,
23
- height,
24
- width
25
- } = dimensions;
26
- var left = x + window.scrollX || 0;
27
- var top = y + window.scrollY || 0;
28
- switch (pos) {
29
- case "btm-center":
30
- left += width / 2;
31
- top += height;
32
- break;
33
- case "btm-left":
34
- top += height;
35
- break;
36
- case "btm-right":
37
- left += width;
38
- top += height;
39
- break;
40
- case "left":
41
- top += height / 2;
42
- break;
43
- case "right":
44
- left += width;
45
- top += height / 2;
46
- break;
47
- case "top-center":
48
- left += width / 2;
49
- break;
50
- case "top-left":
51
- break;
52
- case "top-right":
53
- left += width;
54
- break;
55
- default:
56
- break;
57
- }
58
- return {
59
- position: "absolute",
60
- left,
61
- top
62
- };
63
- };
64
- export var adjustForWindow = (position, fitsWindow) => {
65
- var newPosition = position;
66
- if (!fitsWindow.fromLeft.fitsLeft && newPosition === "left") {
67
- newPosition = "top-right";
68
- }
69
- if (!fitsWindow.fromRight.fitsRight && newPosition === "right") {
70
- newPosition = "top-left";
71
- }
72
- if (!fitsWindow.fromRight.fitsLeft && newPosition.endsWith("-right")) {
73
- newPosition = newPosition.replace("right", "left");
74
- }
75
- if (!fitsWindow.fromLeft.fitsRight && newPosition.endsWith("-left")) {
76
- newPosition = newPosition.replace("left", "right");
77
- }
78
- if (!fitsWindow.fromTop.fitsAbove && newPosition.startsWith("top")) {
79
- newPosition = newPosition.replace("top", "btm");
80
- }
81
- if (!fitsWindow.fromBottom.fitsBelow && newPosition.startsWith("btm")) {
82
- newPosition = newPosition.replace("btm", "top");
83
- }
84
- if (!fitsWindow.fromLeft.fitsRight && !fitsWindow.fromRight.fitsLeft && (newPosition.endsWith("-left") || newPosition.endsWith("-right"))) {
85
- newPosition = newPosition.replace("left", "center").replace("right", "center");
86
- }
87
- if (newPosition.endsWith("center") && (fitsWindow.fromCenter.fitsCentered.fitsRight || fitsWindow.fromCenter.fitsCentered.fitsLeft)) {
88
- if (!fitsWindow.fromCenter.fitsCentered.fitsRight) {
89
- newPosition = newPosition.replace("center", "right");
90
- }
91
- if (!fitsWindow.fromCenter.fitsCentered.fitsLeft) {
92
- newPosition = newPosition.replace("center", "left");
93
- }
94
- }
95
- return newPosition;
96
- };
97
-
98
- /**
99
- * This is the [React](https://reactjs.org/) component for Vanilla [Tooltips](https://vanillaframework.io/docs/patterns/tooltips).
100
- *
101
- * Tooltips are text labels that appear when the user hovers over, focuses on, or touches an element on the screen.
102
- *
103
- * They can be used to provide information about concepts/terms/actions that are not self-explanatory or well known.
104
- *
105
- * An alternative use of tooltips is to provide information on a disabled actionable element, e.g. for disabled buttons, providing information about why they are disabled.
106
- */
107
- var Tooltip = _ref => {
108
- var {
109
- autoAdjust = true,
110
- children,
111
- className,
112
- followMouse = false,
113
- message,
114
- position = "top-left",
115
- positionElementClassName,
116
- tooltipClassName,
117
- zIndex,
118
- delay = 350
119
- } = _ref;
120
- var wrapperRef = useRef(null);
121
- var messageRef = useRef(null);
122
- var [adjustedPosition, setAdjustedPosition] = useState(position);
123
- var [positionStyle, setPositionStyle] = useState({
124
- position: "absolute",
125
- // Initially position the tooltip of the screen in case it gets shown
126
- // before setting the position.
127
- left: -9999999,
128
- top: -9999999
129
- });
130
- var {
131
- openPortal,
132
- closePortal,
133
- isOpen,
134
- Portal
135
- } = usePortal({
136
- programmaticallyOpen: true
137
- });
138
- var tooltipId = useId();
139
- var [timer, setTimer] = useState(null);
140
- var cancelableClosePortal = useCallback(() => {
141
- clearTimeout(timer);
142
- closePortal();
143
- }, [timer, closePortal]);
144
- useEffect(() => {
145
- if (isOpen && !followMouse && wrapperRef.current) {
146
- // Position the tooltip when it becomes visible.
147
- setPositionStyle(getPositionStyle(adjustedPosition, wrapperRef.current));
148
- }
149
- }, [adjustedPosition, isOpen, followMouse]);
150
- var mouseHandler = useCallback(evt => {
151
- // Set the position of the tooltip next to the mouse.
152
- setPositionStyle({
153
- // Don't allow the tooltip to block the mouse events.
154
- pointerEvents: "none",
155
- position: "absolute",
156
- left: evt.pageX,
157
- top: evt.pageY
158
- });
159
- }, []);
160
- var onUpdateWindowFitment = useCallback(fitsWindow => {
161
- setAdjustedPosition(adjustForWindow(position, fitsWindow));
162
- }, [setAdjustedPosition, position]);
163
-
164
- // Handle mouse events.
165
- useListener(wrapperRef.current, mouseHandler, "mousemove", true, followMouse && isOpen);
166
-
167
- // Handle adjusting the position of the tooltip so that it remains on screen.
168
- useWindowFitment(messageRef.current, wrapperRef.current, onUpdateWindowFitment, 20, isOpen, autoAdjust && followMouse);
169
- var handleKeyPress = useCallback(event => {
170
- if (event.key === "Escape") {
171
- cancelableClosePortal();
172
- }
173
- }, [cancelableClosePortal]);
174
- useEffect(() => {
175
- window.addEventListener("keypress", handleKeyPress);
176
- return () => {
177
- window.removeEventListener("keypress", handleKeyPress);
178
- };
179
- }, [handleKeyPress]);
180
- var handleBlur = e => {
181
- var _wrapperRef$current, _messageRef$current, _wrapperRef$current2;
182
- // do not close if the focus is within the tooltip wrapper
183
- if (wrapperRef !== null && wrapperRef !== void 0 && (_wrapperRef$current = wrapperRef.current) !== null && _wrapperRef$current !== void 0 && _wrapperRef$current.contains(document.activeElement)) {
184
- return;
185
- }
186
- if (e.relatedTarget ? !((_messageRef$current = messageRef.current) !== null && _messageRef$current !== void 0 && _messageRef$current.contains(e.relatedTarget)) && !((_wrapperRef$current2 = wrapperRef.current) !== null && _wrapperRef$current2 !== void 0 && _wrapperRef$current2.contains(e.relatedTarget)) : e.target !== messageRef.current) {
187
- cancelableClosePortal();
188
- }
189
- };
190
- var handleClick = e => {
191
- var _messageRef$current2;
192
- // ignore clicks within the tooltip message
193
- if ((_messageRef$current2 = messageRef.current) !== null && _messageRef$current2 !== void 0 && _messageRef$current2.contains(e.target)) {
194
- return;
195
- }
196
- e.target.focus();
197
- openPortal(e);
198
- };
199
- var delayedOpenPortal = useCallback(() => {
200
- if (isOpen) {
201
- return;
202
- }
203
- if (timer) {
204
- clearTimeout(timer);
205
- }
206
- var timeout = setTimeout(() => openPortal(), delay);
207
- setTimer(timeout);
208
- }, [delay, openPortal, timer, isOpen]);
209
- return /*#__PURE__*/React.createElement(React.Fragment, null, message ? /*#__PURE__*/React.createElement("span", {
210
- className: className,
211
- onBlur: handleBlur,
212
- onClick: handleClick,
213
- onFocus: openPortal,
214
- onMouseOut: handleBlur,
215
- onMouseOver: delayedOpenPortal
216
- }, /*#__PURE__*/React.createElement("span", {
217
- className: positionElementClassName,
218
- ref: wrapperRef,
219
- style: {
220
- display: "inline-block"
221
- }
222
- }, React.Children.map(children, child => child && /*#__PURE__*/React.isValidElement(child) ? /*#__PURE__*/React.cloneElement(child, {
223
- "aria-describedby": isOpen ? tooltipId : undefined
224
- }) : child)), isOpen ? /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement("span", {
225
- className: classNames("p-tooltip--".concat(adjustedPosition), "is-detached", tooltipClassName),
226
- "data-testid": "tooltip-portal",
227
- style: positionStyle
228
- }, /*#__PURE__*/React.createElement("span", {
229
- role: "tooltip",
230
- className: "p-tooltip__message",
231
- onClick: event => {
232
- // Prevent clicks inside the message from bubbling to parent
233
- // click handlers.
234
- event.stopPropagation();
235
- },
236
- ref: messageRef,
237
- id: tooltipId,
238
- style: {
239
- zIndex: zIndex
240
- }
241
- }, message))) : null) : /*#__PURE__*/React.createElement("span", {
242
- className: className
243
- }, children));
244
- };
245
- export default Tooltip;
@@ -1 +0,0 @@
1
- export { default, position } from "./Tooltip";
package/dist-esm/enums.js DELETED
@@ -1,8 +0,0 @@
1
- /**
2
- * The Vanilla theme types.
3
- */
4
- export var Theme = /*#__PURE__*/function (Theme) {
5
- Theme["DARK"] = "dark";
6
- Theme["LIGHT"] = "light";
7
- return Theme;
8
- }({});
@@ -1,8 +0,0 @@
1
- export { useOnClickOutside, useClickOutside } from "./useOnClickOutside";
2
- export { useId } from "./useId";
3
- export { useListener } from "./useListener";
4
- export { useOnEscapePressed } from "./useOnEscapePressed";
5
- export { usePrevious } from "./usePrevious";
6
- export { useThrottle } from "./useThrottle";
7
- export { usePagination } from "./usePagination";
8
- export { useWindowFitment } from "./useWindowFitment";
@@ -1,13 +0,0 @@
1
- import { useId as useIdReact } from "react";
2
- import { IS_DEV } from "../utils";
3
-
4
- /**
5
- * @deprecated Code component is deprecated. Use CodeSnippet component or inline `<code>` instead.
6
- */
7
- export var useId = () => {
8
- var id = useIdReact();
9
- if (IS_DEV) {
10
- console.warn('The useId hook has been deprecated. Use `import { useId } from "react";` instead.');
11
- }
12
- return id;
13
- };
@@ -1,51 +0,0 @@
1
- import { useEffect, useRef } from "react";
2
- import { useThrottle } from "./useThrottle";
3
- import { usePrevious } from "./usePrevious";
4
-
5
- /**
6
- * A hook that handles attaching/removing listeners and smartly reattaching if
7
- * any of the attributes change.
8
- * @param targetNode The node to attach the listener to.
9
- * @param callback The function to call from the listener.
10
- * @param eventType The event name.
11
- * @param shouldThrottle Whether the callback calls should be throttled.
12
- * @param shouldListen When the listener should be active.
13
- * @param options Native event listener options.
14
- */
15
- export var useListener = function useListener(targetNode, callback, eventType) {
16
- var shouldThrottle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
17
- var shouldListen = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
18
- var options = arguments.length > 5 ? arguments[5] : undefined;
19
- var isListening = useRef(false);
20
- var throttle = useThrottle(callback);
21
- var eventListener = useRef(shouldThrottle ? throttle : callback);
22
- var previousEventType = usePrevious(eventType);
23
- var previousShouldThrottle = usePrevious(shouldThrottle);
24
- var previousTargetNode = usePrevious(targetNode);
25
- var previousCallback = usePrevious(callback);
26
- var previousOptions = usePrevious(options);
27
- useEffect(() => {
28
- // If any of the props related to the attached listener changed then the
29
- // listener needs to be re-attached.
30
- var listenerAttributesChanged = callback !== previousCallback || eventType !== previousEventType || shouldThrottle !== previousShouldThrottle || targetNode !== previousTargetNode || options !== previousOptions;
31
- if (isListening.current && (!shouldListen || listenerAttributesChanged)) {
32
- previousTargetNode.removeEventListener(previousEventType, eventListener.current, previousOptions);
33
- isListening.current = false;
34
- }
35
- if (shouldThrottle !== previousShouldThrottle || callback !== previousCallback) {
36
- // Set the listener to the callback, or used the throttled callback.
37
- eventListener.current = shouldThrottle ? throttle : callback;
38
- }
39
- if (targetNode && shouldListen && !isListening.current) {
40
- targetNode.addEventListener(eventType, eventListener.current, options);
41
- isListening.current = true;
42
- }
43
- }, [callback, eventType, options, previousCallback, previousEventType, previousOptions, previousShouldThrottle, previousTargetNode, shouldListen, shouldThrottle, targetNode, throttle]);
44
- useEffect(() => () => {
45
- // Unattach the listener if the component gets unmounted while
46
- // listening.
47
- if (targetNode && isListening.current) {
48
- targetNode.removeEventListener(eventType, eventListener.current, options);
49
- }
50
- }, [eventType, targetNode, options]);
51
- };
@@ -1,38 +0,0 @@
1
- import { useCallback, useEffect, useRef } from "react";
2
-
3
- /**
4
- * Handle clicks outside an element.
5
- */
6
- export var useOnClickOutside = function useOnClickOutside(elementRef, onClickOutside) {
7
- var {
8
- isEnabled
9
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
10
- isEnabled: true
11
- };
12
- var handleClickOutside = useCallback(evt => {
13
- var _evt$target, _elementRef$current;
14
- var target = evt.target;
15
- // The target might be something like an SVG node which doesn't provide
16
- // the class name as a string.
17
- var isValidTarget = typeof (evt === null || evt === void 0 || (_evt$target = evt.target) === null || _evt$target === void 0 ? void 0 : _evt$target.className) === "string";
18
- if (!isValidTarget || elementRef !== null && elementRef !== void 0 && elementRef.current && !((_elementRef$current = elementRef.current) !== null && _elementRef$current !== void 0 && _elementRef$current.contains(target)) && elementRef.current !== target) {
19
- onClickOutside();
20
- }
21
- }, [elementRef, onClickOutside]);
22
- useEffect(() => {
23
- if (isEnabled) {
24
- document.addEventListener("click", handleClickOutside, false);
25
- }
26
- return () => document.removeEventListener("click", handleClickOutside, false);
27
- }, [handleClickOutside, isEnabled]);
28
- };
29
-
30
- /**
31
- * Handle clicks outside an element.
32
- * @returns A ref to pass to the element to handle clicks outside of.
33
- */
34
- export var useClickOutside = onClickOutside => {
35
- var ref = useRef(null);
36
- useOnClickOutside(ref, onClickOutside);
37
- return ref;
38
- };
@@ -1,25 +0,0 @@
1
- import { useCallback, useEffect } from "react";
2
-
3
- /**
4
- * Handle the escape key pressed.
5
- */
6
- export var useOnEscapePressed = function useOnEscapePressed(onEscape) {
7
- var {
8
- isEnabled
9
- } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
10
- isEnabled: true
11
- };
12
- var keyDown = useCallback(evt => {
13
- if (evt.code === "Escape") {
14
- onEscape();
15
- }
16
- }, [onEscape]);
17
- useEffect(() => {
18
- if (isEnabled) {
19
- document.addEventListener("keydown", keyDown);
20
- }
21
- return () => {
22
- document.removeEventListener("keydown", keyDown);
23
- };
24
- }, [keyDown, isEnabled]);
25
- };
@@ -1,45 +0,0 @@
1
- import { useMemo, useEffect, useState } from "react";
2
-
3
- /**
4
- * A hook that handles pagination.
5
- * @param data - The data array to paginate.
6
- * @param {Object} options
7
- * @param {number} [options.itemsPerPage] - Number of items per page. Returns all items if no value has been provided.
8
- * @param {number} [options.initialPage=1] - Initial page number. Defaults to 1.
9
- * @param {boolean} [options.autoResetPage=false] - Whether to reset the page number to 1 when the data changes.
10
- */
11
-
12
- export function usePagination(data, options) {
13
- var _data$length;
14
- var defaultOptions = {
15
- initialPage: 1,
16
- autoResetPage: false
17
- };
18
- var {
19
- itemsPerPage,
20
- initialPage,
21
- autoResetPage
22
- } = Object.assign(defaultOptions, options);
23
- var totalItems = (_data$length = data === null || data === void 0 ? void 0 : data.length) !== null && _data$length !== void 0 ? _data$length : 0;
24
- var initialPageIndex = initialPage > 0 ? initialPage - 1 : 0;
25
- var [pageIndex, setPageIndex] = useState(initialPageIndex);
26
- var startIndex = typeof itemsPerPage === "number" ? pageIndex * itemsPerPage : 0;
27
- var paginate = pageNumber => setPageIndex(pageNumber - 1);
28
- useEffect(() => {
29
- if (typeof itemsPerPage === "number" && startIndex >= totalItems) {
30
- !autoResetPage && Math.floor(totalItems / itemsPerPage) > 0 ?
31
- // go to the last available page if the current page is out of bounds
32
- setPageIndex(Math.floor(totalItems / itemsPerPage) - 1) :
33
- // go to the initial page if autoResetPage is true
34
- setPageIndex(0);
35
- }
36
- }, [pageIndex, startIndex, setPageIndex, totalItems, itemsPerPage, autoResetPage]);
37
- var pageData = useMemo(() => typeof itemsPerPage === "number" ? data === null || data === void 0 ? void 0 : data.slice(startIndex, startIndex + itemsPerPage) : data, [startIndex, data, itemsPerPage]);
38
- return {
39
- pageData,
40
- currentPage: pageIndex + 1,
41
- paginate,
42
- itemsPerPage,
43
- totalItems
44
- };
45
- }
@@ -1,16 +0,0 @@
1
- import { useEffect, useRef } from "react";
2
-
3
- /**
4
- * A hook to handle storing the previous value of anything.
5
- * @param value - The value to watch.
6
- * @param setInitial - Whether it should initialise with the current value.
7
- * @return The previous value.
8
- */
9
- export var usePrevious = function usePrevious(value) {
10
- var setInitial = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
11
- var ref = useRef(setInitial ? value : undefined);
12
- useEffect(() => {
13
- ref.current = value;
14
- }, [value]);
15
- return ref.current;
16
- };
@@ -1,49 +0,0 @@
1
- import { useCallback, useEffect, useRef } from "react";
2
- export var THROTTLE_DELAY = 1000 / 60;
3
- // eslint-disable-line @typescript-eslint/no-explicit-any
4
-
5
- /**
6
- * A hook to handle throttling calls to a function.
7
- * @param callback The function to throttle.
8
- * @param delay The throttle delay in ms.
9
- * @return The callback function wrapped in the throttle.
10
- */
11
- export var useThrottle = function useThrottle(callback) {
12
- var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : THROTTLE_DELAY;
13
- var timeout = useRef();
14
- var lastCall = useRef();
15
- var lastArgs = useRef(null);
16
- var throttle = useCallback(function () {
17
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
18
- args[_key] = arguments[_key];
19
- }
20
- lastArgs.current = args;
21
- var callCallback = () => {
22
- callback(...lastArgs.current);
23
- lastCall.current = Date.now();
24
- timeout.current = null;
25
- };
26
- var createTimeout = () => {
27
- timeout.current = window.setTimeout(() => {
28
- callCallback();
29
- timeout.current = null;
30
- }, delay);
31
- };
32
- if (!lastCall.current) {
33
- // Initially call the callback and start a timeout for the next call.
34
- callCallback();
35
- createTimeout();
36
- } else if (!timeout.current && Date.now() - lastCall.current > delay) {
37
- // If a timeout isn't active then create a new one if the delay time
38
- // has elapsed.
39
- createTimeout();
40
- }
41
- }, [callback, delay]);
42
- useEffect(() => () => {
43
- // Clear the timeout when unmounting.
44
- if (timeout.current) {
45
- clearTimeout(timeout.current);
46
- }
47
- }, []);
48
- return throttle;
49
- };
@@ -1,109 +0,0 @@
1
- import { useCallback, useEffect, useRef } from "react";
2
- import { useListener } from "./useListener";
3
- /**
4
- * A hook to determine if an element fits on the window.
5
- * @param targetNode The element to try and fit on the window.
6
- * @param referenceNode The element to use to position the target.
7
- * @param callback The function to call when updating fitment info.
8
- * @param spacer An additional space to leave between the target and reference.
9
- * @param shouldCheck Whether the fitment info should be being checked.
10
- * @param fromMouse Whether the target should be being positioned in relation
11
- * to the mouse. In this case refernceNode will be used to
12
- * listen for mouseover events.
13
- */
14
- export var useWindowFitment = function useWindowFitment(targetNode, referenceNode, callback) {
15
- var spacer = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
16
- var shouldCheck = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
17
- var fromMouse = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
18
- var htmlRef = useRef(document.querySelector("html"));
19
- var update = useCallback(evt => {
20
- var referenceCoordinates;
21
- if (fromMouse) {
22
- if (evt) {
23
- referenceCoordinates = {
24
- // The mouse is a single point so use 0 for the height and width.
25
- height: 0,
26
- left: evt.x || 0,
27
- top: evt.y || 0,
28
- width: 0
29
- };
30
- }
31
- } else if (referenceNode) {
32
- referenceCoordinates = referenceNode.getBoundingClientRect();
33
- }
34
- if (shouldCheck && targetNode && referenceCoordinates) {
35
- var {
36
- height: targetHeight,
37
- width: targetWidth
38
- } = targetNode.getBoundingClientRect();
39
- var {
40
- height: referenceHeight,
41
- left: referenceLeft,
42
- top: referenceTop,
43
- width: referenceWidth
44
- } = referenceCoordinates;
45
- var referenceBottom = referenceTop + referenceHeight;
46
- var referenceRight = referenceLeft + referenceWidth;
47
- var referenceCenterX = referenceLeft + referenceWidth / 2;
48
- var referenceCenterY = referenceTop + referenceHeight / 2;
49
- var windowLeft = htmlRef.current.scrollLeft;
50
- var windowRight = window.innerWidth - htmlRef.current.scrollLeft;
51
- var windowTop = 0;
52
- var windowBottom = window.innerHeight;
53
- var heightIncludingSpace = targetHeight + spacer;
54
- var widthIncludingSpace = targetWidth + spacer;
55
- var widthFromCenter = targetWidth / 2;
56
- var heightFromCenter = targetHeight / 2;
57
- callback({
58
- fromTop: {
59
- fitsAbove: referenceTop - heightIncludingSpace > windowTop,
60
- fitsBelow: referenceTop + heightIncludingSpace < windowBottom,
61
- spaceAbove: Math.abs(windowTop - referenceTop),
62
- spaceBelow: windowBottom - referenceTop
63
- },
64
- fromBottom: {
65
- fitsAbove: referenceBottom - heightIncludingSpace > windowTop,
66
- fitsBelow: referenceBottom + heightIncludingSpace < windowBottom,
67
- spaceAbove: Math.abs(windowTop - referenceBottom),
68
- spaceBelow: windowBottom - referenceBottom
69
- },
70
- fromLeft: {
71
- fitsLeft: referenceLeft - widthIncludingSpace > windowLeft,
72
- fitsRight: referenceLeft + widthIncludingSpace < windowRight,
73
- spaceLeft: Math.abs(windowLeft - referenceLeft),
74
- spaceRight: windowRight - referenceLeft
75
- },
76
- fromRight: {
77
- fitsLeft: referenceRight - widthIncludingSpace > windowLeft,
78
- fitsRight: referenceRight + widthIncludingSpace < windowRight,
79
- spaceLeft: Math.abs(windowLeft - referenceRight),
80
- spaceRight: windowRight - referenceRight
81
- },
82
- fromCenter: {
83
- fitsLeft: referenceCenterX - widthIncludingSpace > windowLeft,
84
- fitsRight: referenceCenterX + widthIncludingSpace < windowRight,
85
- fitsAbove: referenceCenterY - heightIncludingSpace > windowTop,
86
- fitsBelow: referenceCenterY + heightIncludingSpace < windowBottom,
87
- spaceAbove: Math.abs(windowTop - referenceCenterY),
88
- spaceBelow: windowBottom - referenceCenterY,
89
- spaceLeft: Math.abs(windowLeft - referenceCenterX),
90
- spaceRight: windowRight - referenceCenterX,
91
- fitsCentered: {
92
- fitsLeft: referenceCenterX - widthFromCenter > windowLeft,
93
- fitsRight: referenceCenterX + widthFromCenter < windowRight,
94
- fitsAbove: referenceCenterY - heightFromCenter > windowTop,
95
- fitsBelow: referenceCenterY + heightFromCenter < windowBottom
96
- }
97
- }
98
- });
99
- }
100
- }, [shouldCheck, targetNode, callback, spacer, fromMouse, referenceNode]);
101
- useListener(window, update, "resize", true, shouldCheck && !fromMouse);
102
- useListener(window, update, "scroll", true, shouldCheck && !fromMouse);
103
- useListener(referenceNode, update, "mousemove", true, fromMouse && shouldCheck);
104
- useEffect(() => {
105
- if (!fromMouse) {
106
- update();
107
- }
108
- }, [fromMouse, update]);
109
- };