@basic-ui/material 1.0.0-alpha.51 → 1.0.0-alpha.54

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 (673) hide show
  1. package/README.md +3 -3
  2. package/build/cjs/index.js +520 -447
  3. package/build/cjs/index.js.map +1 -1
  4. package/build/esm/Alert/Alert.d.ts +5 -6
  5. package/build/esm/Alert/Alert.js +14 -16
  6. package/build/esm/Alert/Alert.js.map +1 -1
  7. package/build/esm/Alert/index.d.ts +1 -1
  8. package/build/esm/Alert/index.js.map +1 -1
  9. package/build/esm/AppBar/AppBar.d.ts +9 -9
  10. package/build/esm/AppBar/AppBar.js +25 -34
  11. package/build/esm/AppBar/AppBar.js.map +1 -1
  12. package/build/esm/AppBar/AppBarButton.d.ts +3 -4
  13. package/build/esm/AppBar/AppBarButton.js +12 -14
  14. package/build/esm/AppBar/AppBarButton.js.map +1 -1
  15. package/build/esm/AppBar/context.d.ts +4 -5
  16. package/build/esm/AppBar/context.js +8 -6
  17. package/build/esm/AppBar/context.js.map +1 -1
  18. package/build/esm/AppBar/index.d.ts +3 -3
  19. package/build/esm/AppBar/index.js.map +1 -1
  20. package/build/esm/Badge/Badge.d.ts +5 -6
  21. package/build/esm/Badge/Badge.js +25 -26
  22. package/build/esm/Badge/Badge.js.map +1 -1
  23. package/build/esm/Badge/index.d.ts +1 -1
  24. package/build/esm/Badge/index.js.map +1 -1
  25. package/build/esm/BaseLine/BaseLine.d.ts +1 -1
  26. package/build/esm/BaseLine/BaseLine.js +4 -6
  27. package/build/esm/BaseLine/BaseLine.js.map +1 -1
  28. package/build/esm/BaseLine/index.d.ts +1 -1
  29. package/build/esm/BaseLine/index.js.map +1 -1
  30. package/build/esm/BottomSheet/BottomSheet.d.ts +6 -7
  31. package/build/esm/BottomSheet/BottomSheet.js +17 -21
  32. package/build/esm/BottomSheet/BottomSheet.js.map +1 -1
  33. package/build/esm/BottomSheet/BottomSheetSurface.d.ts +4 -5
  34. package/build/esm/BottomSheet/BottomSheetSurface.js +14 -14
  35. package/build/esm/BottomSheet/BottomSheetSurface.js.map +1 -1
  36. package/build/esm/BottomSheet/index.d.ts +1 -1
  37. package/build/esm/BottomSheet/index.js.map +1 -1
  38. package/build/esm/Box/Box.d.ts +23 -23
  39. package/build/esm/Box/Box.js +26 -26
  40. package/build/esm/Box/Box.js.map +1 -1
  41. package/build/esm/Box/index.d.ts +1 -1
  42. package/build/esm/Box/index.js.map +1 -1
  43. package/build/esm/Button/BaseButton.d.ts +14 -7
  44. package/build/esm/Button/BaseButton.js +107 -36
  45. package/build/esm/Button/BaseButton.js.map +1 -1
  46. package/build/esm/Button/Button.d.ts +14 -13
  47. package/build/esm/Button/Button.js +66 -48
  48. package/build/esm/Button/Button.js.map +1 -1
  49. package/build/esm/Button/ButtonGroup.d.ts +4 -5
  50. package/build/esm/Button/ButtonGroup.js +119 -21
  51. package/build/esm/Button/ButtonGroup.js.map +1 -1
  52. package/build/esm/Button/FilledButton.d.ts +10 -11
  53. package/build/esm/Button/FilledButton.js +18 -60
  54. package/build/esm/Button/FilledButton.js.map +1 -1
  55. package/build/esm/Button/FloatingActionButton.d.ts +9 -7
  56. package/build/esm/Button/FloatingActionButton.js +5 -4
  57. package/build/esm/Button/FloatingActionButton.js.map +1 -1
  58. package/build/esm/Button/IconButton.d.ts +8 -8
  59. package/build/esm/Button/IconButton.js +3 -3
  60. package/build/esm/Button/IconButton.js.map +1 -1
  61. package/build/esm/Button/IconFilledButton.d.ts +2 -0
  62. package/build/esm/Button/IconFilledButton.js +3 -0
  63. package/build/esm/Button/IconFilledButton.js.map +1 -0
  64. package/build/esm/Button/IconOutlinedButton.d.ts +2 -0
  65. package/build/esm/Button/IconOutlinedButton.js +3 -0
  66. package/build/esm/Button/IconOutlinedButton.js.map +1 -0
  67. package/build/esm/Button/OutlinedButton.d.ts +3 -4
  68. package/build/esm/Button/OutlinedButton.js +3 -43
  69. package/build/esm/Button/OutlinedButton.js.map +1 -1
  70. package/build/esm/Button/SplitButton.d.ts +9 -0
  71. package/build/esm/Button/SplitButton.js +32 -0
  72. package/build/esm/Button/SplitButton.js.map +1 -0
  73. package/build/esm/Button/TransparentButton.d.ts +10 -11
  74. package/build/esm/Button/TransparentButton.js +11 -54
  75. package/build/esm/Button/TransparentButton.js.map +1 -1
  76. package/build/esm/Button/context.d.ts +9 -8
  77. package/build/esm/Button/context.js +5 -4
  78. package/build/esm/Button/context.js.map +1 -1
  79. package/build/esm/Button/index.d.ts +3 -2
  80. package/build/esm/Button/index.js +1 -0
  81. package/build/esm/Button/index.js.map +1 -1
  82. package/build/esm/CheckBox/CheckBox.d.ts +13 -13
  83. package/build/esm/CheckBox/CheckBox.js +45 -61
  84. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  85. package/build/esm/CheckBox/CheckBoxIcon.d.ts +10 -10
  86. package/build/esm/CheckBox/CheckBoxIcon.js +19 -24
  87. package/build/esm/CheckBox/CheckBoxIcon.js.map +1 -1
  88. package/build/esm/CheckBox/CheckPath.d.ts +3 -3
  89. package/build/esm/CheckBox/CheckPath.js +15 -16
  90. package/build/esm/CheckBox/CheckPath.js.map +1 -1
  91. package/build/esm/CheckBox/IndeterminatePath.d.ts +3 -3
  92. package/build/esm/CheckBox/IndeterminatePath.js +14 -16
  93. package/build/esm/CheckBox/IndeterminatePath.js.map +1 -1
  94. package/build/esm/CheckBox/index.d.ts +1 -1
  95. package/build/esm/CheckBox/index.js.map +1 -1
  96. package/build/esm/Chip/ButtonChip.d.ts +9 -9
  97. package/build/esm/Chip/ButtonChip.js +20 -24
  98. package/build/esm/Chip/ButtonChip.js.map +1 -1
  99. package/build/esm/Chip/Chip.d.ts +4 -4
  100. package/build/esm/Chip/Chip.js.map +1 -1
  101. package/build/esm/Chip/ChipBase.d.ts +10 -10
  102. package/build/esm/Chip/ChipBase.js +50 -54
  103. package/build/esm/Chip/ChipBase.js.map +1 -1
  104. package/build/esm/Chip/ChoiceChip.d.ts +10 -10
  105. package/build/esm/Chip/ChoiceChip.js +34 -38
  106. package/build/esm/Chip/ChoiceChip.js.map +1 -1
  107. package/build/esm/Chip/index.d.ts +2 -2
  108. package/build/esm/Chip/index.js.map +1 -1
  109. package/build/esm/Combobox/Combobox.d.ts +23 -23
  110. package/build/esm/Combobox/Combobox.js +126 -107
  111. package/build/esm/Combobox/Combobox.js.map +1 -1
  112. package/build/esm/Combobox/index.d.ts +1 -1
  113. package/build/esm/Combobox/index.js.map +1 -1
  114. package/build/esm/Dialog/Dialog.d.ts +19 -20
  115. package/build/esm/Dialog/Dialog.js +38 -42
  116. package/build/esm/Dialog/Dialog.js.map +1 -1
  117. package/build/esm/Dialog/DialogBackdrop.d.ts +6 -7
  118. package/build/esm/Dialog/DialogBackdrop.js +18 -17
  119. package/build/esm/Dialog/DialogBackdrop.js.map +1 -1
  120. package/build/esm/Dialog/DialogContainer.d.ts +3 -4
  121. package/build/esm/Dialog/DialogContainer.js +12 -12
  122. package/build/esm/Dialog/DialogContainer.js.map +1 -1
  123. package/build/esm/Dialog/DialogSurface.d.ts +6 -7
  124. package/build/esm/Dialog/DialogSurface.js +26 -26
  125. package/build/esm/Dialog/DialogSurface.js.map +1 -1
  126. package/build/esm/Dialog/Scrim.d.ts +3 -4
  127. package/build/esm/Dialog/Scrim.js +12 -12
  128. package/build/esm/Dialog/Scrim.js.map +1 -1
  129. package/build/esm/Dialog/index.d.ts +2 -2
  130. package/build/esm/Dialog/index.js.map +1 -1
  131. package/build/esm/Dialog/useDialogAnimation.d.ts +57 -824
  132. package/build/esm/Dialog/useDialogAnimation.js +23 -24
  133. package/build/esm/Dialog/useDialogAnimation.js.map +1 -1
  134. package/build/esm/Divider/Divider.d.ts +7 -7
  135. package/build/esm/Divider/Divider.js +27 -28
  136. package/build/esm/Divider/Divider.js.map +1 -1
  137. package/build/esm/Divider/index.d.ts +1 -1
  138. package/build/esm/Divider/index.js.map +1 -1
  139. package/build/esm/FloatingLabel/FloatingLabel.d.ts +13 -13
  140. package/build/esm/FloatingLabel/FloatingLabel.js +27 -33
  141. package/build/esm/FloatingLabel/FloatingLabel.js.map +1 -1
  142. package/build/esm/FloatingLabel/index.d.ts +1 -1
  143. package/build/esm/FloatingLabel/index.js.map +1 -1
  144. package/build/esm/LineRipple/LineRipple.d.ts +9 -9
  145. package/build/esm/LineRipple/LineRipple.js +30 -38
  146. package/build/esm/LineRipple/LineRipple.js.map +1 -1
  147. package/build/esm/LineRipple/index.d.ts +1 -1
  148. package/build/esm/LineRipple/index.js.map +1 -1
  149. package/build/esm/Link/Link.d.ts +9 -9
  150. package/build/esm/Link/Link.js +15 -17
  151. package/build/esm/Link/Link.js.map +1 -1
  152. package/build/esm/Link/index.d.ts +1 -1
  153. package/build/esm/Link/index.js.map +1 -1
  154. package/build/esm/List/List.d.ts +8 -8
  155. package/build/esm/List/List.js +19 -26
  156. package/build/esm/List/List.js.map +1 -1
  157. package/build/esm/List/index.d.ts +1 -1
  158. package/build/esm/List/index.js.map +1 -1
  159. package/build/esm/ListItem/ListItem.d.ts +14 -14
  160. package/build/esm/ListItem/ListItem.js +28 -31
  161. package/build/esm/ListItem/ListItem.js.map +1 -1
  162. package/build/esm/ListItem/ListItemText.d.ts +7 -7
  163. package/build/esm/ListItem/ListItemText.js +12 -16
  164. package/build/esm/ListItem/ListItemText.js.map +1 -1
  165. package/build/esm/ListItem/index.d.ts +2 -2
  166. package/build/esm/ListItem/index.js.map +1 -1
  167. package/build/esm/Menu/Menu.d.ts +18 -18
  168. package/build/esm/Menu/Menu.js +70 -60
  169. package/build/esm/Menu/Menu.js.map +1 -1
  170. package/build/esm/Menu/animation.d.ts +2 -2
  171. package/build/esm/Menu/animation.js +3 -3
  172. package/build/esm/Menu/animation.js.map +1 -1
  173. package/build/esm/Menu/index.d.ts +2 -2
  174. package/build/esm/Menu/index.js.map +1 -1
  175. package/build/esm/NavRail/NavRailItem.d.ts +15 -15
  176. package/build/esm/NavRail/NavRailItem.js +82 -86
  177. package/build/esm/NavRail/NavRailItem.js.map +1 -1
  178. package/build/esm/NavRail/icons/test-icons.d.ts +4 -4
  179. package/build/esm/NavRail/icons/test-icons.js +33 -40
  180. package/build/esm/NavRail/icons/test-icons.js.map +1 -1
  181. package/build/esm/NavRail/index.d.ts +1 -1
  182. package/build/esm/NavRail/index.js.map +1 -1
  183. package/build/esm/NotchedOutline/NotchedOutline.d.ts +14 -14
  184. package/build/esm/NotchedOutline/NotchedOutline.js +26 -34
  185. package/build/esm/NotchedOutline/NotchedOutline.js.map +1 -1
  186. package/build/esm/NotchedOutline/context.d.ts +5 -6
  187. package/build/esm/NotchedOutline/context.js +8 -7
  188. package/build/esm/NotchedOutline/context.js.map +1 -1
  189. package/build/esm/NotchedOutline/index.d.ts +1 -1
  190. package/build/esm/NotchedOutline/index.js.map +1 -1
  191. package/build/esm/NotchedOutline/styledComponents.d.ts +15 -575
  192. package/build/esm/NotchedOutline/styledComponents.js +65 -64
  193. package/build/esm/NotchedOutline/styledComponents.js.map +1 -1
  194. package/build/esm/Paper/Paper.d.ts +11 -11
  195. package/build/esm/Paper/Paper.js +25 -25
  196. package/build/esm/Paper/Paper.js.map +1 -1
  197. package/build/esm/Paper/index.d.ts +1 -1
  198. package/build/esm/Paper/index.js.map +1 -1
  199. package/build/esm/Popover/Popover.d.ts +13 -14
  200. package/build/esm/Popover/Popover.js +33 -39
  201. package/build/esm/Popover/Popover.js.map +1 -1
  202. package/build/esm/Popover/PopoverContainer.d.ts +3 -4
  203. package/build/esm/Popover/PopoverContainer.js +12 -12
  204. package/build/esm/Popover/PopoverContainer.js.map +1 -1
  205. package/build/esm/Popover/PopoverSurface.d.ts +4 -5
  206. package/build/esm/Popover/PopoverSurface.js +15 -15
  207. package/build/esm/Popover/PopoverSurface.js.map +1 -1
  208. package/build/esm/Popover/index.d.ts +1 -1
  209. package/build/esm/Popover/index.js.map +1 -1
  210. package/build/esm/ProgressSpinner/ProgressSpinner.d.ts +7 -8
  211. package/build/esm/ProgressSpinner/ProgressSpinner.js +31 -33
  212. package/build/esm/ProgressSpinner/ProgressSpinner.js.map +1 -1
  213. package/build/esm/ProgressSpinner/index.d.ts +1 -1
  214. package/build/esm/ProgressSpinner/index.js.map +1 -1
  215. package/build/esm/RadioButton/RadioButton.d.ts +3 -4
  216. package/build/esm/RadioButton/RadioButton.js +29 -32
  217. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  218. package/build/esm/RadioButton/RadioButtonIcon.d.ts +6 -6
  219. package/build/esm/RadioButton/RadioButtonIcon.js +10 -12
  220. package/build/esm/RadioButton/RadioButtonIcon.js.map +1 -1
  221. package/build/esm/RadioButton/RadioGroup.d.ts +4 -5
  222. package/build/esm/RadioButton/RadioGroup.js +9 -11
  223. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  224. package/build/esm/RadioButton/index.d.ts +2 -2
  225. package/build/esm/RadioButton/index.js.map +1 -1
  226. package/build/esm/Ripple/Ripple.d.ts +10 -11
  227. package/build/esm/Ripple/Ripple.js +12 -10
  228. package/build/esm/Ripple/Ripple.js.map +1 -1
  229. package/build/esm/Ripple/RippleBox.d.ts +5 -5
  230. package/build/esm/Ripple/RippleBox.js +32 -29
  231. package/build/esm/Ripple/RippleBox.js.map +1 -1
  232. package/build/esm/Ripple/constants.d.ts +7 -7
  233. package/build/esm/Ripple/constants.js +7 -7
  234. package/build/esm/Ripple/constants.js.map +1 -1
  235. package/build/esm/Ripple/index.d.ts +5 -5
  236. package/build/esm/Ripple/index.js.map +1 -1
  237. package/build/esm/Ripple/keyframes.d.ts +4 -4
  238. package/build/esm/Ripple/keyframes.js +7 -7
  239. package/build/esm/Ripple/keyframes.js.map +1 -1
  240. package/build/esm/Ripple/useRipple.d.ts +14 -14
  241. package/build/esm/Ripple/useRipple.js +79 -84
  242. package/build/esm/Ripple/useRipple.js.map +1 -1
  243. package/build/esm/Ripple/useRippleHandlers.d.ts +8 -8
  244. package/build/esm/Ripple/useRippleHandlers.js +21 -30
  245. package/build/esm/Ripple/useRippleHandlers.js.map +1 -1
  246. package/build/esm/Ripple/useRippleSurface.d.ts +22 -787
  247. package/build/esm/Ripple/useRippleSurface.js +87 -88
  248. package/build/esm/Ripple/useRippleSurface.js.map +1 -1
  249. package/build/esm/SearchBar/SearchBar.d.ts +15 -15
  250. package/build/esm/SearchBar/SearchBar.js +48 -63
  251. package/build/esm/SearchBar/SearchBar.js.map +1 -1
  252. package/build/esm/SearchBar/index.d.ts +1 -1
  253. package/build/esm/SearchBar/index.js.map +1 -1
  254. package/build/esm/Select/CustomContainerExample.d.ts +2 -3
  255. package/build/esm/Select/CustomContainerExample.js +29 -34
  256. package/build/esm/Select/CustomContainerExample.js.map +1 -1
  257. package/build/esm/Select/Select.d.ts +33 -32
  258. package/build/esm/Select/Select.js +68 -113
  259. package/build/esm/Select/Select.js.map +1 -1
  260. package/build/esm/Select/SelectIcon.d.ts +6 -6
  261. package/build/esm/Select/SelectIcon.js +11 -13
  262. package/build/esm/Select/SelectIcon.js.map +1 -1
  263. package/build/esm/Select/context.d.ts +9 -9
  264. package/build/esm/Select/context.js +10 -8
  265. package/build/esm/Select/context.js.map +1 -1
  266. package/build/esm/Select/defaultRender.d.ts +3 -3
  267. package/build/esm/Select/defaultRender.js +33 -38
  268. package/build/esm/Select/defaultRender.js.map +1 -1
  269. package/build/esm/Select/index.d.ts +1 -1
  270. package/build/esm/Select/index.js.map +1 -1
  271. package/build/esm/Select/styledComponents.d.ts +15 -15
  272. package/build/esm/Select/styledComponents.js +20 -23
  273. package/build/esm/Select/styledComponents.js.map +1 -1
  274. package/build/esm/SelectItem/SelectItem.d.ts +11 -11
  275. package/build/esm/SelectItem/SelectItem.js +37 -47
  276. package/build/esm/SelectItem/SelectItem.js.map +1 -1
  277. package/build/esm/SelectItem/index.d.ts +1 -1
  278. package/build/esm/SelectItem/index.js.map +1 -1
  279. package/build/esm/SelectionControl/SelectionControlLabel.d.ts +7 -7
  280. package/build/esm/SelectionControl/SelectionControlLabel.js +13 -14
  281. package/build/esm/SelectionControl/SelectionControlLabel.js.map +1 -1
  282. package/build/esm/SelectionControl/SelectionControlText.d.ts +8 -8
  283. package/build/esm/SelectionControl/SelectionControlText.js +20 -20
  284. package/build/esm/SelectionControl/SelectionControlText.js.map +1 -1
  285. package/build/esm/SelectionControl/index.d.ts +2 -2
  286. package/build/esm/SelectionControl/index.js.map +1 -1
  287. package/build/esm/Skeleton/DelayAppearance.d.ts +13 -13
  288. package/build/esm/Skeleton/DelayAppearance.js +18 -20
  289. package/build/esm/Skeleton/DelayAppearance.js.map +1 -1
  290. package/build/esm/Skeleton/Skeleton.d.ts +9 -9
  291. package/build/esm/Skeleton/Skeleton.js +18 -19
  292. package/build/esm/Skeleton/Skeleton.js.map +1 -1
  293. package/build/esm/Skeleton/animation.d.ts +8 -8
  294. package/build/esm/Skeleton/animation.js +11 -11
  295. package/build/esm/Skeleton/animation.js.map +1 -1
  296. package/build/esm/Skeleton/index.d.ts +2 -2
  297. package/build/esm/Skeleton/index.js.map +1 -1
  298. package/build/esm/Slider/Slider.d.ts +17 -17
  299. package/build/esm/Slider/Slider.js +93 -85
  300. package/build/esm/Slider/Slider.js.map +1 -1
  301. package/build/esm/Slider/index.d.ts +1 -1
  302. package/build/esm/Slider/index.js.map +1 -1
  303. package/build/esm/Snackbar/Snackbar.d.ts +10 -8
  304. package/build/esm/Snackbar/Snackbar.js +33 -33
  305. package/build/esm/Snackbar/Snackbar.js.map +1 -1
  306. package/build/esm/Snackbar/Stack.d.ts +31 -31
  307. package/build/esm/Snackbar/Stack.js +74 -106
  308. package/build/esm/Snackbar/Stack.js.map +1 -1
  309. package/build/esm/Snackbar/index.d.ts +3 -3
  310. package/build/esm/Snackbar/index.js.map +1 -1
  311. package/build/esm/Snackbar/useSnackbarAnimation.d.ts +6 -6
  312. package/build/esm/Snackbar/useSnackbarAnimation.js +103 -132
  313. package/build/esm/Snackbar/useSnackbarAnimation.js.map +1 -1
  314. package/build/esm/Switch/Switch.d.ts +13 -13
  315. package/build/esm/Switch/Switch.js +59 -56
  316. package/build/esm/Switch/Switch.js.map +1 -1
  317. package/build/esm/Switch/index.d.ts +1 -1
  318. package/build/esm/Switch/index.js.map +1 -1
  319. package/build/esm/Switch/styledComponents.d.ts +13 -13
  320. package/build/esm/Switch/styledComponents.js +47 -47
  321. package/build/esm/Switch/styledComponents.js.map +1 -1
  322. package/build/esm/Tab/Tab.d.ts +5 -5
  323. package/build/esm/Tab/Tab.js +47 -55
  324. package/build/esm/Tab/Tab.js.map +1 -1
  325. package/build/esm/Tab/TabList.d.ts +9 -10
  326. package/build/esm/Tab/TabList.js +28 -32
  327. package/build/esm/Tab/TabList.js.map +1 -1
  328. package/build/esm/Tab/TabPanel.d.ts +4 -5
  329. package/build/esm/Tab/TabPanel.js +18 -19
  330. package/build/esm/Tab/TabPanel.js.map +1 -1
  331. package/build/esm/Tab/TabPanels.d.ts +4 -4
  332. package/build/esm/Tab/TabPanels.js.map +1 -1
  333. package/build/esm/Tab/Tabs.d.ts +4 -4
  334. package/build/esm/Tab/Tabs.js.map +1 -1
  335. package/build/esm/Tab/context.d.ts +8 -9
  336. package/build/esm/Tab/context.js +8 -7
  337. package/build/esm/Tab/context.js.map +1 -1
  338. package/build/esm/Tab/index.d.ts +5 -5
  339. package/build/esm/Tab/index.js.map +1 -1
  340. package/build/esm/TabIndicator/TabIndicator.d.ts +9 -9
  341. package/build/esm/TabIndicator/TabIndicator.js +69 -86
  342. package/build/esm/TabIndicator/TabIndicator.js.map +1 -1
  343. package/build/esm/TabIndicator/context.d.ts +6 -6
  344. package/build/esm/TabIndicator/context.js +8 -7
  345. package/build/esm/TabIndicator/context.js.map +1 -1
  346. package/build/esm/TabIndicator/index.d.ts +2 -2
  347. package/build/esm/TabIndicator/index.js.map +1 -1
  348. package/build/esm/Table/Table.d.ts +3 -4
  349. package/build/esm/Table/Table.js +13 -14
  350. package/build/esm/Table/Table.js.map +1 -1
  351. package/build/esm/Table/TableBody.d.ts +3 -4
  352. package/build/esm/Table/TableBody.js +9 -11
  353. package/build/esm/Table/TableBody.js.map +1 -1
  354. package/build/esm/Table/TableCell.d.ts +3 -4
  355. package/build/esm/Table/TableCell.js +14 -15
  356. package/build/esm/Table/TableCell.js.map +1 -1
  357. package/build/esm/Table/TableHead.d.ts +3 -4
  358. package/build/esm/Table/TableHead.js +13 -14
  359. package/build/esm/Table/TableHead.js.map +1 -1
  360. package/build/esm/Table/TableRow.d.ts +3 -4
  361. package/build/esm/Table/TableRow.js +13 -14
  362. package/build/esm/Table/TableRow.js.map +1 -1
  363. package/build/esm/Table/context.d.ts +2 -3
  364. package/build/esm/Table/context.js +7 -7
  365. package/build/esm/Table/context.js.map +1 -1
  366. package/build/esm/Table/index.d.ts +5 -5
  367. package/build/esm/Table/index.js.map +1 -1
  368. package/build/esm/Text/LoremIpsum.d.ts +4 -4
  369. package/build/esm/Text/LoremIpsum.js +10 -12
  370. package/build/esm/Text/LoremIpsum.js.map +1 -1
  371. package/build/esm/Text/Text.d.ts +10 -11
  372. package/build/esm/Text/Text.js +15 -19
  373. package/build/esm/Text/Text.js.map +1 -1
  374. package/build/esm/Text/index.d.ts +1 -1
  375. package/build/esm/Text/index.js.map +1 -1
  376. package/build/esm/TextField/FilledContainer.d.ts +18 -18
  377. package/build/esm/TextField/FilledContainer.js +75 -80
  378. package/build/esm/TextField/FilledContainer.js.map +1 -1
  379. package/build/esm/TextField/HelperText.d.ts +10 -10
  380. package/build/esm/TextField/HelperText.js +19 -26
  381. package/build/esm/TextField/HelperText.js.map +1 -1
  382. package/build/esm/TextField/IconContainer.d.ts +5 -5
  383. package/build/esm/TextField/IconContainer.js +21 -9
  384. package/build/esm/TextField/IconContainer.js.map +1 -1
  385. package/build/esm/TextField/Input.d.ts +11 -11
  386. package/build/esm/TextField/Input.js +39 -40
  387. package/build/esm/TextField/Input.js.map +1 -1
  388. package/build/esm/TextField/OutlinedContainer.d.ts +17 -17
  389. package/build/esm/TextField/OutlinedContainer.js +30 -47
  390. package/build/esm/TextField/OutlinedContainer.js.map +1 -1
  391. package/build/esm/TextField/TextField.d.ts +19 -19
  392. package/build/esm/TextField/TextField.js +50 -77
  393. package/build/esm/TextField/TextField.js.map +1 -1
  394. package/build/esm/TextField/consts.d.ts +5 -5
  395. package/build/esm/TextField/consts.js +5 -5
  396. package/build/esm/TextField/consts.js.map +1 -1
  397. package/build/esm/TextField/index.d.ts +4 -4
  398. package/build/esm/TextField/index.js.map +1 -1
  399. package/build/esm/ThemeExplorer/BorderSlider.d.ts +7 -7
  400. package/build/esm/ThemeExplorer/BorderSlider.js +8 -14
  401. package/build/esm/ThemeExplorer/BorderSlider.js.map +1 -1
  402. package/build/esm/ThemeExplorer/ColorPicker.d.ts +8 -8
  403. package/build/esm/ThemeExplorer/ColorPicker.js +19 -24
  404. package/build/esm/ThemeExplorer/ColorPicker.js.map +1 -1
  405. package/build/esm/ThemeExplorer/ColorSchemePicker.d.ts +10 -10
  406. package/build/esm/ThemeExplorer/ColorSchemePicker.js +16 -21
  407. package/build/esm/ThemeExplorer/ColorSchemePicker.js.map +1 -1
  408. package/build/esm/ThemeExplorer/FontAutoComplete.d.ts +9 -9
  409. package/build/esm/ThemeExplorer/FontAutoComplete.js +28 -48
  410. package/build/esm/ThemeExplorer/FontAutoComplete.js.map +1 -1
  411. package/build/esm/ThemeExplorer/TextFieldColorPicker.d.ts +8 -9
  412. package/build/esm/ThemeExplorer/TextFieldColorPicker.js +29 -60
  413. package/build/esm/ThemeExplorer/TextFieldColorPicker.js.map +1 -1
  414. package/build/esm/ThemeExplorer/ThemeBuilder.d.ts +11 -11
  415. package/build/esm/ThemeExplorer/ThemeBuilder.js +155 -184
  416. package/build/esm/ThemeExplorer/ThemeBuilder.js.map +1 -1
  417. package/build/esm/ThemeExplorer/ThemeColors.d.ts +4 -5
  418. package/build/esm/ThemeExplorer/ThemeColors.js +54 -54
  419. package/build/esm/ThemeExplorer/ThemeColors.js.map +1 -1
  420. package/build/esm/ThemeExplorer/components.d.ts +31 -31
  421. package/build/esm/ThemeExplorer/components.js +52 -61
  422. package/build/esm/ThemeExplorer/components.js.map +1 -1
  423. package/build/esm/ThemeExplorer/googleFonts.d.ts +1 -1
  424. package/build/esm/ThemeExplorer/googleFonts.js +1 -1
  425. package/build/esm/ThemeExplorer/googleFonts.js.map +1 -1
  426. package/build/esm/ThemeExplorer/index.d.ts +1 -1
  427. package/build/esm/ThemeExplorer/index.js.map +1 -1
  428. package/build/esm/ThemeExplorer/makeColorScheme.d.ts +98 -98
  429. package/build/esm/ThemeExplorer/makeColorScheme.js +0 -1
  430. package/build/esm/ThemeExplorer/makeColorScheme.js.map +1 -1
  431. package/build/esm/ThemeExplorer/makeTailwindTheme.d.ts +2 -2
  432. package/build/esm/ThemeExplorer/makeTailwindTheme.js +20 -20
  433. package/build/esm/ThemeExplorer/makeTailwindTheme.js.map +1 -1
  434. package/build/esm/ThemeExplorer/updateGoogleFonts.js +23 -64
  435. package/build/esm/ThemeExplorer/updateGoogleFonts.js.map +1 -1
  436. package/build/esm/ThemeExplorer/useDeferredColor.d.ts +3 -3
  437. package/build/esm/ThemeExplorer/useDeferredColor.js +2 -9
  438. package/build/esm/ThemeExplorer/useDeferredColor.js.map +1 -1
  439. package/build/esm/ThemeExplorer/useLocalStorageCachedState.d.ts +1 -1
  440. package/build/esm/ThemeExplorer/useLocalStorageCachedState.js +2 -10
  441. package/build/esm/ThemeExplorer/useLocalStorageCachedState.js.map +1 -1
  442. package/build/esm/Tooltip/Tooltip.d.ts +8 -8
  443. package/build/esm/Tooltip/Tooltip.js +21 -25
  444. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  445. package/build/esm/Tooltip/index.d.ts +1 -1
  446. package/build/esm/Tooltip/index.js.map +1 -1
  447. package/build/esm/color.d.ts +8 -8
  448. package/build/esm/color.js +23 -31
  449. package/build/esm/color.js.map +1 -1
  450. package/build/esm/css.d.ts +1 -1
  451. package/build/esm/css.js.map +1 -1
  452. package/build/esm/hooks/useAnimation.d.ts +20 -20
  453. package/build/esm/hooks/useAnimation.js +42 -53
  454. package/build/esm/hooks/useAnimation.js.map +1 -1
  455. package/build/esm/index.d.ts +42 -42
  456. package/build/esm/index.js.map +1 -1
  457. package/build/esm/motion.d.ts +7 -7
  458. package/build/esm/motion.js +7 -7
  459. package/build/esm/motion.js.map +1 -1
  460. package/build/esm/tailwind/extendColors.d.ts +5 -5
  461. package/build/esm/tailwind/extendColors.js +17 -29
  462. package/build/esm/tailwind/extendColors.js.map +1 -1
  463. package/build/esm/tailwind/index.d.ts +8 -8
  464. package/build/esm/tailwind/index.js +17 -29
  465. package/build/esm/tailwind/index.js.map +1 -1
  466. package/build/esm/theme/index.d.ts +2 -2
  467. package/build/esm/theme/index.js.map +1 -1
  468. package/build/esm/theme/theme.d.ts +590 -562
  469. package/build/esm/theme/theme.js +49 -22
  470. package/build/esm/theme/theme.js.map +1 -1
  471. package/build/esm/theme/typography-raleway.d.ts +112 -112
  472. package/build/esm/theme/typography-raleway.js +1 -1
  473. package/build/esm/theme/typography-raleway.js.map +1 -1
  474. package/build/esm/theme/typography-roboto.d.ts +111 -111
  475. package/build/esm/theme/typography-roboto.js +1 -1
  476. package/build/esm/theme/typography-roboto.js.map +1 -1
  477. package/build/esm/theme/useTheme.d.ts +594 -566
  478. package/build/esm/theme/useTheme.js +1 -3
  479. package/build/esm/theme/useTheme.js.map +1 -1
  480. package/build/tsconfig-build.tsbuildinfo +1 -1
  481. package/package.json +12 -11
  482. package/src/Alert/index.ts +1 -1
  483. package/src/AppBar/AppBar.story.tsx +69 -69
  484. package/src/AppBar/AppBar.tsx +85 -85
  485. package/src/AppBar/AppBarButton.tsx +25 -25
  486. package/src/AppBar/context.ts +13 -13
  487. package/src/AppBar/index.ts +3 -3
  488. package/src/Badge/Badge.story.tsx +68 -68
  489. package/src/Badge/Badge.tsx +47 -47
  490. package/src/Badge/index.ts +1 -1
  491. package/src/BaseLine/BaseLine.tsx +100 -100
  492. package/src/BaseLine/index.ts +1 -1
  493. package/src/BottomSheet/BottomSheet.story.tsx +35 -35
  494. package/src/BottomSheet/BottomSheet.tsx +39 -39
  495. package/src/BottomSheet/BottomSheetSurface.tsx +49 -49
  496. package/src/BottomSheet/index.ts +1 -1
  497. package/src/Box/Box.tsx +133 -127
  498. package/src/Box/index.ts +1 -1
  499. package/src/Button/BaseButton.tsx +123 -18
  500. package/src/Button/Button.story.tsx +236 -72
  501. package/src/Button/Button.tsx +44 -15
  502. package/src/Button/ButtonGroup.story.tsx +263 -101
  503. package/src/Button/ButtonGroup.tsx +103 -7
  504. package/src/Button/FilledButton.tsx +2 -43
  505. package/src/Button/FloatingActionButton.tsx +14 -9
  506. package/src/Button/IconFilledButton.tsx +3 -0
  507. package/src/Button/IconOutlinedButton.tsx +3 -0
  508. package/src/Button/OutlinedButton.tsx +2 -41
  509. package/src/Button/SpinnerButton.story.tsx +91 -91
  510. package/src/Button/SplitButton.story.tsx +110 -0
  511. package/src/Button/SplitButton.tsx +40 -0
  512. package/src/Button/TransparentButton.tsx +1 -43
  513. package/src/Button/context.tsx +19 -17
  514. package/src/Button/index.ts +3 -2
  515. package/src/CheckBox/CheckBox.story.tsx +155 -155
  516. package/src/CheckBox/CheckBox.tsx +170 -170
  517. package/src/CheckBox/CheckBoxIcon.tsx +63 -64
  518. package/src/CheckBox/CheckPath.tsx +18 -18
  519. package/src/CheckBox/IndeterminatePath.tsx +16 -16
  520. package/src/CheckBox/index.ts +1 -1
  521. package/src/Chip/ButtonChip.tsx +86 -86
  522. package/src/Chip/Chip.story.tsx +242 -242
  523. package/src/Chip/Chip.tsx +5 -5
  524. package/src/Chip/ChipBase.tsx +141 -141
  525. package/src/Chip/ChoiceChip.tsx +127 -127
  526. package/src/Chip/index.ts +2 -2
  527. package/src/Combobox/Combobox.tsx +274 -274
  528. package/src/Combobox/index.ts +1 -1
  529. package/src/Dialog/Dialog.story.tsx +53 -53
  530. package/src/Dialog/Dialog.tsx +73 -73
  531. package/src/Dialog/DialogBackdrop.tsx +42 -42
  532. package/src/Dialog/DialogContainer.tsx +31 -31
  533. package/src/Dialog/DialogSurface.tsx +55 -55
  534. package/src/Dialog/Scrim.tsx +35 -35
  535. package/src/Dialog/index.ts +2 -2
  536. package/src/Dialog/useDialogAnimation.tsx +59 -49
  537. package/src/Divider/Divider.story.tsx +39 -39
  538. package/src/Divider/Divider.tsx +48 -48
  539. package/src/Divider/index.ts +1 -1
  540. package/src/FloatingLabel/FloatingLabel.story.tsx +55 -55
  541. package/src/FloatingLabel/FloatingLabel.tsx +77 -77
  542. package/src/FloatingLabel/index.ts +1 -1
  543. package/src/LineRipple/LineRipple.story.tsx +43 -43
  544. package/src/LineRipple/LineRipple.tsx +81 -81
  545. package/src/LineRipple/index.ts +1 -1
  546. package/src/Link/Link.story.tsx +14 -14
  547. package/src/Link/Link.tsx +65 -65
  548. package/src/Link/index.ts +1 -1
  549. package/src/List/List.tsx +46 -46
  550. package/src/List/index.ts +1 -1
  551. package/src/ListItem/ListItem.story.tsx +43 -43
  552. package/src/ListItem/ListItem.tsx +104 -104
  553. package/src/ListItem/ListItemText.tsx +35 -35
  554. package/src/ListItem/index.ts +2 -2
  555. package/src/Menu/ContextMenu.story.tsx +34 -34
  556. package/src/Menu/Menu.story.tsx +54 -54
  557. package/src/Menu/Menu.tsx +124 -124
  558. package/src/Menu/animation.ts +16 -16
  559. package/src/Menu/index.ts +2 -2
  560. package/src/NavRail/NavRail.story.tsx +146 -146
  561. package/src/NavRail/NavRailItem.tsx +176 -175
  562. package/src/NavRail/icons/test-icons.tsx +46 -46
  563. package/src/NavRail/index.ts +1 -1
  564. package/src/NotchedOutline/NotchedOutline.story.tsx +99 -99
  565. package/src/NotchedOutline/NotchedOutline.tsx +80 -80
  566. package/src/NotchedOutline/context.ts +12 -12
  567. package/src/NotchedOutline/index.ts +1 -1
  568. package/src/NotchedOutline/styledComponents.ts +122 -122
  569. package/src/Paper/Paper.story.tsx +50 -50
  570. package/src/Paper/Paper.tsx +67 -67
  571. package/src/Paper/index.ts +1 -1
  572. package/src/Popover/PopoverSurface.tsx +51 -51
  573. package/src/Popover/index.ts +1 -1
  574. package/src/ProgressSpinner/ProgressSpinner.story.tsx +35 -35
  575. package/src/ProgressSpinner/ProgressSpinner.tsx +119 -119
  576. package/src/ProgressSpinner/index.ts +1 -1
  577. package/src/RadioButton/RadioButton.story.tsx +109 -109
  578. package/src/RadioButton/RadioButton.tsx +112 -112
  579. package/src/RadioButton/RadioButtonIcon.tsx +44 -44
  580. package/src/RadioButton/RadioGroup.tsx +26 -27
  581. package/src/RadioButton/index.ts +2 -2
  582. package/src/Ripple/Ripple.story.tsx +78 -78
  583. package/src/Ripple/Ripple.tsx +33 -33
  584. package/src/Ripple/RippleBox.tsx +52 -52
  585. package/src/Ripple/constants.ts +15 -15
  586. package/src/Ripple/index.ts +5 -5
  587. package/src/Ripple/keyframes.ts +36 -36
  588. package/src/Ripple/useRipple.ts +209 -209
  589. package/src/Ripple/useRippleHandlers.ts +54 -54
  590. package/src/Ripple/useRippleSurface.ts +162 -155
  591. package/src/SearchBar/SearchBar.tsx +5 -6
  592. package/src/Select/CustomContainerExample.tsx +59 -59
  593. package/src/Select/PaymentMethodSelect.story.tsx +320 -316
  594. package/src/Select/Select.story.tsx +225 -225
  595. package/src/Select/Select.tsx +284 -283
  596. package/src/Select/SelectIcon.tsx +43 -43
  597. package/src/Select/SelectMultiple.story.tsx +214 -215
  598. package/src/Select/context.ts +22 -22
  599. package/src/Select/defaultRender.tsx +60 -49
  600. package/src/Select/index.ts +1 -1
  601. package/src/Select/styledComponents.tsx +38 -38
  602. package/src/SelectItem/SelectItem.tsx +92 -92
  603. package/src/SelectItem/index.ts +1 -1
  604. package/src/SelectionControl/SelectionControlLabel.tsx +34 -34
  605. package/src/SelectionControl/SelectionControlText.tsx +37 -37
  606. package/src/SelectionControl/index.ts +2 -2
  607. package/src/Skeleton/DelayAppearance.tsx +41 -41
  608. package/src/Skeleton/Skeleton.story.tsx +57 -57
  609. package/src/Skeleton/Skeleton.tsx +40 -40
  610. package/src/Skeleton/animation.ts +54 -54
  611. package/src/Skeleton/index.ts +2 -2
  612. package/src/Slider/Slider.story.tsx +36 -36
  613. package/src/Slider/Slider.tsx +275 -275
  614. package/src/Slider/index.ts +1 -1
  615. package/src/Snackbar/Snackbar.story.tsx +99 -99
  616. package/src/Snackbar/Snackbar.tsx +19 -16
  617. package/src/Switch/Switch.story.tsx +97 -98
  618. package/src/Switch/Switch.tsx +170 -170
  619. package/src/Switch/index.ts +1 -1
  620. package/src/Switch/styledComponents.tsx +117 -117
  621. package/src/Tab/Tab.story.tsx +209 -209
  622. package/src/Tab/Tab.tsx +120 -120
  623. package/src/Tab/TabList.tsx +61 -61
  624. package/src/Tab/TabPanel.tsx +31 -31
  625. package/src/Tab/TabPanels.tsx +5 -5
  626. package/src/Tab/Tabs.tsx +5 -5
  627. package/src/Tab/context.ts +17 -17
  628. package/src/Tab/index.ts +5 -5
  629. package/src/TabIndicator/TabIndicator.tsx +146 -146
  630. package/src/TabIndicator/context.ts +13 -13
  631. package/src/TabIndicator/index.ts +2 -2
  632. package/src/Table/context.ts +6 -6
  633. package/src/Text/LoremIpsum.tsx +18 -18
  634. package/src/Text/Text.story.tsx +79 -75
  635. package/src/Text/Text.tsx +84 -84
  636. package/src/Text/index.ts +1 -1
  637. package/src/TextField/FilledContainer.tsx +173 -173
  638. package/src/TextField/HelperText.tsx +63 -63
  639. package/src/TextField/OutlinedContainer.tsx +116 -116
  640. package/src/TextField/consts.ts +7 -7
  641. package/src/TextField/index.ts +4 -4
  642. package/src/ThemeExplorer/BorderSlider.tsx +73 -73
  643. package/src/ThemeExplorer/ColorPicker.tsx +104 -104
  644. package/src/ThemeExplorer/ColorSchemePicker.tsx +55 -55
  645. package/src/ThemeExplorer/FontAutoComplete.tsx +139 -139
  646. package/src/ThemeExplorer/TextFieldColorPicker.tsx +112 -115
  647. package/src/ThemeExplorer/ThemeBuilder.story.tsx +8 -8
  648. package/src/ThemeExplorer/ThemeBuilder.tsx +437 -353
  649. package/src/ThemeExplorer/ThemeColors.tsx +122 -118
  650. package/src/ThemeExplorer/components.tsx +195 -195
  651. package/src/ThemeExplorer/googleFonts.ts +1436 -1436
  652. package/src/ThemeExplorer/index.ts +1 -1
  653. package/src/ThemeExplorer/makeColorScheme.tsx +111 -111
  654. package/src/ThemeExplorer/makeTailwindTheme.ts +44 -44
  655. package/src/ThemeExplorer/updateGoogleFonts.js +32 -33
  656. package/src/ThemeExplorer/useDeferredColor.tsx +21 -21
  657. package/src/ThemeExplorer/useLocalStorageCachedState.ts +18 -18
  658. package/src/Tooltip/Tooltip.story.tsx +35 -35
  659. package/src/Tooltip/Tooltip.tsx +67 -67
  660. package/src/Tooltip/index.ts +1 -1
  661. package/src/css.ts +2 -2
  662. package/src/hooks/useAnimation.ts +111 -111
  663. package/src/motion.ts +7 -7
  664. package/src/tailwind/extendColors.ts +51 -51
  665. package/src/tailwind/index.ts +57 -56
  666. package/src/tailwind/tests/extendColors.test.ts +123 -123
  667. package/src/theme/index.ts +2 -2
  668. package/src/theme/theme.ts +36 -8
  669. package/src/theme/typography-raleway.ts +114 -114
  670. package/src/theme/typography-roboto.ts +113 -113
  671. package/src/theme/useTheme.ts +17 -18
  672. package/tailwind/package.json +5 -5
  673. package/theme-explorer/package.json +5 -5
@@ -1,35 +1,33 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import _extends from "@babel/runtime/helpers/extends";
4
1
  import { useState, useRef, useEffect } from 'react';
5
2
  import { radiusIn, opacityIn, opacityOut } from './keyframes';
6
3
  import { RIPPLE_TRANSLATE_START, RIPPLE_TRANSLATE_END, RIPPLE_OPACITY_END, RIPPLE_SCALE_END, RIPPLE_SIZE, RIPPLE_BACKGROUND_COLOR, RIPPLE_POSITION } from './constants';
7
- var defaultRipple = {
4
+ const defaultRipple = {
8
5
  x: 0,
9
6
  y: 0,
10
7
  size: 0,
11
8
  scale: 0,
12
9
  centerX: 0,
13
10
  centerY: 0
14
- }; // Surface diameter is treated differently for unbounded vs. bounded ripples.
11
+ };
12
+
13
+ // Surface diameter is treated differently for unbounded vs. bounded ripples.
15
14
  // Unbounded ripple diameter is calculated smaller since the surface is expected to already be padded appropriately
16
15
  // to extend the hitbox, and the ripple is expected to meet the edges of the padded hitbox (which is typically
17
16
  // square). Bounded ripples, on the other hand, are fully expected to expand beyond the surface's longest diameter
18
17
  // (calculated based on the diagonal plus a constant padding), and are clipped at the surface's border via
19
18
  // `overflow: hidden`.
20
-
21
- var getBoundedRadius = function getBoundedRadius(rect, padding) {
22
- var hypotenuse = Math.sqrt(Math.pow(rect.width, 2) + Math.pow(rect.height, 2));
19
+ const getBoundedRadius = (rect, padding) => {
20
+ const hypotenuse = Math.sqrt(Math.pow(rect.width, 2) + Math.pow(rect.height, 2));
23
21
  return hypotenuse + padding;
24
22
  };
25
-
26
23
  function getScale(rect) {
27
- var maxDim = Math.max(rect.height, rect.width);
28
- var padding = 10;
29
- var initialOriginScale = 0.6;
30
- var maxRadius = getBoundedRadius(rect, padding); // Ripple is sized as a fraction of the largest dimension of the surface, then scales up using a CSS scale transform
24
+ const maxDim = Math.max(rect.height, rect.width);
25
+ const padding = 10;
26
+ const initialOriginScale = 0.6;
27
+ const maxRadius = getBoundedRadius(rect, padding);
31
28
 
32
- var initialSize = Math.floor(maxDim * initialOriginScale);
29
+ // Ripple is sized as a fraction of the largest dimension of the surface, then scales up using a CSS scale transform
30
+ const initialSize = Math.floor(maxDim * initialOriginScale);
33
31
  return {
34
32
  size: initialSize,
35
33
  scale: maxRadius / initialSize,
@@ -37,130 +35,127 @@ function getScale(rect) {
37
35
  centerY: rect.height / 2
38
36
  };
39
37
  }
40
-
41
38
  function calculateRipplePosition(rect, clientX, clientY) {
42
- var center = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
43
- var rippleStart = center ? {
39
+ let center = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
40
+ const rippleStart = center ? {
44
41
  x: rect.width / 2,
45
42
  y: rect.height / 2
46
43
  } : {
47
44
  x: clientX - rect.left,
48
45
  y: clientY - rect.top
49
46
  };
50
- return _extends(_extends({
51
- state: 'entering'
52
- }, rippleStart), getScale(rect));
47
+ return {
48
+ state: 'entering',
49
+ ...rippleStart,
50
+ ...getScale(rect)
51
+ };
53
52
  }
54
-
55
- export var useRipple = function useRipple(opts) {
56
- var _style;
57
-
58
- var opacity = opts.opacity,
59
- backgroundColor = opts.backgroundColor,
60
- _opts$enterDuration = opts.enterDuration,
61
- enterDuration = _opts$enterDuration === void 0 ? 225 : _opts$enterDuration,
62
- _opts$leaveDuration = opts.leaveDuration,
63
- leaveDuration = _opts$leaveDuration === void 0 ? 150 : _opts$leaveDuration; // rippleState must be a ref, because it accesses the current value
53
+ export const useRipple = opts => {
54
+ const {
55
+ opacity,
56
+ backgroundColor,
57
+ enterDuration = 225,
58
+ leaveDuration = 150
59
+ } = opts;
60
+
61
+ // rippleState must be a ref, because it accesses the current value
64
62
  // inside closures... if we use state, it's gonna recapture
65
63
  // the state variable and won't work correctly
66
-
67
- var rippleState = useRef('left');
68
-
69
- var _useState = useState(defaultRipple),
70
- _useState2 = _slicedToArray(_useState, 2),
71
- ripple = _useState2[0],
72
- setRipple = _useState2[1];
73
-
74
- var leavingTimeout = useRef();
75
- var enteringTimeout = useRef();
76
- var restartTimeout = useRef();
77
- var shouldLeave = useRef(false); // clear timeouts to avoid setting state on unmounted component
78
-
79
- useEffect(function () {
80
- return function () {
64
+ const rippleState = useRef('left');
65
+ const [ripple, setRipple] = useState(defaultRipple);
66
+ const leavingTimeout = useRef(undefined);
67
+ const enteringTimeout = useRef(undefined);
68
+ const restartTimeout = useRef(undefined);
69
+ const shouldLeave = useRef(false);
70
+
71
+ // clear timeouts to avoid setting state on unmounted component
72
+ useEffect(() => {
73
+ return () => {
81
74
  restartTimeout.current && cancelAnimationFrame(restartTimeout.current);
82
75
  clearTimeout(enteringTimeout.current);
83
76
  clearTimeout(leavingTimeout.current);
84
77
  };
85
- }, []); // State handling
78
+ }, []);
86
79
 
87
- var setLeft = function setLeft() {
80
+ // State handling
81
+ const setLeft = () => {
88
82
  rippleState.current = 'left';
89
- setRipple(_extends({}, defaultRipple));
83
+ setRipple({
84
+ ...defaultRipple
85
+ });
90
86
  };
91
-
92
- var setLeaving = function setLeaving() {
87
+ const setLeaving = () => {
93
88
  clearTimeout(enteringTimeout.current);
94
89
  rippleState.current = 'leaving';
95
- setRipple(function (ripple) {
96
- return _extends({}, ripple);
97
- });
90
+ setRipple(ripple => ({
91
+ ...ripple
92
+ }));
98
93
  leavingTimeout.current = window.setTimeout(setLeft, leaveDuration);
99
94
  };
100
-
101
- var setEntered = function setEntered() {
95
+ const setEntered = () => {
102
96
  rippleState.current = 'entered';
103
- setRipple(function (ripple) {
104
- return _extends({}, ripple);
105
- });
106
-
97
+ setRipple(ripple => ({
98
+ ...ripple
99
+ }));
107
100
  if (shouldLeave.current) {
108
101
  setLeaving();
109
102
  }
110
103
  };
111
-
112
- var deactivate = function deactivate() {
104
+ const deactivate = () => {
113
105
  shouldLeave.current = true;
114
-
115
106
  if (rippleState.current === 'entered') {
116
107
  setLeaving();
117
108
  }
118
109
  };
119
-
120
- var activate = function activate(rect, clientX, clientY) {
121
- var center = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
110
+ const activate = function (rect, clientX, clientY) {
111
+ let center = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
122
112
  clearTimeout(leavingTimeout.current);
123
113
  clearTimeout(enteringTimeout.current);
124
114
  shouldLeave.current = false;
125
115
  rippleState.current = 'restart';
126
- setRipple(_extends({}, defaultRipple));
127
- restartTimeout.current = requestAnimationFrame(function () {
116
+ setRipple({
117
+ ...defaultRipple
118
+ });
119
+ restartTimeout.current = requestAnimationFrame(() => {
128
120
  rippleState.current = 'entering';
129
121
  setRipple(calculateRipplePosition(rect, clientX, clientY, center));
130
122
  enteringTimeout.current = window.setTimeout(setEntered, enterDuration);
131
123
  });
132
- }; // Styling
133
-
134
-
135
- var animation = undefined;
124
+ };
136
125
 
126
+ // Styling
127
+ let animation = undefined;
137
128
  switch (rippleState.current) {
138
129
  case 'entering':
139
130
  case 'entered':
140
- animation = "".concat(radiusIn, " ").concat(enterDuration, "ms forwards,") + "".concat(opacityIn, " ").concat(enterDuration / 3, "ms forwards");
131
+ animation = `${radiusIn} ${enterDuration}ms forwards,` + `${opacityIn} ${enterDuration / 3}ms forwards`;
141
132
  break;
142
-
143
133
  case 'leaving':
144
- animation = "".concat(radiusIn, " ").concat(enterDuration, "ms forwards,") + "".concat(opacityOut, " ").concat(leaveDuration, "ms forwards");
134
+ animation = `${radiusIn} ${enterDuration}ms forwards,` + `${opacityOut} ${leaveDuration}ms forwards`;
145
135
  break;
146
136
  }
147
-
148
- var style = {};
149
-
137
+ let style = {};
150
138
  switch (rippleState.current) {
151
139
  case 'entering':
152
140
  case 'entered':
153
141
  case 'leaving':
154
- style = (_style = {}, _defineProperty(_style, RIPPLE_SIZE, "".concat(ripple.size, "px")), _defineProperty(_style, RIPPLE_POSITION, "".concat(-ripple.size / 2, "px")), _defineProperty(_style, RIPPLE_BACKGROUND_COLOR, backgroundColor), _defineProperty(_style, RIPPLE_TRANSLATE_START, "".concat(ripple.x, "px, ").concat(ripple.y, "px")), _defineProperty(_style, RIPPLE_TRANSLATE_END, "".concat(ripple.centerX, "px, ").concat(ripple.centerY, "px")), _defineProperty(_style, RIPPLE_OPACITY_END, opacity), _defineProperty(_style, RIPPLE_SCALE_END, "".concat(ripple.scale)), _style);
142
+ style = {
143
+ [RIPPLE_SIZE]: `${ripple.size}px`,
144
+ [RIPPLE_POSITION]: `${-ripple.size / 2}px`,
145
+ [RIPPLE_BACKGROUND_COLOR]: backgroundColor,
146
+ [RIPPLE_TRANSLATE_START]: `${ripple.x}px, ${ripple.y}px`,
147
+ [RIPPLE_TRANSLATE_END]: `${ripple.centerX}px, ${ripple.centerY}px`,
148
+ [RIPPLE_OPACITY_END]: opacity,
149
+ [RIPPLE_SCALE_END]: `${ripple.scale}`
150
+ };
155
151
  break;
156
152
  }
157
-
158
153
  return {
159
- activate: activate,
160
- deactivate: deactivate,
161
- style: style,
162
- animation: animation // key: counter,
163
-
154
+ activate,
155
+ deactivate,
156
+ style,
157
+ animation
158
+ // key: counter,
164
159
  };
165
160
  };
166
161
  //# sourceMappingURL=useRipple.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRipple.js","names":["useState","useRef","useEffect","radiusIn","opacityIn","opacityOut","RIPPLE_TRANSLATE_START","RIPPLE_TRANSLATE_END","RIPPLE_OPACITY_END","RIPPLE_SCALE_END","RIPPLE_SIZE","RIPPLE_BACKGROUND_COLOR","RIPPLE_POSITION","defaultRipple","x","y","size","scale","centerX","centerY","getBoundedRadius","rect","padding","hypotenuse","Math","sqrt","pow","width","height","getScale","maxDim","max","initialOriginScale","maxRadius","initialSize","floor","calculateRipplePosition","clientX","clientY","center","rippleStart","left","top","state","useRipple","opts","opacity","backgroundColor","enterDuration","leaveDuration","rippleState","ripple","setRipple","leavingTimeout","enteringTimeout","restartTimeout","shouldLeave","current","cancelAnimationFrame","clearTimeout","setLeft","setLeaving","window","setTimeout","setEntered","deactivate","activate","requestAnimationFrame","animation","undefined","style"],"sources":["../../../src/Ripple/useRipple.ts"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { radiusIn, opacityIn, opacityOut } from './keyframes';\r\nimport {\r\n RIPPLE_TRANSLATE_START,\r\n RIPPLE_TRANSLATE_END,\r\n RIPPLE_OPACITY_END,\r\n RIPPLE_SCALE_END,\r\n RIPPLE_SIZE,\r\n RIPPLE_BACKGROUND_COLOR,\r\n RIPPLE_POSITION,\r\n} from './constants';\r\n\r\nconst defaultRipple = {\r\n x: 0,\r\n y: 0,\r\n size: 0,\r\n scale: 0,\r\n centerX: 0,\r\n centerY: 0,\r\n};\r\n\r\n// Surface diameter is treated differently for unbounded vs. bounded ripples.\r\n// Unbounded ripple diameter is calculated smaller since the surface is expected to already be padded appropriately\r\n// to extend the hitbox, and the ripple is expected to meet the edges of the padded hitbox (which is typically\r\n// square). Bounded ripples, on the other hand, are fully expected to expand beyond the surface's longest diameter\r\n// (calculated based on the diagonal plus a constant padding), and are clipped at the surface's border via\r\n// `overflow: hidden`.\r\nconst getBoundedRadius = (rect: ClientRect, padding: number) => {\r\n const hypotenuse = Math.sqrt(\r\n Math.pow(rect.width, 2) + Math.pow(rect.height, 2)\r\n );\r\n return hypotenuse + padding;\r\n};\r\n\r\nfunction getScale(rect: ClientRect) {\r\n const maxDim = Math.max(rect.height, rect.width);\r\n const padding = 10;\r\n const initialOriginScale = 0.6;\r\n const maxRadius = getBoundedRadius(rect, padding);\r\n\r\n // Ripple is sized as a fraction of the largest dimension of the surface, then scales up using a CSS scale transform\r\n const initialSize = Math.floor(maxDim * initialOriginScale);\r\n\r\n return {\r\n size: initialSize,\r\n scale: maxRadius / initialSize,\r\n centerX: rect.width / 2,\r\n centerY: rect.height / 2,\r\n };\r\n}\r\n\r\nfunction calculateRipplePosition(\r\n rect: ClientRect,\r\n clientX: number,\r\n clientY: number,\r\n center = false\r\n) {\r\n const rippleStart = center\r\n ? {\r\n x: rect.width / 2,\r\n y: rect.height / 2,\r\n }\r\n : {\r\n x: clientX - rect.left,\r\n y: clientY - rect.top,\r\n };\r\n\r\n return {\r\n state: 'entering' as const,\r\n ...rippleStart,\r\n ...getScale(rect),\r\n };\r\n}\r\n\r\nexport interface RippleOptions {\r\n opacity: number;\r\n backgroundColor: string;\r\n enterDuration?: number;\r\n leaveDuration?: number;\r\n center?: boolean;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const useRipple = (opts: RippleOptions) => {\r\n const {\r\n opacity,\r\n backgroundColor,\r\n enterDuration = 225,\r\n leaveDuration = 150,\r\n } = opts;\r\n\r\n // rippleState must be a ref, because it accesses the current value\r\n // inside closures... if we use state, it's gonna recapture\r\n // the state variable and won't work correctly\r\n const rippleState = useRef(\r\n 'left' as 'entering' | 'entered' | 'leaving' | 'left' | 'restart'\r\n );\r\n const [ripple, setRipple] = useState(defaultRipple);\r\n const leavingTimeout = useRef<number>();\r\n const enteringTimeout = useRef<number>();\r\n const restartTimeout = useRef<number>();\r\n\r\n const shouldLeave = useRef(false);\r\n\r\n // clear timeouts to avoid setting state on unmounted component\r\n useEffect(() => {\r\n return () => {\r\n restartTimeout.current && cancelAnimationFrame(restartTimeout.current);\r\n clearTimeout(enteringTimeout.current);\r\n clearTimeout(leavingTimeout.current);\r\n };\r\n }, []);\r\n\r\n // State handling\r\n const setLeft = () => {\r\n rippleState.current = 'left';\r\n setRipple({ ...defaultRipple });\r\n };\r\n\r\n const setLeaving = () => {\r\n clearTimeout(enteringTimeout.current);\r\n rippleState.current = 'leaving';\r\n setRipple((ripple) => ({\r\n ...ripple,\r\n }));\r\n\r\n leavingTimeout.current = window.setTimeout(setLeft, leaveDuration);\r\n };\r\n\r\n const setEntered = () => {\r\n rippleState.current = 'entered';\r\n setRipple((ripple) => ({\r\n ...ripple,\r\n }));\r\n\r\n if (shouldLeave.current) {\r\n setLeaving();\r\n }\r\n };\r\n\r\n const deactivate = () => {\r\n shouldLeave.current = true;\r\n if (rippleState.current === 'entered') {\r\n setLeaving();\r\n }\r\n };\r\n\r\n const activate = (\r\n rect: ClientRect,\r\n clientX: number,\r\n clientY: number,\r\n center = false\r\n ) => {\r\n clearTimeout(leavingTimeout.current);\r\n clearTimeout(enteringTimeout.current);\r\n shouldLeave.current = false;\r\n\r\n rippleState.current = 'restart';\r\n setRipple({ ...defaultRipple });\r\n restartTimeout.current = requestAnimationFrame(() => {\r\n rippleState.current = 'entering';\r\n setRipple(calculateRipplePosition(rect, clientX, clientY, center));\r\n\r\n enteringTimeout.current = window.setTimeout(setEntered, enterDuration);\r\n });\r\n };\r\n\r\n // Styling\r\n let animation: string | undefined = undefined;\r\n switch (rippleState.current) {\r\n case 'entering':\r\n case 'entered':\r\n animation =\r\n `${radiusIn} ${enterDuration}ms forwards,` +\r\n `${opacityIn} ${enterDuration / 3}ms forwards`;\r\n break;\r\n case 'leaving':\r\n animation =\r\n `${radiusIn} ${enterDuration}ms forwards,` +\r\n `${opacityOut} ${leaveDuration}ms forwards`;\r\n break;\r\n }\r\n\r\n let style = {};\r\n switch (rippleState.current) {\r\n case 'entering':\r\n case 'entered':\r\n case 'leaving':\r\n style = {\r\n [RIPPLE_SIZE]: `${ripple.size}px`,\r\n [RIPPLE_POSITION]: `${-ripple.size / 2}px`,\r\n [RIPPLE_BACKGROUND_COLOR]: backgroundColor,\r\n [RIPPLE_TRANSLATE_START]: `${ripple.x}px, ${ripple.y}px`,\r\n [RIPPLE_TRANSLATE_END]: `${ripple.centerX}px, ${ripple.centerY}px`,\r\n [RIPPLE_OPACITY_END]: opacity,\r\n [RIPPLE_SCALE_END]: `${ripple.scale}`,\r\n };\r\n break;\r\n }\r\n\r\n return {\r\n activate,\r\n deactivate,\r\n style,\r\n animation,\r\n // key: counter,\r\n };\r\n};\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"useRipple.js","names":["useState","useRef","useEffect","radiusIn","opacityIn","opacityOut","RIPPLE_TRANSLATE_START","RIPPLE_TRANSLATE_END","RIPPLE_OPACITY_END","RIPPLE_SCALE_END","RIPPLE_SIZE","RIPPLE_BACKGROUND_COLOR","RIPPLE_POSITION","defaultRipple","x","y","size","scale","centerX","centerY","getBoundedRadius","rect","padding","hypotenuse","Math","sqrt","pow","width","height","getScale","maxDim","max","initialOriginScale","maxRadius","initialSize","floor","calculateRipplePosition","clientX","clientY","center","arguments","length","undefined","rippleStart","left","top","state","useRipple","opts","opacity","backgroundColor","enterDuration","leaveDuration","rippleState","ripple","setRipple","leavingTimeout","enteringTimeout","restartTimeout","shouldLeave","current","cancelAnimationFrame","clearTimeout","setLeft","setLeaving","window","setTimeout","setEntered","deactivate","activate","requestAnimationFrame","animation","style"],"sources":["../../../src/Ripple/useRipple.ts"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\n\nimport { radiusIn, opacityIn, opacityOut } from './keyframes';\nimport {\n RIPPLE_TRANSLATE_START,\n RIPPLE_TRANSLATE_END,\n RIPPLE_OPACITY_END,\n RIPPLE_SCALE_END,\n RIPPLE_SIZE,\n RIPPLE_BACKGROUND_COLOR,\n RIPPLE_POSITION,\n} from './constants';\n\nconst defaultRipple = {\n x: 0,\n y: 0,\n size: 0,\n scale: 0,\n centerX: 0,\n centerY: 0,\n};\n\n// Surface diameter is treated differently for unbounded vs. bounded ripples.\n// Unbounded ripple diameter is calculated smaller since the surface is expected to already be padded appropriately\n// to extend the hitbox, and the ripple is expected to meet the edges of the padded hitbox (which is typically\n// square). Bounded ripples, on the other hand, are fully expected to expand beyond the surface's longest diameter\n// (calculated based on the diagonal plus a constant padding), and are clipped at the surface's border via\n// `overflow: hidden`.\nconst getBoundedRadius = (rect: ClientRect, padding: number) => {\n const hypotenuse = Math.sqrt(\n Math.pow(rect.width, 2) + Math.pow(rect.height, 2)\n );\n return hypotenuse + padding;\n};\n\nfunction getScale(rect: ClientRect) {\n const maxDim = Math.max(rect.height, rect.width);\n const padding = 10;\n const initialOriginScale = 0.6;\n const maxRadius = getBoundedRadius(rect, padding);\n\n // Ripple is sized as a fraction of the largest dimension of the surface, then scales up using a CSS scale transform\n const initialSize = Math.floor(maxDim * initialOriginScale);\n\n return {\n size: initialSize,\n scale: maxRadius / initialSize,\n centerX: rect.width / 2,\n centerY: rect.height / 2,\n };\n}\n\nfunction calculateRipplePosition(\n rect: ClientRect,\n clientX: number,\n clientY: number,\n center = false\n) {\n const rippleStart = center\n ? {\n x: rect.width / 2,\n y: rect.height / 2,\n }\n : {\n x: clientX - rect.left,\n y: clientY - rect.top,\n };\n\n return {\n state: 'entering' as const,\n ...rippleStart,\n ...getScale(rect),\n };\n}\n\nexport interface RippleOptions {\n opacity: number;\n backgroundColor: string;\n enterDuration?: number;\n leaveDuration?: number;\n center?: boolean;\n disabled?: boolean;\n}\n\nexport const useRipple = (opts: RippleOptions) => {\n const {\n opacity,\n backgroundColor,\n enterDuration = 225,\n leaveDuration = 150,\n } = opts;\n\n // rippleState must be a ref, because it accesses the current value\n // inside closures... if we use state, it's gonna recapture\n // the state variable and won't work correctly\n const rippleState = useRef(\n 'left' as 'entering' | 'entered' | 'leaving' | 'left' | 'restart'\n );\n const [ripple, setRipple] = useState(defaultRipple);\n const leavingTimeout = useRef<number | undefined>(undefined);\n const enteringTimeout = useRef<number | undefined>(undefined);\n const restartTimeout = useRef<number | undefined>(undefined);\n\n const shouldLeave = useRef(false);\n\n // clear timeouts to avoid setting state on unmounted component\n useEffect(() => {\n return () => {\n restartTimeout.current && cancelAnimationFrame(restartTimeout.current);\n clearTimeout(enteringTimeout.current);\n clearTimeout(leavingTimeout.current);\n };\n }, []);\n\n // State handling\n const setLeft = () => {\n rippleState.current = 'left';\n setRipple({ ...defaultRipple });\n };\n\n const setLeaving = () => {\n clearTimeout(enteringTimeout.current);\n rippleState.current = 'leaving';\n setRipple((ripple) => ({\n ...ripple,\n }));\n\n leavingTimeout.current = window.setTimeout(setLeft, leaveDuration);\n };\n\n const setEntered = () => {\n rippleState.current = 'entered';\n setRipple((ripple) => ({\n ...ripple,\n }));\n\n if (shouldLeave.current) {\n setLeaving();\n }\n };\n\n const deactivate = () => {\n shouldLeave.current = true;\n if (rippleState.current === 'entered') {\n setLeaving();\n }\n };\n\n const activate = (\n rect: ClientRect,\n clientX: number,\n clientY: number,\n center = false\n ) => {\n clearTimeout(leavingTimeout.current);\n clearTimeout(enteringTimeout.current);\n shouldLeave.current = false;\n\n rippleState.current = 'restart';\n setRipple({ ...defaultRipple });\n restartTimeout.current = requestAnimationFrame(() => {\n rippleState.current = 'entering';\n setRipple(calculateRipplePosition(rect, clientX, clientY, center));\n\n enteringTimeout.current = window.setTimeout(setEntered, enterDuration);\n });\n };\n\n // Styling\n let animation: string | undefined = undefined;\n switch (rippleState.current) {\n case 'entering':\n case 'entered':\n animation =\n `${radiusIn} ${enterDuration}ms forwards,` +\n `${opacityIn} ${enterDuration / 3}ms forwards`;\n break;\n case 'leaving':\n animation =\n `${radiusIn} ${enterDuration}ms forwards,` +\n `${opacityOut} ${leaveDuration}ms forwards`;\n break;\n }\n\n let style = {};\n switch (rippleState.current) {\n case 'entering':\n case 'entered':\n case 'leaving':\n style = {\n [RIPPLE_SIZE]: `${ripple.size}px`,\n [RIPPLE_POSITION]: `${-ripple.size / 2}px`,\n [RIPPLE_BACKGROUND_COLOR]: backgroundColor,\n [RIPPLE_TRANSLATE_START]: `${ripple.x}px, ${ripple.y}px`,\n [RIPPLE_TRANSLATE_END]: `${ripple.centerX}px, ${ripple.centerY}px`,\n [RIPPLE_OPACITY_END]: opacity,\n [RIPPLE_SCALE_END]: `${ripple.scale}`,\n };\n break;\n }\n\n return {\n activate,\n deactivate,\n style,\n animation,\n // key: counter,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
- import type { KeyboardEvent as ReactKeyboardEvent, PointerEvent } from 'react';
2
- import type { RippleOptions } from './useRipple';
3
- export declare function useRippleHandlers<T extends HTMLElement>(opts: RippleOptions): {
4
- style: {};
5
- animation: string | undefined;
6
- handleKeyDown: (e: ReactKeyboardEvent<T>) => void;
7
- handlePointerDown: (e: PointerEvent<T>) => void;
8
- };
1
+ import type { KeyboardEvent as ReactKeyboardEvent, PointerEvent } from 'react';
2
+ import type { RippleOptions } from './useRipple';
3
+ export declare function useRippleHandlers<T extends HTMLElement>(opts: RippleOptions): {
4
+ style: {};
5
+ animation: string | undefined;
6
+ handleKeyDown: (e: ReactKeyboardEvent<T>) => void;
7
+ handlePointerDown: (e: PointerEvent<T>) => void;
8
+ };
@@ -1,60 +1,51 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["activate", "deactivate"];
4
1
  import { useRef } from 'react';
5
2
  import { useRipple } from './useRipple';
6
-
7
- var disabledHandler = function disabledHandler() {
3
+ const disabledHandler = () => {
8
4
  /* When disabled, we don't wanna handle neither keyDown, nor pointerDown */
9
5
  };
10
-
11
6
  export function useRippleHandlers(opts) {
12
- var _useRipple = useRipple(opts),
13
- activate = _useRipple.activate,
14
- deactivate = _useRipple.deactivate,
15
- rest = _objectWithoutProperties(_useRipple, _excluded); // Pointer activation
16
-
17
-
18
- var handlePointerUp = function handlePointerUp() {
7
+ const {
8
+ activate,
9
+ deactivate,
10
+ ...rest
11
+ } = useRipple(opts);
12
+
13
+ // Pointer activation
14
+ const handlePointerUp = () => {
19
15
  window.removeEventListener('pointerup', handlePointerUp);
20
16
  window.removeEventListener('pointercancel', handlePointerUp);
21
17
  deactivate();
22
18
  };
23
-
24
- var handlePointerDown = function handlePointerDown(e) {
25
- var rect = e.currentTarget.getBoundingClientRect();
19
+ const handlePointerDown = e => {
20
+ const rect = e.currentTarget.getBoundingClientRect();
26
21
  activate(rect, e.clientX, e.clientY, opts.center);
27
22
  window.addEventListener('pointerup', handlePointerUp);
28
23
  window.addEventListener('pointercancel', handlePointerUp);
29
- }; // Keyboard activation
30
-
31
-
32
- var keyReleased = useRef(true);
24
+ };
33
25
 
34
- var handleKeyUp = function handleKeyUp(e) {
26
+ // Keyboard activation
27
+ const keyReleased = useRef(true);
28
+ const handleKeyUp = e => {
35
29
  if (e.key !== ' ') {
36
30
  return;
37
31
  }
38
-
39
32
  window.removeEventListener('keyup', handleKeyUp);
40
33
  keyReleased.current = true;
41
34
  deactivate();
42
35
  };
43
-
44
- var handleKeyDown = function handleKeyDown(e) {
36
+ const handleKeyDown = e => {
45
37
  if (e.key !== ' ' || !keyReleased.current) {
46
38
  return;
47
39
  }
48
-
49
- var rect = e.currentTarget.getBoundingClientRect();
40
+ const rect = e.currentTarget.getBoundingClientRect();
50
41
  keyReleased.current = false;
51
42
  activate(rect, 0, 0, true);
52
43
  window.addEventListener('keyup', handleKeyUp);
53
44
  };
54
-
55
- return _extends({
45
+ return {
56
46
  handleKeyDown: opts.disabled ? disabledHandler : handleKeyDown,
57
- handlePointerDown: opts.disabled ? disabledHandler : handlePointerDown
58
- }, rest);
47
+ handlePointerDown: opts.disabled ? disabledHandler : handlePointerDown,
48
+ ...rest
49
+ };
59
50
  }
60
51
  //# sourceMappingURL=useRippleHandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRippleHandlers.js","names":["useRef","useRipple","disabledHandler","useRippleHandlers","opts","activate","deactivate","rest","handlePointerUp","window","removeEventListener","handlePointerDown","e","rect","currentTarget","getBoundingClientRect","clientX","clientY","center","addEventListener","keyReleased","handleKeyUp","key","current","handleKeyDown","disabled"],"sources":["../../../src/Ripple/useRippleHandlers.ts"],"sourcesContent":["import type { KeyboardEvent as ReactKeyboardEvent, PointerEvent } from 'react';\r\nimport { useRef } from 'react';\r\n\r\nimport type { RippleOptions } from './useRipple';\r\nimport { useRipple } from './useRipple';\r\n\r\nconst disabledHandler = () => {\r\n /* When disabled, we don't wanna handle neither keyDown, nor pointerDown */\r\n};\r\n\r\nexport function useRippleHandlers<T extends HTMLElement>(opts: RippleOptions) {\r\n const { activate, deactivate, ...rest } = useRipple(opts);\r\n\r\n // Pointer activation\r\n const handlePointerUp = () => {\r\n window.removeEventListener('pointerup', handlePointerUp);\r\n window.removeEventListener('pointercancel', handlePointerUp);\r\n deactivate();\r\n };\r\n\r\n const handlePointerDown = (e: PointerEvent<T>) => {\r\n const rect = e.currentTarget.getBoundingClientRect();\r\n activate(rect, e.clientX, e.clientY, opts.center);\r\n window.addEventListener('pointerup', handlePointerUp);\r\n window.addEventListener('pointercancel', handlePointerUp);\r\n };\r\n\r\n // Keyboard activation\r\n const keyReleased = useRef(true);\r\n const handleKeyUp = (e: KeyboardEvent) => {\r\n if (e.key !== ' ') {\r\n return;\r\n }\r\n window.removeEventListener('keyup', handleKeyUp);\r\n keyReleased.current = true;\r\n deactivate();\r\n };\r\n\r\n const handleKeyDown = (e: ReactKeyboardEvent<T>) => {\r\n if (e.key !== ' ' || !keyReleased.current) {\r\n return;\r\n }\r\n const rect = e.currentTarget.getBoundingClientRect();\r\n keyReleased.current = false;\r\n activate(rect, 0, 0, true);\r\n window.addEventListener('keyup', handleKeyUp);\r\n };\r\n\r\n return {\r\n handleKeyDown: opts.disabled ? disabledHandler : handleKeyDown,\r\n handlePointerDown: opts.disabled ? disabledHandler : handlePointerDown,\r\n ...rest,\r\n };\r\n}\r\n"],"mappings":";;;AACA,SAASA,MAAT,QAAuB,OAAvB;AAGA,SAASC,SAAT,QAA0B,aAA1B;;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAM;EAC5B;AACD,CAFD;;AAIA,OAAO,SAASC,iBAAT,CAAkDC,IAAlD,EAAuE;EAC5E,iBAA0CH,SAAS,CAACG,IAAD,CAAnD;EAAA,IAAQC,QAAR,cAAQA,QAAR;EAAA,IAAkBC,UAAlB,cAAkBA,UAAlB;EAAA,IAAiCC,IAAjC,mDAD4E,CAG5E;;;EACA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAM;IAC5BC,MAAM,CAACC,mBAAP,CAA2B,WAA3B,EAAwCF,eAAxC;IACAC,MAAM,CAACC,mBAAP,CAA2B,eAA3B,EAA4CF,eAA5C;IACAF,UAAU;EACX,CAJD;;EAMA,IAAMK,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,CAAD,EAAwB;IAChD,IAAMC,IAAI,GAAGD,CAAC,CAACE,aAAF,CAAgBC,qBAAhB,EAAb;IACAV,QAAQ,CAACQ,IAAD,EAAOD,CAAC,CAACI,OAAT,EAAkBJ,CAAC,CAACK,OAApB,EAA6Bb,IAAI,CAACc,MAAlC,CAAR;IACAT,MAAM,CAACU,gBAAP,CAAwB,WAAxB,EAAqCX,eAArC;IACAC,MAAM,CAACU,gBAAP,CAAwB,eAAxB,EAAyCX,eAAzC;EACD,CALD,CAV4E,CAiB5E;;;EACA,IAAMY,WAAW,GAAGpB,MAAM,CAAC,IAAD,CAA1B;;EACA,IAAMqB,WAAW,GAAG,SAAdA,WAAc,CAACT,CAAD,EAAsB;IACxC,IAAIA,CAAC,CAACU,GAAF,KAAU,GAAd,EAAmB;MACjB;IACD;;IACDb,MAAM,CAACC,mBAAP,CAA2B,OAA3B,EAAoCW,WAApC;IACAD,WAAW,CAACG,OAAZ,GAAsB,IAAtB;IACAjB,UAAU;EACX,CAPD;;EASA,IAAMkB,aAAa,GAAG,SAAhBA,aAAgB,CAACZ,CAAD,EAA8B;IAClD,IAAIA,CAAC,CAACU,GAAF,KAAU,GAAV,IAAiB,CAACF,WAAW,CAACG,OAAlC,EAA2C;MACzC;IACD;;IACD,IAAMV,IAAI,GAAGD,CAAC,CAACE,aAAF,CAAgBC,qBAAhB,EAAb;IACAK,WAAW,CAACG,OAAZ,GAAsB,KAAtB;IACAlB,QAAQ,CAACQ,IAAD,EAAO,CAAP,EAAU,CAAV,EAAa,IAAb,CAAR;IACAJ,MAAM,CAACU,gBAAP,CAAwB,OAAxB,EAAiCE,WAAjC;EACD,CARD;;EAUA;IACEG,aAAa,EAAEpB,IAAI,CAACqB,QAAL,GAAgBvB,eAAhB,GAAkCsB,aADnD;IAEEb,iBAAiB,EAAEP,IAAI,CAACqB,QAAL,GAAgBvB,eAAhB,GAAkCS;EAFvD,GAGKJ,IAHL;AAKD"}
1
+ {"version":3,"file":"useRippleHandlers.js","names":["useRef","useRipple","disabledHandler","useRippleHandlers","opts","activate","deactivate","rest","handlePointerUp","window","removeEventListener","handlePointerDown","e","rect","currentTarget","getBoundingClientRect","clientX","clientY","center","addEventListener","keyReleased","handleKeyUp","key","current","handleKeyDown","disabled"],"sources":["../../../src/Ripple/useRippleHandlers.ts"],"sourcesContent":["import type { KeyboardEvent as ReactKeyboardEvent, PointerEvent } from 'react';\nimport { useRef } from 'react';\n\nimport type { RippleOptions } from './useRipple';\nimport { useRipple } from './useRipple';\n\nconst disabledHandler = () => {\n /* When disabled, we don't wanna handle neither keyDown, nor pointerDown */\n};\n\nexport function useRippleHandlers<T extends HTMLElement>(opts: RippleOptions) {\n const { activate, deactivate, ...rest } = useRipple(opts);\n\n // Pointer activation\n const handlePointerUp = () => {\n window.removeEventListener('pointerup', handlePointerUp);\n window.removeEventListener('pointercancel', handlePointerUp);\n deactivate();\n };\n\n const handlePointerDown = (e: PointerEvent<T>) => {\n const rect = e.currentTarget.getBoundingClientRect();\n activate(rect, e.clientX, e.clientY, opts.center);\n window.addEventListener('pointerup', handlePointerUp);\n window.addEventListener('pointercancel', handlePointerUp);\n };\n\n // Keyboard activation\n const keyReleased = useRef(true);\n const handleKeyUp = (e: KeyboardEvent) => {\n if (e.key !== ' ') {\n return;\n }\n window.removeEventListener('keyup', handleKeyUp);\n keyReleased.current = true;\n deactivate();\n };\n\n const handleKeyDown = (e: ReactKeyboardEvent<T>) => {\n if (e.key !== ' ' || !keyReleased.current) {\n return;\n }\n const rect = e.currentTarget.getBoundingClientRect();\n keyReleased.current = false;\n activate(rect, 0, 0, true);\n window.addEventListener('keyup', handleKeyUp);\n };\n\n return {\n handleKeyDown: opts.disabled ? disabledHandler : handleKeyDown,\n handlePointerDown: opts.disabled ? disabledHandler : handlePointerDown,\n ...rest,\n };\n}\n"],"mappings":"AACA,SAASA,MAAM,QAAQ,OAAO;AAG9B,SAASC,SAAS,QAAQ,aAAa;AAEvC,MAAMC,eAAe,GAAGA,CAAA,KAAM;EAC5B;AAAA,CACD;AAED,OAAO,SAASC,iBAAiBA,CAAwBC,IAAmB,EAAE;EAC5E,MAAM;IAAEC,QAAQ;IAAEC,UAAU;IAAE,GAAGC;EAAK,CAAC,GAAGN,SAAS,CAACG,IAAI,CAAC;;EAEzD;EACA,MAAMI,eAAe,GAAGA,CAAA,KAAM;IAC5BC,MAAM,CAACC,mBAAmB,CAAC,WAAW,EAAEF,eAAe,CAAC;IACxDC,MAAM,CAACC,mBAAmB,CAAC,eAAe,EAAEF,eAAe,CAAC;IAC5DF,UAAU,CAAC,CAAC;EACd,CAAC;EAED,MAAMK,iBAAiB,GAAIC,CAAkB,IAAK;IAChD,MAAMC,IAAI,GAAGD,CAAC,CAACE,aAAa,CAACC,qBAAqB,CAAC,CAAC;IACpDV,QAAQ,CAACQ,IAAI,EAAED,CAAC,CAACI,OAAO,EAAEJ,CAAC,CAACK,OAAO,EAAEb,IAAI,CAACc,MAAM,CAAC;IACjDT,MAAM,CAACU,gBAAgB,CAAC,WAAW,EAAEX,eAAe,CAAC;IACrDC,MAAM,CAACU,gBAAgB,CAAC,eAAe,EAAEX,eAAe,CAAC;EAC3D,CAAC;;EAED;EACA,MAAMY,WAAW,GAAGpB,MAAM,CAAC,IAAI,CAAC;EAChC,MAAMqB,WAAW,GAAIT,CAAgB,IAAK;IACxC,IAAIA,CAAC,CAACU,GAAG,KAAK,GAAG,EAAE;MACjB;IACF;IACAb,MAAM,CAACC,mBAAmB,CAAC,OAAO,EAAEW,WAAW,CAAC;IAChDD,WAAW,CAACG,OAAO,GAAG,IAAI;IAC1BjB,UAAU,CAAC,CAAC;EACd,CAAC;EAED,MAAMkB,aAAa,GAAIZ,CAAwB,IAAK;IAClD,IAAIA,CAAC,CAACU,GAAG,KAAK,GAAG,IAAI,CAACF,WAAW,CAACG,OAAO,EAAE;MACzC;IACF;IACA,MAAMV,IAAI,GAAGD,CAAC,CAACE,aAAa,CAACC,qBAAqB,CAAC,CAAC;IACpDK,WAAW,CAACG,OAAO,GAAG,KAAK;IAC3BlB,QAAQ,CAACQ,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC1BJ,MAAM,CAACU,gBAAgB,CAAC,OAAO,EAAEE,WAAW,CAAC;EAC/C,CAAC;EAED,OAAO;IACLG,aAAa,EAAEpB,IAAI,CAACqB,QAAQ,GAAGvB,eAAe,GAAGsB,aAAa;IAC9Db,iBAAiB,EAAEP,IAAI,CAACqB,QAAQ,GAAGvB,eAAe,GAAGS,iBAAiB;IACtE,GAAGJ;EACL,CAAC;AACH","ignoreList":[]}