@basic-ui/material 0.1.16 → 1.0.0-alpha.10

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 (607) hide show
  1. package/build/cjs/index.js +815 -376
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/esm/Alert/Alert.d.ts +2 -2
  4. package/build/esm/Alert/Alert.js +10 -10
  5. package/build/esm/Alert/Alert.js.map +1 -1
  6. package/build/esm/Alert/index.d.ts +0 -0
  7. package/build/esm/Alert/index.js +0 -0
  8. package/build/esm/Alert/index.js.map +0 -0
  9. package/build/esm/AppBar/AppBar.d.ts +4 -4
  10. package/build/esm/AppBar/AppBar.js +26 -19
  11. package/build/esm/AppBar/AppBar.js.map +1 -1
  12. package/build/esm/AppBar/AppBarButton.d.ts +2 -2
  13. package/build/esm/AppBar/AppBarButton.js +8 -9
  14. package/build/esm/AppBar/AppBarButton.js.map +1 -1
  15. package/build/esm/AppBar/context.d.ts +1 -1
  16. package/build/esm/AppBar/context.js +6 -5
  17. package/build/esm/AppBar/context.js.map +1 -1
  18. package/build/esm/AppBar/index.d.ts +0 -0
  19. package/build/esm/AppBar/index.js +0 -0
  20. package/build/esm/AppBar/index.js.map +0 -0
  21. package/build/esm/Badge/Badge.d.ts +2 -2
  22. package/build/esm/Badge/Badge.js +2 -2
  23. package/build/esm/Badge/Badge.js.map +1 -1
  24. package/build/esm/Badge/index.d.ts +0 -0
  25. package/build/esm/Badge/index.js +0 -0
  26. package/build/esm/Badge/index.js.map +0 -0
  27. package/build/esm/BaseLine/BaseLine.d.ts +0 -0
  28. package/build/esm/BaseLine/BaseLine.js +4 -4
  29. package/build/esm/BaseLine/BaseLine.js.map +1 -1
  30. package/build/esm/BaseLine/index.d.ts +0 -0
  31. package/build/esm/BaseLine/index.js +0 -0
  32. package/build/esm/BaseLine/index.js.map +0 -0
  33. package/build/esm/BottomSheet/BottomSheet.d.ts +2 -2
  34. package/build/esm/BottomSheet/BottomSheet.js +11 -13
  35. package/build/esm/BottomSheet/BottomSheet.js.map +1 -1
  36. package/build/esm/BottomSheet/BottomSheetSurface.d.ts +4 -4
  37. package/build/esm/BottomSheet/BottomSheetSurface.js +8 -9
  38. package/build/esm/BottomSheet/BottomSheetSurface.js.map +1 -1
  39. package/build/esm/BottomSheet/index.d.ts +0 -0
  40. package/build/esm/BottomSheet/index.js +0 -0
  41. package/build/esm/BottomSheet/index.js.map +0 -0
  42. package/build/esm/Box/Box.d.ts +8 -8
  43. package/build/esm/Box/Box.js +26 -19
  44. package/build/esm/Box/Box.js.map +1 -1
  45. package/build/esm/Box/index.d.ts +0 -0
  46. package/build/esm/Box/index.js +0 -0
  47. package/build/esm/Box/index.js.map +0 -0
  48. package/build/esm/Button/BaseButton.d.ts +5 -4
  49. package/build/esm/Button/BaseButton.js +10 -12
  50. package/build/esm/Button/BaseButton.js.map +1 -1
  51. package/build/esm/Button/Button.d.ts +7 -7
  52. package/build/esm/Button/Button.js +44 -24
  53. package/build/esm/Button/Button.js.map +1 -1
  54. package/build/esm/Button/ButtonGroup.d.ts +5 -0
  55. package/build/esm/Button/ButtonGroup.js +31 -0
  56. package/build/esm/Button/ButtonGroup.js.map +1 -0
  57. package/build/esm/Button/FilledButton.d.ts +3 -2
  58. package/build/esm/Button/FilledButton.js +61 -22
  59. package/build/esm/Button/FilledButton.js.map +1 -1
  60. package/build/esm/Button/FloatingActionButton.d.ts +1 -1
  61. package/build/esm/Button/FloatingActionButton.js +0 -0
  62. package/build/esm/Button/FloatingActionButton.js.map +1 -1
  63. package/build/esm/Button/IconButton.d.ts +2 -1
  64. package/build/esm/Button/IconButton.js +2 -1
  65. package/build/esm/Button/IconButton.js.map +1 -1
  66. package/build/esm/Button/OutlinedButton.d.ts +1 -1
  67. package/build/esm/Button/OutlinedButton.js +36 -4
  68. package/build/esm/Button/OutlinedButton.js.map +1 -1
  69. package/build/esm/Button/TransparentButton.d.ts +3 -2
  70. package/build/esm/Button/TransparentButton.js +49 -15
  71. package/build/esm/Button/TransparentButton.js.map +1 -1
  72. package/build/esm/Button/context.d.ts +8 -0
  73. package/build/esm/Button/context.js +7 -0
  74. package/build/esm/Button/context.js.map +1 -0
  75. package/build/esm/Button/index.d.ts +1 -0
  76. package/build/esm/Button/index.js +1 -0
  77. package/build/esm/Button/index.js.map +1 -1
  78. package/build/esm/CheckBox/CheckBox.d.ts +6 -6
  79. package/build/esm/CheckBox/CheckBox.js +42 -36
  80. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  81. package/build/esm/CheckBox/CheckBoxIcon.d.ts +5 -5
  82. package/build/esm/CheckBox/CheckBoxIcon.js +16 -14
  83. package/build/esm/CheckBox/CheckBoxIcon.js.map +1 -1
  84. package/build/esm/CheckBox/CheckPath.d.ts +0 -0
  85. package/build/esm/CheckBox/CheckPath.js +15 -14
  86. package/build/esm/CheckBox/CheckPath.js.map +1 -1
  87. package/build/esm/CheckBox/IndeterminatePath.d.ts +0 -0
  88. package/build/esm/CheckBox/IndeterminatePath.js +14 -13
  89. package/build/esm/CheckBox/IndeterminatePath.js.map +1 -1
  90. package/build/esm/CheckBox/index.d.ts +0 -0
  91. package/build/esm/CheckBox/index.js +0 -0
  92. package/build/esm/CheckBox/index.js.map +0 -0
  93. package/build/esm/Chip/ButtonChip.d.ts +5 -5
  94. package/build/esm/Chip/ButtonChip.js +48 -65
  95. package/build/esm/Chip/ButtonChip.js.map +1 -1
  96. package/build/esm/Chip/Chip.d.ts +0 -0
  97. package/build/esm/Chip/Chip.js +0 -0
  98. package/build/esm/Chip/Chip.js.map +0 -0
  99. package/build/esm/Chip/ChipBase.d.ts +4 -4
  100. package/build/esm/Chip/ChipBase.js +41 -29
  101. package/build/esm/Chip/ChipBase.js.map +1 -1
  102. package/build/esm/Chip/ChoiceChip.d.ts +6 -5
  103. package/build/esm/Chip/ChoiceChip.js +37 -45
  104. package/build/esm/Chip/ChoiceChip.js.map +1 -1
  105. package/build/esm/Chip/index.d.ts +0 -0
  106. package/build/esm/Chip/index.js +0 -0
  107. package/build/esm/Chip/index.js.map +0 -0
  108. package/build/esm/ColorMode/ColorModeProvider.d.ts +3 -3
  109. package/build/esm/ColorMode/ColorModeProvider.js +31 -19
  110. package/build/esm/ColorMode/ColorModeProvider.js.map +1 -1
  111. package/build/esm/ColorMode/color-mode.d.ts +0 -0
  112. package/build/esm/ColorMode/color-mode.js +3 -3
  113. package/build/esm/ColorMode/color-mode.js.map +1 -1
  114. package/build/esm/ColorMode/color-vars.d.ts +0 -0
  115. package/build/esm/ColorMode/color-vars.js +20 -12
  116. package/build/esm/ColorMode/color-vars.js.map +1 -1
  117. package/build/esm/ColorMode/constants.d.ts +0 -0
  118. package/build/esm/ColorMode/constants.js +3 -3
  119. package/build/esm/ColorMode/constants.js.map +1 -1
  120. package/build/esm/ColorMode/index.d.ts +0 -0
  121. package/build/esm/ColorMode/index.js +0 -0
  122. package/build/esm/ColorMode/index.js.map +0 -0
  123. package/build/esm/Combobox/Combobox.d.ts +20 -20
  124. package/build/esm/Combobox/Combobox.js +53 -59
  125. package/build/esm/Combobox/Combobox.js.map +1 -1
  126. package/build/esm/Combobox/index.d.ts +0 -0
  127. package/build/esm/Combobox/index.js +0 -0
  128. package/build/esm/Combobox/index.js.map +0 -0
  129. package/build/esm/Dialog/Dialog.d.ts +5 -5
  130. package/build/esm/Dialog/Dialog.js +22 -23
  131. package/build/esm/Dialog/Dialog.js.map +1 -1
  132. package/build/esm/Dialog/DialogBackdrop.d.ts +4 -4
  133. package/build/esm/Dialog/DialogBackdrop.js +9 -11
  134. package/build/esm/Dialog/DialogBackdrop.js.map +1 -1
  135. package/build/esm/Dialog/DialogContainer.d.ts +1 -1
  136. package/build/esm/Dialog/DialogContainer.js +4 -6
  137. package/build/esm/Dialog/DialogContainer.js.map +1 -1
  138. package/build/esm/Dialog/DialogSurface.d.ts +7 -5
  139. package/build/esm/Dialog/DialogSurface.js +23 -12
  140. package/build/esm/Dialog/DialogSurface.js.map +1 -1
  141. package/build/esm/Dialog/Scrim.d.ts +1 -1
  142. package/build/esm/Dialog/Scrim.js +4 -6
  143. package/build/esm/Dialog/Scrim.js.map +1 -1
  144. package/build/esm/Dialog/index.d.ts +0 -0
  145. package/build/esm/Dialog/index.js +0 -0
  146. package/build/esm/Dialog/index.js.map +0 -0
  147. package/build/esm/Dialog/useDialogAnimation.d.ts +0 -0
  148. package/build/esm/Dialog/useDialogAnimation.js +20 -20
  149. package/build/esm/Dialog/useDialogAnimation.js.map +1 -1
  150. package/build/esm/Divider/Divider.d.ts +4 -4
  151. package/build/esm/Divider/Divider.js +8 -8
  152. package/build/esm/Divider/Divider.js.map +1 -1
  153. package/build/esm/Divider/index.d.ts +0 -0
  154. package/build/esm/Divider/index.js +0 -0
  155. package/build/esm/Divider/index.js.map +0 -0
  156. package/build/esm/FloatingLabel/FloatingLabel.d.ts +4 -4
  157. package/build/esm/FloatingLabel/FloatingLabel.js +28 -24
  158. package/build/esm/FloatingLabel/FloatingLabel.js.map +1 -1
  159. package/build/esm/FloatingLabel/index.d.ts +0 -0
  160. package/build/esm/FloatingLabel/index.js +0 -0
  161. package/build/esm/FloatingLabel/index.js.map +0 -0
  162. package/build/esm/LineRipple/LineRipple.d.ts +4 -4
  163. package/build/esm/LineRipple/LineRipple.js +28 -19
  164. package/build/esm/LineRipple/LineRipple.js.map +1 -1
  165. package/build/esm/LineRipple/index.d.ts +0 -0
  166. package/build/esm/LineRipple/index.js +0 -0
  167. package/build/esm/LineRipple/index.js.map +0 -0
  168. package/build/esm/Link/Link.d.ts +4 -4
  169. package/build/esm/Link/Link.js +9 -9
  170. package/build/esm/Link/Link.js.map +1 -1
  171. package/build/esm/Link/index.d.ts +0 -0
  172. package/build/esm/Link/index.js +0 -0
  173. package/build/esm/Link/index.js.map +0 -0
  174. package/build/esm/List/List.d.ts +6 -6
  175. package/build/esm/List/List.js +19 -13
  176. package/build/esm/List/List.js.map +1 -1
  177. package/build/esm/List/index.d.ts +0 -0
  178. package/build/esm/List/index.js +0 -0
  179. package/build/esm/List/index.js.map +0 -0
  180. package/build/esm/ListItem/ListItem.d.ts +6 -6
  181. package/build/esm/ListItem/ListItem.js +72 -50
  182. package/build/esm/ListItem/ListItem.js.map +1 -1
  183. package/build/esm/ListItem/ListItemText.d.ts +6 -6
  184. package/build/esm/ListItem/ListItemText.js +10 -16
  185. package/build/esm/ListItem/ListItemText.js.map +1 -1
  186. package/build/esm/ListItem/context.d.ts +0 -0
  187. package/build/esm/ListItem/context.js +0 -0
  188. package/build/esm/ListItem/context.js.map +0 -0
  189. package/build/esm/ListItem/index.d.ts +0 -0
  190. package/build/esm/ListItem/index.js +0 -0
  191. package/build/esm/ListItem/index.js.map +0 -0
  192. package/build/esm/Menu/Menu.d.ts +11 -11
  193. package/build/esm/Menu/Menu.js +27 -29
  194. package/build/esm/Menu/Menu.js.map +1 -1
  195. package/build/esm/Menu/animation.d.ts +1 -1
  196. package/build/esm/Menu/animation.js +1 -1
  197. package/build/esm/Menu/animation.js.map +1 -1
  198. package/build/esm/Menu/index.d.ts +0 -0
  199. package/build/esm/Menu/index.js +0 -0
  200. package/build/esm/Menu/index.js.map +0 -0
  201. package/build/esm/NavRail/NavRailItem.d.ts +15 -0
  202. package/build/esm/NavRail/NavRailItem.js +147 -0
  203. package/build/esm/NavRail/NavRailItem.js.map +1 -0
  204. package/build/esm/NavRail/index.d.ts +1 -0
  205. package/build/esm/NavRail/index.js +2 -0
  206. package/build/esm/NavRail/index.js.map +1 -0
  207. package/build/esm/NotchedOutline/NotchedOutline.d.ts +5 -5
  208. package/build/esm/NotchedOutline/NotchedOutline.js +24 -21
  209. package/build/esm/NotchedOutline/NotchedOutline.js.map +1 -1
  210. package/build/esm/NotchedOutline/context.d.ts +0 -0
  211. package/build/esm/NotchedOutline/context.js +6 -5
  212. package/build/esm/NotchedOutline/context.js.map +1 -1
  213. package/build/esm/NotchedOutline/index.d.ts +0 -0
  214. package/build/esm/NotchedOutline/index.js +0 -0
  215. package/build/esm/NotchedOutline/index.js.map +0 -0
  216. package/build/esm/NotchedOutline/styledComponents.d.ts +206 -47
  217. package/build/esm/NotchedOutline/styledComponents.js +59 -63
  218. package/build/esm/NotchedOutline/styledComponents.js.map +1 -1
  219. package/build/esm/Paper/Paper.d.ts +6 -5
  220. package/build/esm/Paper/Paper.js +14 -13
  221. package/build/esm/Paper/Paper.js.map +1 -1
  222. package/build/esm/Paper/index.d.ts +0 -0
  223. package/build/esm/Paper/index.js +0 -0
  224. package/build/esm/Paper/index.js.map +0 -0
  225. package/build/esm/ProgressSpinner/ProgressSpinner.d.ts +1 -1
  226. package/build/esm/ProgressSpinner/ProgressSpinner.js +18 -17
  227. package/build/esm/ProgressSpinner/ProgressSpinner.js.map +1 -1
  228. package/build/esm/ProgressSpinner/index.d.ts +0 -0
  229. package/build/esm/ProgressSpinner/index.js +0 -0
  230. package/build/esm/ProgressSpinner/index.js.map +0 -0
  231. package/build/esm/RadioButton/RadioButton.d.ts +1 -1
  232. package/build/esm/RadioButton/RadioButton.js +17 -20
  233. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  234. package/build/esm/RadioButton/RadioButtonIcon.d.ts +3 -3
  235. package/build/esm/RadioButton/RadioButtonIcon.js +8 -9
  236. package/build/esm/RadioButton/RadioButtonIcon.js.map +1 -1
  237. package/build/esm/RadioButton/RadioGroup.d.ts +3 -3
  238. package/build/esm/RadioButton/RadioGroup.js +5 -4
  239. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  240. package/build/esm/RadioButton/index.d.ts +0 -0
  241. package/build/esm/RadioButton/index.js +0 -0
  242. package/build/esm/RadioButton/index.js.map +0 -0
  243. package/build/esm/Ripple/Ripple.d.ts +1 -1
  244. package/build/esm/Ripple/Ripple.js +21 -20
  245. package/build/esm/Ripple/Ripple.js.map +1 -1
  246. package/build/esm/Ripple/RippleBox.d.ts +4 -5
  247. package/build/esm/Ripple/RippleBox.js +21 -15
  248. package/build/esm/Ripple/RippleBox.js.map +1 -1
  249. package/build/esm/Ripple/constants.d.ts +0 -0
  250. package/build/esm/Ripple/constants.js +7 -7
  251. package/build/esm/Ripple/constants.js.map +1 -1
  252. package/build/esm/Ripple/index.d.ts +0 -0
  253. package/build/esm/Ripple/index.js +0 -0
  254. package/build/esm/Ripple/index.js.map +0 -0
  255. package/build/esm/Ripple/keyframes.d.ts +1 -1
  256. package/build/esm/Ripple/keyframes.js +3 -3
  257. package/build/esm/Ripple/keyframes.js.map +1 -1
  258. package/build/esm/Ripple/useRipple.d.ts +0 -0
  259. package/build/esm/Ripple/useRipple.js +55 -48
  260. package/build/esm/Ripple/useRipple.js.map +1 -1
  261. package/build/esm/Ripple/useRippleHandlers.d.ts +4 -4
  262. package/build/esm/Ripple/useRippleHandlers.js +13 -15
  263. package/build/esm/Ripple/useRippleHandlers.js.map +1 -1
  264. package/build/esm/Ripple/useRippleSurface.d.ts +10 -9
  265. package/build/esm/Ripple/useRippleSurface.js +91 -65
  266. package/build/esm/Ripple/useRippleSurface.js.map +1 -1
  267. package/build/esm/Select/Select.d.ts +8 -8
  268. package/build/esm/Select/Select.js +68 -47
  269. package/build/esm/Select/Select.js.map +1 -1
  270. package/build/esm/Select/SelectIcon.d.ts +4 -4
  271. package/build/esm/Select/SelectIcon.js +7 -8
  272. package/build/esm/Select/SelectIcon.js.map +1 -1
  273. package/build/esm/Select/context.d.ts +2 -2
  274. package/build/esm/Select/context.js +7 -6
  275. package/build/esm/Select/context.js.map +1 -1
  276. package/build/esm/Select/defaultRender.d.ts +2 -1
  277. package/build/esm/Select/defaultRender.js +12 -10
  278. package/build/esm/Select/defaultRender.js.map +1 -1
  279. package/build/esm/Select/index.d.ts +0 -0
  280. package/build/esm/Select/index.js +0 -0
  281. package/build/esm/Select/index.js.map +0 -0
  282. package/build/esm/Select/styledComponents.d.ts +10 -10
  283. package/build/esm/Select/styledComponents.js +15 -19
  284. package/build/esm/Select/styledComponents.js.map +1 -1
  285. package/build/esm/SelectItem/SelectItem.d.ts +2 -2
  286. package/build/esm/SelectItem/SelectItem.js +18 -19
  287. package/build/esm/SelectItem/SelectItem.js.map +1 -1
  288. package/build/esm/SelectItem/index.d.ts +0 -0
  289. package/build/esm/SelectItem/index.js +0 -0
  290. package/build/esm/SelectItem/index.js.map +0 -0
  291. package/build/esm/SelectionControl/SelectionControlLabel.d.ts +6 -6
  292. package/build/esm/SelectionControl/SelectionControlLabel.js +6 -7
  293. package/build/esm/SelectionControl/SelectionControlLabel.js.map +1 -1
  294. package/build/esm/SelectionControl/SelectionControlText.d.ts +5 -5
  295. package/build/esm/SelectionControl/SelectionControlText.js +7 -8
  296. package/build/esm/SelectionControl/SelectionControlText.js.map +1 -1
  297. package/build/esm/SelectionControl/index.d.ts +0 -0
  298. package/build/esm/SelectionControl/index.js +0 -0
  299. package/build/esm/SelectionControl/index.js.map +0 -0
  300. package/build/esm/Skeleton/DelayAppearance.d.ts +5 -5
  301. package/build/esm/Skeleton/DelayAppearance.js +8 -9
  302. package/build/esm/Skeleton/DelayAppearance.js.map +1 -1
  303. package/build/esm/Skeleton/Skeleton.d.ts +7 -7
  304. package/build/esm/Skeleton/Skeleton.js +10 -10
  305. package/build/esm/Skeleton/Skeleton.js.map +1 -1
  306. package/build/esm/Skeleton/animation.d.ts +2 -2
  307. package/build/esm/Skeleton/animation.js +25 -22
  308. package/build/esm/Skeleton/animation.js.map +1 -1
  309. package/build/esm/Skeleton/index.d.ts +0 -0
  310. package/build/esm/Skeleton/index.js +0 -0
  311. package/build/esm/Skeleton/index.js.map +0 -0
  312. package/build/esm/Snackbar/Snackbar.d.ts +4 -4
  313. package/build/esm/Snackbar/Snackbar.js +24 -25
  314. package/build/esm/Snackbar/Snackbar.js.map +1 -1
  315. package/build/esm/Snackbar/Stack.d.ts +2 -4
  316. package/build/esm/Snackbar/Stack.js +77 -65
  317. package/build/esm/Snackbar/Stack.js.map +1 -1
  318. package/build/esm/Snackbar/index.d.ts +0 -0
  319. package/build/esm/Snackbar/index.js +0 -0
  320. package/build/esm/Snackbar/index.js.map +0 -0
  321. package/build/esm/Snackbar/useSnackbarAnimation.d.ts +2 -2
  322. package/build/esm/Snackbar/useSnackbarAnimation.js +115 -79
  323. package/build/esm/Snackbar/useSnackbarAnimation.js.map +1 -1
  324. package/build/esm/Switch/Switch.d.ts +5 -6
  325. package/build/esm/Switch/Switch.js +28 -28
  326. package/build/esm/Switch/Switch.js.map +1 -1
  327. package/build/esm/Switch/index.d.ts +0 -0
  328. package/build/esm/Switch/index.js +0 -0
  329. package/build/esm/Switch/index.js.map +0 -0
  330. package/build/esm/Switch/styledComponents.d.ts +2 -1
  331. package/build/esm/Switch/styledComponents.js +67 -40
  332. package/build/esm/Switch/styledComponents.js.map +1 -1
  333. package/build/esm/Tab/Tab.d.ts +5 -5
  334. package/build/esm/Tab/Tab.js +18 -21
  335. package/build/esm/Tab/Tab.js.map +1 -1
  336. package/build/esm/Tab/TabList.d.ts +3 -3
  337. package/build/esm/Tab/TabList.js +18 -19
  338. package/build/esm/Tab/TabList.js.map +1 -1
  339. package/build/esm/Tab/TabPanel.d.ts +3 -3
  340. package/build/esm/Tab/TabPanel.js +8 -11
  341. package/build/esm/Tab/TabPanel.js.map +1 -1
  342. package/build/esm/Tab/TabPanels.d.ts +0 -0
  343. package/build/esm/Tab/TabPanels.js +0 -0
  344. package/build/esm/Tab/TabPanels.js.map +0 -0
  345. package/build/esm/Tab/Tabs.d.ts +0 -0
  346. package/build/esm/Tab/Tabs.js +0 -0
  347. package/build/esm/Tab/Tabs.js.map +0 -0
  348. package/build/esm/Tab/context.d.ts +0 -0
  349. package/build/esm/Tab/context.js +6 -5
  350. package/build/esm/Tab/context.js.map +1 -1
  351. package/build/esm/Tab/index.d.ts +0 -0
  352. package/build/esm/Tab/index.js +0 -0
  353. package/build/esm/Tab/index.js.map +0 -0
  354. package/build/esm/TabIndicator/TabIndicator.d.ts +2 -2
  355. package/build/esm/TabIndicator/TabIndicator.js +24 -22
  356. package/build/esm/TabIndicator/TabIndicator.js.map +1 -1
  357. package/build/esm/TabIndicator/context.d.ts +2 -2
  358. package/build/esm/TabIndicator/context.js +6 -5
  359. package/build/esm/TabIndicator/context.js.map +1 -1
  360. package/build/esm/TabIndicator/index.d.ts +0 -0
  361. package/build/esm/TabIndicator/index.js +0 -0
  362. package/build/esm/TabIndicator/index.js.map +0 -0
  363. package/build/esm/Table/Table.d.ts +2 -2
  364. package/build/esm/Table/Table.js +8 -8
  365. package/build/esm/Table/Table.js.map +1 -1
  366. package/build/esm/Table/TableBody.d.ts +1 -1
  367. package/build/esm/Table/TableBody.js +4 -6
  368. package/build/esm/Table/TableBody.js.map +1 -1
  369. package/build/esm/Table/TableCell.d.ts +1 -1
  370. package/build/esm/Table/TableCell.js +6 -8
  371. package/build/esm/Table/TableCell.js.map +1 -1
  372. package/build/esm/Table/TableHead.d.ts +1 -1
  373. package/build/esm/Table/TableHead.js +5 -7
  374. package/build/esm/Table/TableHead.js.map +1 -1
  375. package/build/esm/Table/TableRow.d.ts +2 -2
  376. package/build/esm/Table/TableRow.js +6 -8
  377. package/build/esm/Table/TableRow.js.map +1 -1
  378. package/build/esm/Table/context.d.ts +0 -0
  379. package/build/esm/Table/context.js +6 -5
  380. package/build/esm/Table/context.js.map +1 -1
  381. package/build/esm/Table/index.d.ts +0 -0
  382. package/build/esm/Table/index.js +0 -0
  383. package/build/esm/Table/index.js.map +0 -0
  384. package/build/esm/Text/LoremIpsum.d.ts +1 -1
  385. package/build/esm/Text/LoremIpsum.js +7 -7
  386. package/build/esm/Text/LoremIpsum.js.map +1 -1
  387. package/build/esm/Text/Text.d.ts +9 -5
  388. package/build/esm/Text/Text.js +12 -9
  389. package/build/esm/Text/Text.js.map +1 -1
  390. package/build/esm/Text/index.d.ts +0 -0
  391. package/build/esm/Text/index.js +0 -0
  392. package/build/esm/Text/index.js.map +0 -0
  393. package/build/esm/TextField/FilledContainer.d.ts +5 -5
  394. package/build/esm/TextField/FilledContainer.js +60 -57
  395. package/build/esm/TextField/FilledContainer.js.map +1 -1
  396. package/build/esm/TextField/HelperText.d.ts +6 -6
  397. package/build/esm/TextField/HelperText.js +14 -14
  398. package/build/esm/TextField/HelperText.js.map +1 -1
  399. package/build/esm/TextField/IconContainer.d.ts +2 -3
  400. package/build/esm/TextField/IconContainer.js +14 -23
  401. package/build/esm/TextField/IconContainer.js.map +1 -1
  402. package/build/esm/TextField/Input.d.ts +5 -5
  403. package/build/esm/TextField/Input.js +16 -15
  404. package/build/esm/TextField/Input.js.map +1 -1
  405. package/build/esm/TextField/OutlinedContainer.d.ts +6 -6
  406. package/build/esm/TextField/OutlinedContainer.js +27 -22
  407. package/build/esm/TextField/OutlinedContainer.js.map +1 -1
  408. package/build/esm/TextField/TextField.d.ts +7 -7
  409. package/build/esm/TextField/TextField.js +58 -41
  410. package/build/esm/TextField/TextField.js.map +1 -1
  411. package/build/esm/TextField/consts.d.ts +0 -0
  412. package/build/esm/TextField/consts.js +5 -5
  413. package/build/esm/TextField/consts.js.map +1 -1
  414. package/build/esm/TextField/index.d.ts +0 -0
  415. package/build/esm/TextField/index.js +0 -0
  416. package/build/esm/TextField/index.js.map +0 -0
  417. package/build/esm/ThemeExplorer/ColorPicker.d.ts +4 -4
  418. package/build/esm/ThemeExplorer/ColorPicker.js +16 -16
  419. package/build/esm/ThemeExplorer/ColorPicker.js.map +1 -1
  420. package/build/esm/ThemeExplorer/TextFieldColorPicker.d.ts +2 -2
  421. package/build/esm/ThemeExplorer/TextFieldColorPicker.js +49 -29
  422. package/build/esm/ThemeExplorer/TextFieldColorPicker.js.map +1 -1
  423. package/build/esm/ThemeExplorer/ThemeColors.d.ts +3 -3
  424. package/build/esm/ThemeExplorer/ThemeColors.js +4 -4
  425. package/build/esm/ThemeExplorer/ThemeColors.js.map +1 -1
  426. package/build/esm/ThemeExplorer/components.d.ts +6 -6
  427. package/build/esm/ThemeExplorer/components.js +68 -59
  428. package/build/esm/ThemeExplorer/components.js.map +1 -1
  429. package/build/esm/ThemeExplorer/makeColorScheme.d.ts +1 -1
  430. package/build/esm/ThemeExplorer/makeColorScheme.js +2 -1
  431. package/build/esm/ThemeExplorer/makeColorScheme.js.map +1 -1
  432. package/build/esm/ThemeExplorer/useDeferredColor.d.ts +1 -1
  433. package/build/esm/ThemeExplorer/useDeferredColor.js +12 -4
  434. package/build/esm/ThemeExplorer/useDeferredColor.js.map +1 -1
  435. package/build/esm/ThemeExplorer/useLocalStorageCachedState.d.ts +0 -0
  436. package/build/esm/ThemeExplorer/useLocalStorageCachedState.js +9 -2
  437. package/build/esm/ThemeExplorer/useLocalStorageCachedState.js.map +1 -1
  438. package/build/esm/Tooltip/Tooltip.d.ts +5 -5
  439. package/build/esm/Tooltip/Tooltip.js +12 -16
  440. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  441. package/build/esm/Tooltip/index.d.ts +0 -0
  442. package/build/esm/Tooltip/index.js +0 -0
  443. package/build/esm/Tooltip/index.js.map +0 -0
  444. package/build/esm/color.d.ts +7 -4
  445. package/build/esm/color.js +31 -16
  446. package/build/esm/color.js.map +1 -1
  447. package/build/esm/css.d.ts +0 -0
  448. package/build/esm/css.js +0 -0
  449. package/build/esm/css.js.map +0 -0
  450. package/build/esm/hooks/useAnimation.d.ts +1 -1
  451. package/build/esm/hooks/useAnimation.js +54 -41
  452. package/build/esm/hooks/useAnimation.js.map +1 -1
  453. package/build/esm/index.d.ts +2 -0
  454. package/build/esm/index.js +2 -0
  455. package/build/esm/index.js.map +1 -1
  456. package/build/esm/motion.d.ts +7 -0
  457. package/build/esm/motion.js +8 -0
  458. package/build/esm/motion.js.map +1 -0
  459. package/build/esm/theme/index.d.ts +0 -0
  460. package/build/esm/theme/index.js +0 -0
  461. package/build/esm/theme/index.js.map +0 -0
  462. package/build/esm/theme/theme.d.ts +206 -47
  463. package/build/esm/theme/theme.js +172 -97
  464. package/build/esm/theme/theme.js.map +1 -1
  465. package/build/esm/theme/typography-raleway.d.ts +0 -0
  466. package/build/esm/theme/typography-raleway.js +1 -1
  467. package/build/esm/theme/typography-raleway.js.map +1 -1
  468. package/build/esm/theme/typography-roboto.d.ts +0 -0
  469. package/build/esm/theme/typography-roboto.js +1 -1
  470. package/build/esm/theme/typography-roboto.js.map +1 -1
  471. package/build/esm/theme/useTheme.d.ts +1 -1
  472. package/build/esm/theme/useTheme.js +1 -1
  473. package/build/esm/theme/useTheme.js.map +1 -1
  474. package/build/tsconfig-build.tsbuildinfo +1 -0
  475. package/build/tsconfig.tsbuildinfo +1 -1
  476. package/package.json +7 -5
  477. package/src/Alert/Alert.tsx +5 -3
  478. package/src/AppBar/AppBar.story.tsx +7 -6
  479. package/src/AppBar/AppBar.tsx +13 -11
  480. package/src/AppBar/AppBarButton.tsx +3 -1
  481. package/src/AppBar/context.ts +2 -1
  482. package/src/Badge/Badge.tsx +3 -1
  483. package/src/BaseLine/BaseLine.tsx +15 -11
  484. package/src/BottomSheet/BottomSheet.story.tsx +1 -0
  485. package/src/BottomSheet/BottomSheet.tsx +2 -1
  486. package/src/BottomSheet/BottomSheetSurface.tsx +11 -7
  487. package/src/Box/Box.tsx +25 -24
  488. package/src/Button/BaseButton.tsx +7 -12
  489. package/src/Button/Button.story.tsx +41 -36
  490. package/src/Button/Button.tsx +26 -11
  491. package/src/Button/ButtonGroup.story.tsx +106 -0
  492. package/src/Button/ButtonGroup.tsx +35 -0
  493. package/src/Button/FilledButton.tsx +40 -10
  494. package/src/Button/FloatingActionButton.tsx +9 -0
  495. package/src/Button/IconButton.tsx +2 -1
  496. package/src/Button/OutlinedButton.tsx +33 -4
  497. package/src/Button/SpinnerButton.story.tsx +11 -12
  498. package/src/Button/TransparentButton.tsx +35 -4
  499. package/src/Button/context.tsx +17 -0
  500. package/src/Button/index.ts +1 -0
  501. package/src/CheckBox/CheckBox.story.tsx +4 -3
  502. package/src/CheckBox/CheckBox.tsx +14 -14
  503. package/src/CheckBox/CheckBoxIcon.tsx +8 -6
  504. package/src/Chip/ButtonChip.tsx +47 -51
  505. package/src/Chip/Chip.story.tsx +49 -28
  506. package/src/Chip/ChipBase.tsx +45 -15
  507. package/src/Chip/ChoiceChip.tsx +31 -27
  508. package/src/ColorMode/ColorModeProvider.tsx +6 -4
  509. package/src/Combobox/Combobox.story.tsx +4 -3
  510. package/src/Combobox/Combobox.tsx +37 -26
  511. package/src/Dialog/Dialog.story.tsx +3 -1
  512. package/src/Dialog/Dialog.tsx +9 -4
  513. package/src/Dialog/DialogBackdrop.tsx +8 -8
  514. package/src/Dialog/DialogContainer.tsx +3 -1
  515. package/src/Dialog/DialogSurface.tsx +27 -12
  516. package/src/Dialog/Scrim.tsx +3 -1
  517. package/src/Dialog/useDialogAnimation.tsx +3 -4
  518. package/src/Divider/Divider.tsx +5 -3
  519. package/src/FloatingLabel/FloatingLabel.story.tsx +1 -0
  520. package/src/FloatingLabel/FloatingLabel.tsx +9 -7
  521. package/src/LineRipple/LineRipple.story.tsx +2 -1
  522. package/src/LineRipple/LineRipple.tsx +8 -5
  523. package/src/Link/Link.tsx +5 -6
  524. package/src/List/List.tsx +8 -5
  525. package/src/ListItem/ListItem.story.tsx +1 -0
  526. package/src/ListItem/ListItem.tsx +62 -37
  527. package/src/ListItem/ListItemText.tsx +9 -11
  528. package/src/Menu/Menu.tsx +24 -17
  529. package/src/Menu/animation.ts +1 -1
  530. package/src/NavRail/NavRail.story.tsx +190 -0
  531. package/src/NavRail/NavRailItem.tsx +176 -0
  532. package/src/NavRail/index.ts +1 -0
  533. package/src/NotchedOutline/NotchedOutline.story.tsx +3 -2
  534. package/src/NotchedOutline/NotchedOutline.tsx +5 -5
  535. package/src/NotchedOutline/styledComponents.ts +10 -8
  536. package/src/Paper/Paper.story.tsx +20 -6
  537. package/src/Paper/Paper.tsx +24 -7
  538. package/src/ProgressSpinner/ProgressSpinner.story.tsx +1 -0
  539. package/src/ProgressSpinner/ProgressSpinner.tsx +7 -4
  540. package/src/RadioButton/RadioButton.story.tsx +3 -2
  541. package/src/RadioButton/RadioButton.tsx +11 -9
  542. package/src/RadioButton/RadioButtonIcon.tsx +7 -7
  543. package/src/RadioButton/RadioGroup.tsx +5 -5
  544. package/src/Ripple/Ripple.story.tsx +10 -4
  545. package/src/Ripple/Ripple.tsx +3 -2
  546. package/src/Ripple/RippleBox.tsx +9 -5
  547. package/src/Ripple/keyframes.ts +2 -1
  548. package/src/Ripple/useRipple.ts +1 -0
  549. package/src/Ripple/useRippleHandlers.ts +6 -4
  550. package/src/Ripple/useRippleSurface.ts +91 -49
  551. package/src/Select/PaymentMethodSelect.story.tsx +3 -1
  552. package/src/Select/Select.story.tsx +1 -0
  553. package/src/Select/Select.tsx +16 -9
  554. package/src/Select/SelectIcon.tsx +8 -6
  555. package/src/Select/context.ts +2 -1
  556. package/src/Select/defaultRender.ts +14 -13
  557. package/src/Select/styledComponents.tsx +17 -13
  558. package/src/SelectItem/SelectItem.tsx +4 -2
  559. package/src/SelectionControl/SelectionControlLabel.tsx +8 -9
  560. package/src/SelectionControl/SelectionControlText.tsx +6 -4
  561. package/src/Skeleton/DelayAppearance.tsx +6 -4
  562. package/src/Skeleton/Skeleton.story.tsx +4 -4
  563. package/src/Skeleton/Skeleton.tsx +9 -7
  564. package/src/Skeleton/animation.ts +3 -2
  565. package/src/Snackbar/Snackbar.story.tsx +1 -0
  566. package/src/Snackbar/Snackbar.tsx +10 -8
  567. package/src/Snackbar/Stack.tsx +7 -10
  568. package/src/Snackbar/useSnackbarAnimation.ts +6 -3
  569. package/src/Switch/Switch.tsx +20 -19
  570. package/src/Switch/styledComponents.tsx +73 -23
  571. package/src/Tab/Tab.tsx +10 -10
  572. package/src/Tab/TabList.tsx +5 -5
  573. package/src/Tab/TabPanel.tsx +5 -5
  574. package/src/TabIndicator/TabIndicator.tsx +8 -4
  575. package/src/TabIndicator/context.ts +2 -1
  576. package/src/Table/Table.tsx +5 -2
  577. package/src/Table/TableBody.tsx +3 -1
  578. package/src/Table/TableCell.tsx +3 -1
  579. package/src/Table/TableHead.tsx +4 -2
  580. package/src/Table/TableRow.tsx +5 -3
  581. package/src/Text/LoremIpsum.tsx +3 -2
  582. package/src/Text/Text.story.tsx +42 -7
  583. package/src/Text/Text.tsx +28 -6
  584. package/src/TextField/FilledContainer.tsx +15 -10
  585. package/src/TextField/HelperText.tsx +7 -6
  586. package/src/TextField/IconContainer.tsx +3 -3
  587. package/src/TextField/Input.tsx +13 -7
  588. package/src/TextField/OutlinedContainer.tsx +7 -5
  589. package/src/TextField/TextField.story.tsx +1 -0
  590. package/src/TextField/TextField.tsx +9 -6
  591. package/src/ThemeExplorer/ColorPicker.tsx +104 -0
  592. package/src/ThemeExplorer/TextFieldColorPicker.tsx +115 -0
  593. package/src/ThemeExplorer/ThemeBuilder.story.tsx +169 -0
  594. package/src/ThemeExplorer/ThemeColors.tsx +89 -0
  595. package/src/ThemeExplorer/components.tsx +200 -0
  596. package/src/ThemeExplorer/makeColorScheme.tsx +74 -0
  597. package/src/ThemeExplorer/useDeferredColor.tsx +25 -0
  598. package/src/ThemeExplorer/useLocalStorageCachedState.ts +18 -0
  599. package/src/Tooltip/Tooltip.story.tsx +2 -1
  600. package/src/Tooltip/Tooltip.tsx +15 -13
  601. package/src/color.ts +57 -29
  602. package/src/hooks/useAnimation.ts +2 -1
  603. package/src/index.ts +2 -0
  604. package/src/motion.ts +7 -0
  605. package/src/theme/theme.ts +174 -94
  606. package/src/theme/useTheme.ts +3 -1
  607. package/src/ListItem/context.ts +0 -13
@@ -1,29 +1,35 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
1
2
  import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
- import { useTheme } from '../theme';
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ import { useMemo } from 'react';
4
5
  import { get } from '@styled-system/css';
6
+ import { wrapEvent } from '@basic-ui/core';
7
+ import { useTheme } from '../theme';
5
8
  import { rippleStyle } from './Ripple';
6
9
  import { useRippleHandlers } from './useRippleHandlers';
7
- import { wrapEvent } from '@basic-ui/core';
8
- export function useRippleSurface(opts) {
9
- let {
10
- // eslint-disable-next-line prefer-const
11
- baseOpacity = 0,
12
- hoverOpacity = 0.04,
13
- focusOpacity = 0.12,
14
- pressedOpacity = 0.12,
15
- rippleColor = 'on.surface'
16
- } = opts;
10
+ export function useRippleSurface() {
11
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
12
+ var _opts$baseOpacity = opts.baseOpacity,
13
+ baseOpacity = _opts$baseOpacity === void 0 ? 0 : _opts$baseOpacity,
14
+ _opts$hoverOpacity = opts.hoverOpacity,
15
+ hoverOpacity = _opts$hoverOpacity === void 0 ? 0.04 : _opts$hoverOpacity,
16
+ _opts$focusOpacity = opts.focusOpacity,
17
+ focusOpacity = _opts$focusOpacity === void 0 ? 0.12 : _opts$focusOpacity,
18
+ _opts$pressedOpacity = opts.pressedOpacity,
19
+ pressedOpacity = _opts$pressedOpacity === void 0 ? 0.12 : _opts$pressedOpacity,
20
+ _opts$rippleColor = opts.rippleColor,
21
+ rippleColor = _opts$rippleColor === void 0 ? 'on.surface' : _opts$rippleColor;
17
22
 
18
- const {
19
- onKeyDown,
20
- onPointerDown,
21
- style = {},
22
- disabled
23
- } = opts,
24
- rippleProps = _objectWithoutPropertiesLoose(opts, ["onKeyDown", "onPointerDown", "style", "disabled"]);
23
+ var onKeyDown = opts.onKeyDown,
24
+ onPointerDown = opts.onPointerDown,
25
+ _opts$style = opts.style,
26
+ style = _opts$style === void 0 ? {} : _opts$style,
27
+ disabled = opts.disabled,
28
+ _opts$rippleEnabled = opts.rippleEnabled,
29
+ rippleEnabled = _opts$rippleEnabled === void 0 ? true : _opts$rippleEnabled,
30
+ rippleProps = _objectWithoutProperties(opts, ["onKeyDown", "onPointerDown", "style", "disabled", "rippleEnabled"]);
25
31
 
26
- const theme = useTheme();
32
+ var theme = useTheme();
27
33
  rippleColor = get(theme, "colors.".concat(rippleColor)) || rippleColor;
28
34
 
29
35
  if (disabled) {
@@ -32,55 +38,75 @@ export function useRippleSurface(opts) {
32
38
  pressedOpacity = baseOpacity;
33
39
  }
34
40
 
35
- const {
36
- handleKeyDown,
37
- handlePointerDown,
38
- style: animationStyle,
39
- animation
40
- } = useRippleHandlers(_extends({
41
+ var _useRippleHandlers = useRippleHandlers(_extends({
41
42
  opacity: Number(pressedOpacity),
42
43
  backgroundColor: rippleColor,
43
- disabled
44
- }, rippleProps));
45
- const css = {
46
- overflow: 'hidden',
47
- position: 'relative',
48
- cursor: 'pointer',
49
- // fix overflow: hidden + borderRadius in Safari
50
- // https://gist.github.com/ayamflow/b602ab436ac9f05660d9c15190f4fd7b#gistcomment-2359479
51
- willChange: 'transform,opacity',
52
- WebkitTapHighlightColor: 'transparent',
53
- // ripple overlay
54
- '&::before': {
55
- backgroundColor: rippleColor,
56
- boxSizing: 'content-box',
57
- position: 'absolute',
58
- content: '""',
59
- opacity: baseOpacity,
60
- pointerEvents: 'none',
61
- top: '0',
62
- left: '0',
63
- width: '100%',
64
- height: '100%',
65
- transition: 'opacity 75ms linear'
66
- },
67
- '&:hover::before': {
68
- opacity: hoverOpacity
69
- },
70
- '&:focus::before': {
71
- opacity: focusOpacity
72
- },
73
- ['&:disabled::before,&:disabled:hover::before,&:disabled:focus::before,&:disabled:active::before,' + '&[data-disabled]::before,&[data-disabled]:hover::before,&[data-disabled]:focus::before,&[data-disabled]:active::before']: {
44
+ disabled: disabled
45
+ }, rippleProps)),
46
+ handleKeyDown = _useRippleHandlers.handleKeyDown,
47
+ handlePointerDown = _useRippleHandlers.handlePointerDown,
48
+ animationStyle = _useRippleHandlers.style,
49
+ animation = _useRippleHandlers.animation;
50
+
51
+ var css = useMemo(function () {
52
+ var _extends2;
53
+
54
+ return _extends({
55
+ overflow: 'hidden',
56
+ position: 'relative',
57
+ cursor: 'pointer',
58
+ // fix overflow: hidden + borderRadius in Safari
59
+ // https://gist.github.com/ayamflow/b602ab436ac9f05660d9c15190f4fd7b#gistcomment-2359479
60
+ willChange: 'transform,opacity',
61
+ WebkitTapHighlightColor: 'transparent',
62
+ // ripple overlay
63
+ '&::before': {
64
+ backgroundColor: rippleColor,
65
+ boxSizing: 'content-box',
66
+ position: 'absolute',
67
+ content: '""',
68
+ opacity: baseOpacity,
69
+ pointerEvents: 'none',
70
+ top: '0',
71
+ left: '0',
72
+ width: '100%',
73
+ height: '100%',
74
+ transition: 'opacity 75ms linear'
75
+ },
76
+ '&:hover::before': {
77
+ opacity: hoverOpacity
78
+ },
79
+ '&:focus-visible::before': {
80
+ opacity: focusOpacity
81
+ }
82
+ }, !rippleEnabled && {
83
+ '&:active::before': {
84
+ opacity: pressedOpacity
85
+ }
86
+ }, {
87
+ '&[aria-pressed="true"]::before': {
88
+ opacity: baseOpacity + pressedOpacity
89
+ },
90
+ '&[aria-pressed="true"]:hover::before': {
91
+ opacity: pressedOpacity + hoverOpacity
92
+ },
93
+ '&[aria-pressed="true"]:focus-visible::before': {
94
+ opacity: pressedOpacity + focusOpacity
95
+ }
96
+ }, !rippleEnabled && {
97
+ '&[aria-pressed="true"]:active::before': {
98
+ opacity: pressedOpacity + pressedOpacity
99
+ }
100
+ }, (_extends2 = {}, _defineProperty(_extends2, '&:disabled::before,&:disabled:hover::before,&:disabled:focus::before,&:disabled:active::before,' + '&[data-disabled]::before,&[data-disabled]:hover::before,&[data-disabled]:focus::before,' + '&[data-disabled]:active::before,&:disabled[aria-pressed="true"]::before', {
74
101
  opacity: 0
75
- },
76
- '&:disabled,&[data-disabled]': {
102
+ }), _defineProperty(_extends2, '&:disabled,&[data-disabled]', {
77
103
  cursor: 'default'
78
- },
79
- // ripple
80
- '&::after': _extends({}, rippleStyle({
81
- animation
82
- }))
83
- };
104
+ }), _extends2), rippleEnabled && {
105
+ '&::after': _extends({}, rippleStyle({
106
+ animation: animation
107
+ }))
108
+ });
109
+ }, [animation, baseOpacity, focusOpacity, hoverOpacity, pressedOpacity, rippleColor, rippleEnabled]);
84
110
  return {
85
111
  style: _extends({}, animationStyle, style),
86
112
  onKeyDown: wrapEvent(onKeyDown, handleKeyDown),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Ripple/useRippleSurface.ts"],"names":["useTheme","get","rippleStyle","useRippleHandlers","wrapEvent","useRippleSurface","opts","baseOpacity","hoverOpacity","focusOpacity","pressedOpacity","rippleColor","onKeyDown","onPointerDown","style","disabled","rippleProps","theme","handleKeyDown","handlePointerDown","animationStyle","animation","opacity","Number","backgroundColor","css","overflow","position","cursor","willChange","WebkitTapHighlightColor","boxSizing","content","pointerEvents","top","left","width","height","transition","__css"],"mappings":";;AACA,SAASA,QAAT,QAAyB,UAAzB;AACA,SAASC,GAAT,QAAoB,oBAApB;AACA,SAASC,WAAT,QAA4B,UAA5B;AACA,SAASC,iBAAT,QAAkC,qBAAlC;AACA,SAASC,SAAT,QAA0B,gBAA1B;AAgBA,OAAO,SAASC,gBAAT,CACLC,IADK,EAEL;AACA,MAAI;AACF;AACAC,IAAAA,WAAW,GAAG,CAFZ;AAGFC,IAAAA,YAAY,GAAG,IAHb;AAIFC,IAAAA,YAAY,GAAG,IAJb;AAKFC,IAAAA,cAAc,GAAG,IALf;AAMFC,IAAAA,WAAW,GAAG;AANZ,MAOAL,IAPJ;;AAQA,QAAM;AACJM,IAAAA,SADI;AAEJC,IAAAA,aAFI;AAGJC,IAAAA,KAAK,GAAG,EAHJ;AAIJC,IAAAA;AAJI,MAMFT,IANJ;AAAA,QAKKU,WALL,iCAMIV,IANJ;;AAQA,QAAMW,KAAK,GAAGjB,QAAQ,EAAtB;AACAW,EAAAA,WAAW,GAAGV,GAAG,CAACgB,KAAD,mBAAkBN,WAAlB,EAAH,IAAuCA,WAArD;;AAEA,MAAII,QAAJ,EAAc;AACZP,IAAAA,YAAY,GAAGD,WAAf;AACAE,IAAAA,YAAY,GAAGF,WAAf;AACAG,IAAAA,cAAc,GAAGH,WAAjB;AACD;;AAED,QAAM;AACJW,IAAAA,aADI;AAEJC,IAAAA,iBAFI;AAGJL,IAAAA,KAAK,EAAEM,cAHH;AAIJC,IAAAA;AAJI,MAKFlB,iBAAiB;AACnBmB,IAAAA,OAAO,EAAEC,MAAM,CAACb,cAAD,CADI;AAEnBc,IAAAA,eAAe,EAAEb,WAFE;AAGnBI,IAAAA;AAHmB,KAIhBC,WAJgB,EALrB;AAYA,QAAMS,GAAgB,GAAG;AACvBC,IAAAA,QAAQ,EAAE,QADa;AAEvBC,IAAAA,QAAQ,EAAE,UAFa;AAGvBC,IAAAA,MAAM,EAAE,SAHe;AAIvB;AACA;AACAC,IAAAA,UAAU,EAAE,mBANW;AAOvBC,IAAAA,uBAAuB,EAAE,aAPF;AAQvB;AACA,iBAAa;AACXN,MAAAA,eAAe,EAAEb,WADN;AAEXoB,MAAAA,SAAS,EAAE,aAFA;AAGXJ,MAAAA,QAAQ,EAAE,UAHC;AAIXK,MAAAA,OAAO,EAAE,IAJE;AAKXV,MAAAA,OAAO,EAAEf,WALE;AAMX0B,MAAAA,aAAa,EAAE,MANJ;AAOXC,MAAAA,GAAG,EAAE,GAPM;AAQXC,MAAAA,IAAI,EAAE,GARK;AASXC,MAAAA,KAAK,EAAE,MATI;AAUXC,MAAAA,MAAM,EAAE,MAVG;AAWXC,MAAAA,UAAU,EAAE;AAXD,KATU;AAsBvB,uBAAmB;AACjBhB,MAAAA,OAAO,EAAEd;AADQ,KAtBI;AAyBvB,uBAAmB;AACjBc,MAAAA,OAAO,EAAEb;AADQ,KAzBI;AA4BvB,KAAC,oGACD,wHADA,GAC2H;AACzHa,MAAAA,OAAO,EAAE;AADgH,KA7BpG;AAgCvB,mCAA+B;AAC7BM,MAAAA,MAAM,EAAE;AADqB,KAhCR;AAmCvB;AACA,6BAAiB1B,WAAW,CAAC;AAAEmB,MAAAA;AAAF,KAAD,CAA5B;AApCuB,GAAzB;AAuCA,SAAO;AACLP,IAAAA,KAAK,eAAOM,cAAP,EAA0BN,KAA1B,CADA;AAELF,IAAAA,SAAS,EAAER,SAAS,CAACQ,SAAD,EAAYM,aAAZ,CAFf;AAGLL,IAAAA,aAAa,EAAET,SAAS,CAACS,aAAD,EAAgBM,iBAAhB,CAHnB;AAILoB,IAAAA,KAAK,EAAEd;AAJF,GAAP;AAMD","sourcesContent":["import { CSSProperties } from 'react';\nimport { useTheme } from '../theme';\nimport { get } from '@styled-system/css';\nimport { rippleStyle } from './Ripple';\nimport { useRippleHandlers } from './useRippleHandlers';\nimport { wrapEvent } from '@basic-ui/core';\nimport { SxStyleProp } from '../Box';\n\nexport interface UseRippleSurfaceOptions<T extends HTMLElement> {\n baseOpacity?: string | number;\n hoverOpacity?: string | number;\n focusOpacity?: string | number;\n pressedOpacity?: string | number;\n rippleColor?: string;\n center?: boolean;\n disabled?: boolean;\n style?: CSSProperties;\n onPointerDown?: React.PointerEventHandler<T>;\n onKeyDown?: React.KeyboardEventHandler<T>;\n}\n\nexport function useRippleSurface<T extends HTMLElement>(\n opts: UseRippleSurfaceOptions<T>\n) {\n let {\n // eslint-disable-next-line prefer-const\n baseOpacity = 0,\n hoverOpacity = 0.04,\n focusOpacity = 0.12,\n pressedOpacity = 0.12,\n rippleColor = 'on.surface',\n } = opts;\n const {\n onKeyDown,\n onPointerDown,\n style = {},\n disabled,\n ...rippleProps\n } = opts;\n\n const theme = useTheme();\n rippleColor = get(theme, `colors.${rippleColor}`) || rippleColor;\n\n if (disabled) {\n hoverOpacity = baseOpacity;\n focusOpacity = baseOpacity;\n pressedOpacity = baseOpacity;\n }\n\n const {\n handleKeyDown,\n handlePointerDown,\n style: animationStyle,\n animation,\n } = useRippleHandlers({\n opacity: Number(pressedOpacity),\n backgroundColor: rippleColor,\n disabled,\n ...rippleProps,\n });\n\n const css: SxStyleProp = {\n overflow: 'hidden',\n position: 'relative',\n cursor: 'pointer',\n // fix overflow: hidden + borderRadius in Safari\n // https://gist.github.com/ayamflow/b602ab436ac9f05660d9c15190f4fd7b#gistcomment-2359479\n willChange: 'transform,opacity',\n WebkitTapHighlightColor: 'transparent',\n // ripple overlay\n '&::before': {\n backgroundColor: rippleColor,\n boxSizing: 'content-box',\n position: 'absolute',\n content: '\"\"',\n opacity: baseOpacity,\n pointerEvents: 'none',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n transition: 'opacity 75ms linear',\n },\n '&:hover::before': {\n opacity: hoverOpacity,\n },\n '&:focus::before': {\n opacity: focusOpacity,\n },\n ['&:disabled::before,&:disabled:hover::before,&:disabled:focus::before,&:disabled:active::before,' +\n '&[data-disabled]::before,&[data-disabled]:hover::before,&[data-disabled]:focus::before,&[data-disabled]:active::before']: {\n opacity: 0,\n },\n '&:disabled,&[data-disabled]': {\n cursor: 'default',\n },\n // ripple\n '&::after': { ...rippleStyle({ animation }) },\n };\n\n return {\n style: { ...animationStyle, ...style },\n onKeyDown: wrapEvent(onKeyDown, handleKeyDown),\n onPointerDown: wrapEvent(onPointerDown, handlePointerDown),\n __css: css,\n };\n}\n"],"file":"useRippleSurface.js"}
1
+ {"version":3,"sources":["../../../src/Ripple/useRippleSurface.ts"],"names":["useMemo","get","wrapEvent","useTheme","rippleStyle","useRippleHandlers","useRippleSurface","opts","baseOpacity","hoverOpacity","focusOpacity","pressedOpacity","rippleColor","onKeyDown","onPointerDown","style","disabled","rippleEnabled","rippleProps","theme","opacity","Number","backgroundColor","handleKeyDown","handlePointerDown","animationStyle","animation","css","overflow","position","cursor","willChange","WebkitTapHighlightColor","boxSizing","content","pointerEvents","top","left","width","height","transition","__css"],"mappings":"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","sourcesContent":["import type {\n CSSProperties,\n KeyboardEventHandler,\n PointerEventHandler,\n} from 'react';\nimport { useMemo } from 'react';\nimport { get } from '@styled-system/css';\nimport { wrapEvent } from '@basic-ui/core';\n\nimport { useTheme } from '../theme';\nimport { rippleStyle } from './Ripple';\nimport { useRippleHandlers } from './useRippleHandlers';\nimport type { SxStyleProp } from '../Box';\n\nexport interface UseRippleSurfaceOptions<T extends HTMLElement> {\n baseOpacity?: number;\n hoverOpacity?: number;\n focusOpacity?: number;\n pressedOpacity?: number;\n rippleColor?: string;\n rippleEnabled?: boolean;\n center?: boolean;\n disabled?: boolean;\n style?: CSSProperties;\n onPointerDown?: PointerEventHandler<T>;\n onKeyDown?: KeyboardEventHandler<T>;\n}\n\nexport function useRippleSurface<T extends HTMLElement>(\n opts: UseRippleSurfaceOptions<T> = {}\n) {\n let {\n // eslint-disable-next-line prefer-const\n baseOpacity = 0,\n hoverOpacity = 0.04,\n focusOpacity = 0.12,\n pressedOpacity = 0.12,\n rippleColor = 'on.surface',\n } = opts;\n const {\n onKeyDown,\n onPointerDown,\n style = {},\n disabled,\n rippleEnabled = true,\n ...rippleProps\n } = opts;\n\n const theme = useTheme();\n rippleColor = get(theme, `colors.${rippleColor}`) || rippleColor;\n\n if (disabled) {\n hoverOpacity = baseOpacity;\n focusOpacity = baseOpacity;\n pressedOpacity = baseOpacity;\n }\n\n const {\n handleKeyDown,\n handlePointerDown,\n style: animationStyle,\n animation,\n } = useRippleHandlers({\n opacity: Number(pressedOpacity),\n backgroundColor: rippleColor,\n disabled,\n ...rippleProps,\n });\n\n const css: SxStyleProp = useMemo(\n () => ({\n overflow: 'hidden',\n position: 'relative',\n cursor: 'pointer',\n // fix overflow: hidden + borderRadius in Safari\n // https://gist.github.com/ayamflow/b602ab436ac9f05660d9c15190f4fd7b#gistcomment-2359479\n willChange: 'transform,opacity',\n WebkitTapHighlightColor: 'transparent',\n // ripple overlay\n '&::before': {\n backgroundColor: rippleColor,\n boxSizing: 'content-box',\n position: 'absolute',\n content: '\"\"',\n opacity: baseOpacity,\n pointerEvents: 'none',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n transition: 'opacity 75ms linear',\n },\n '&:hover::before': {\n opacity: hoverOpacity,\n },\n '&:focus-visible::before': {\n opacity: focusOpacity,\n },\n ...(!rippleEnabled && {\n '&:active::before': {\n opacity: pressedOpacity,\n },\n }),\n '&[aria-pressed=\"true\"]::before': {\n opacity: baseOpacity + pressedOpacity,\n },\n '&[aria-pressed=\"true\"]:hover::before': {\n opacity: pressedOpacity + hoverOpacity,\n },\n '&[aria-pressed=\"true\"]:focus-visible::before': {\n opacity: pressedOpacity + focusOpacity,\n },\n ...(!rippleEnabled && {\n '&[aria-pressed=\"true\"]:active::before': {\n opacity: pressedOpacity + pressedOpacity,\n },\n }),\n ['&:disabled::before,&:disabled:hover::before,&:disabled:focus::before,&:disabled:active::before,' +\n '&[data-disabled]::before,&[data-disabled]:hover::before,&[data-disabled]:focus::before,' +\n '&[data-disabled]:active::before,&:disabled[aria-pressed=\"true\"]::before']:\n {\n opacity: 0,\n },\n '&:disabled,&[data-disabled]': {\n cursor: 'default',\n },\n // ripple\n ...(rippleEnabled && {\n '&::after': { ...rippleStyle({ animation }) },\n }),\n }),\n [\n animation,\n baseOpacity,\n focusOpacity,\n hoverOpacity,\n pressedOpacity,\n rippleColor,\n rippleEnabled,\n ]\n );\n\n return {\n style: { ...animationStyle, ...style },\n onKeyDown: wrapEvent(onKeyDown, handleKeyDown),\n onPointerDown: wrapEvent(onPointerDown, handlePointerDown),\n __css: css,\n };\n}\n"],"file":"useRippleSurface.js"}
@@ -1,18 +1,18 @@
1
- import type * as React from 'react';
2
- import { Theme } from '../theme';
3
- import { BoxProps } from '../Box';
4
- export interface SelectProps extends Omit<BoxProps<HTMLSelectElement, React.SelectHTMLAttributes<HTMLSelectElement>>, 'value' | 'defaultValue' | 'onChange'> {
1
+ import type { SelectHTMLAttributes, ReactNode, ChangeEvent } from 'react';
2
+ import type { Theme } from '../theme';
3
+ import type { BoxProps } from '../Box';
4
+ export interface SelectProps extends Omit<BoxProps<HTMLSelectElement, SelectHTMLAttributes<HTMLSelectElement>>, 'value' | 'defaultValue' | 'onChange'> {
5
5
  variant?: 'outlined' | 'filled';
6
6
  color?: 'primary' | 'secondary';
7
- label?: React.ReactNode;
7
+ label?: ReactNode;
8
8
  helperText?: string;
9
9
  defaultValue?: string;
10
10
  value?: string;
11
11
  native?: boolean;
12
12
  theme?: Theme;
13
13
  error?: boolean | string;
14
- onChange?: (e: React.ChangeEvent<HTMLSelectElement>, value: string) => void;
14
+ onChange?: (e: ChangeEvent<HTMLSelectElement>, value: string) => void;
15
15
  renderValue?: (value?: string) => string | undefined;
16
- leadingIcon?: React.ReactNode;
16
+ leadingIcon?: ReactNode;
17
17
  }
18
- export declare const Select: React.ForwardRefExoticComponent<Pick<SelectProps, "bottom" | "top" | "hidden" | "left" | "right" | "as" | "sx" | "__css" | "variant" | "tx" | "theme" | "m" | "margin" | "mt" | "marginTop" | "mr" | "marginRight" | "mb" | "marginBottom" | "ml" | "marginLeft" | "mx" | "marginX" | "my" | "marginY" | "p" | "padding" | "pt" | "paddingTop" | "pr" | "paddingRight" | "pb" | "paddingBottom" | "pl" | "paddingLeft" | "px" | "paddingX" | "py" | "paddingY" | "width" | "height" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "display" | "verticalAlign" | "size" | "overflow" | "overflowX" | "overflowY" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "fontStyle" | "textAlign" | "color" | "bg" | "backgroundColor" | "opacity" | "alignItems" | "alignContent" | "justifyItems" | "justifyContent" | "flexWrap" | "flexDirection" | "flex" | "flexGrow" | "flexShrink" | "flexBasis" | "justifySelf" | "alignSelf" | "order" | "border" | "borderX" | "borderY" | "borderWidth" | "borderTopWidth" | "borderBottomWidth" | "borderLeftWidth" | "borderRightWidth" | "borderStyle" | "borderTopStyle" | "borderBottomStyle" | "borderLeftStyle" | "borderRightStyle" | "borderColor" | "borderTopColor" | "borderBottomColor" | "borderLeftColor" | "borderRightColor" | "borderRadius" | "borderTopLeftRadius" | "borderTopRightRadius" | "borderBottomLeftRadius" | "borderBottomRightRadius" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "gridGap" | "gridColumnGap" | "gridRowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "background" | "backgroundImage" | "backgroundSize" | "backgroundPosition" | "backgroundRepeat" | "position" | "zIndex" | "boxShadow" | "textShadow" | "className" | "id" | "lang" | "name" | "style" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "form" | "key" | "label" | "slot" | "title" | "translate" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "error" | "disabled" | "leadingIcon" | "autoComplete" | "autoFocus" | "multiple" | "required" | "value" | "helperText" | "native" | "renderValue"> & React.RefAttributes<HTMLButtonElement | HTMLSelectElement>>;
18
+ export declare const Select: import("react").ForwardRefExoticComponent<Pick<SelectProps, "children" | "form" | "label" | "p" | "slot" | "style" | "title" | "alignContent" | "alignItems" | "alignSelf" | "backgroundColor" | "backgroundImage" | "backgroundPosition" | "backgroundRepeat" | "backgroundSize" | "borderBottomColor" | "borderBottomLeftRadius" | "borderBottomRightRadius" | "borderBottomStyle" | "borderBottomWidth" | "borderLeftColor" | "borderLeftStyle" | "borderLeftWidth" | "borderRightColor" | "borderRightStyle" | "borderRightWidth" | "borderTopColor" | "borderTopLeftRadius" | "borderTopRightRadius" | "borderTopStyle" | "borderTopWidth" | "bottom" | "boxShadow" | "color" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "lineHeight" | "marginBottom" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "order" | "overflowX" | "overflowY" | "paddingBottom" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "textAlign" | "textShadow" | "top" | "translate" | "verticalAlign" | "width" | "zIndex" | "background" | "border" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderStyle" | "borderTop" | "borderWidth" | "flex" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "overflow" | "padding" | "gridColumnGap" | "gridGap" | "gridRowGap" | "value" | "bg" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "hidden" | "theme" | "sx" | "__css" | "variant" | "tx" | "as" | "size" | "borderX" | "borderY" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "error" | "key" | "autoFocus" | "disabled" | "name" | "multiple" | "autoComplete" | "leadingIcon" | "required" | "helperText" | "native" | "renderValue"> & import("react").RefAttributes<HTMLButtonElement | HTMLSelectElement>>;
@@ -1,5 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
4
  import { forwardRef, useState, useRef, useEffect, useId } from 'react';
4
5
  import { wrapEvent, assignMultipleRefs, useControlledState } from '@basic-ui/core';
5
6
  import { useTheme } from '../theme';
@@ -15,69 +16,89 @@ import { Box } from '../Box';
15
16
  import { IconContainer } from '../TextField/IconContainer';
16
17
  import { jsx as _jsx } from "react/jsx-runtime";
17
18
  import { jsxs as _jsxs } from "react/jsx-runtime";
18
- const componentMap = {
19
+ var componentMap = {
19
20
  outlined: OutlinedContainer,
20
21
  filled: FilledContainer
21
22
  };
22
- export const Select = /*#__PURE__*/forwardRef(function Select(props, forwardedRef) {
23
+ export var Select = /*#__PURE__*/forwardRef(function Select(props, forwardedRef) {
23
24
  var _buttonRef$current;
24
25
 
25
- const {
26
- id: idProp,
27
- variant = 'outlined',
28
- color = 'primary',
29
- value: valueProp,
30
- defaultValue = '',
31
- disabled,
32
- error = false,
33
- label = null,
34
- placeholder,
35
- helperText: helperTextProp,
36
- onChange: onChangeProp,
37
- onFocus,
38
- onBlur,
39
- native = false,
40
- children,
41
- renderValue: renderValueProp,
42
- leadingIcon = null
43
- } = props,
44
- otherProps = _objectWithoutPropertiesLoose(props, ["id", "variant", "color", "value", "defaultValue", "disabled", "error", "label", "placeholder", "helperText", "onChange", "onFocus", "onBlur", "native", "children", "renderValue", "leadingIcon"]);
26
+ var idProp = props.id,
27
+ _props$variant = props.variant,
28
+ variant = _props$variant === void 0 ? 'outlined' : _props$variant,
29
+ _props$color = props.color,
30
+ color = _props$color === void 0 ? 'primary' : _props$color,
31
+ valueProp = props.value,
32
+ _props$defaultValue = props.defaultValue,
33
+ defaultValue = _props$defaultValue === void 0 ? '' : _props$defaultValue,
34
+ disabled = props.disabled,
35
+ _props$error = props.error,
36
+ error = _props$error === void 0 ? false : _props$error,
37
+ _props$label = props.label,
38
+ label = _props$label === void 0 ? null : _props$label,
39
+ placeholder = props.placeholder,
40
+ helperTextProp = props.helperText,
41
+ onChangeProp = props.onChange,
42
+ onFocus = props.onFocus,
43
+ onBlur = props.onBlur,
44
+ _props$native = props.native,
45
+ native = _props$native === void 0 ? false : _props$native,
46
+ children = props.children,
47
+ renderValueProp = props.renderValue,
48
+ _props$leadingIcon = props.leadingIcon,
49
+ leadingIcon = _props$leadingIcon === void 0 ? null : _props$leadingIcon,
50
+ otherProps = _objectWithoutProperties(props, ["id", "variant", "color", "value", "defaultValue", "disabled", "error", "label", "placeholder", "helperText", "onChange", "onFocus", "onBlur", "native", "children", "renderValue", "leadingIcon"]);
45
51
 
46
- const [value, onChange] = useControlledState(valueProp, onChangeProp, defaultValue, setState => (e, v) => {
47
- setState(v);
48
- });
49
- const [hasFocus, setHasFocus] = useState(false);
50
- const buttonRef = useRef();
51
- const [open, setOpen] = useState(false);
52
- const fallbackId = useId();
53
- const theme = useTheme();
54
- const Container = componentMap[variant] || OutlinedContainer;
52
+ var _useControlledState = useControlledState(valueProp, onChangeProp, defaultValue, function (setState) {
53
+ return function (e, v) {
54
+ setState(v);
55
+ };
56
+ }),
57
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
58
+ value = _useControlledState2[0],
59
+ onChange = _useControlledState2[1];
60
+
61
+ var _useState = useState(false),
62
+ _useState2 = _slicedToArray(_useState, 2),
63
+ hasFocus = _useState2[0],
64
+ setHasFocus = _useState2[1];
65
+
66
+ var buttonRef = useRef();
67
+
68
+ var _useState3 = useState(false),
69
+ _useState4 = _slicedToArray(_useState3, 2),
70
+ open = _useState4[0],
71
+ setOpen = _useState4[1];
72
+
73
+ var fallbackId = useId();
74
+ var theme = useTheme();
75
+ var Container = componentMap[variant] || OutlinedContainer;
55
76
 
56
- const handleFocus = () => {
77
+ var handleFocus = function handleFocus() {
57
78
  setHasFocus(true);
58
79
  };
59
80
 
60
- const handleBlur = () => {
81
+ var handleBlur = function handleBlur() {
61
82
  setHasFocus(false);
62
83
  };
63
84
 
64
- const handleToggle = (e, isOpen) => {
85
+ var handleToggle = function handleToggle(e, isOpen) {
65
86
  setOpen(isOpen);
66
87
  };
67
88
 
68
- const handleOnChange = e => {
89
+ var handleOnChange = function handleOnChange(e) {
69
90
  onChange && onChange(e, native ? e.target.value : e.currentTarget.dataset.value);
70
91
  };
71
92
 
72
- const hasError = Boolean(error);
73
- const helperText = typeof error === 'string' ? error : helperTextProp;
74
- const id = idProp || fallbackId;
75
- const inputId = "".concat(id, "-text-field");
76
- const helperTextId = helperText ? "".concat(id, "-helper-text") : undefined;
77
- const renderValue = renderValueProp || makeDefaultRender(children);
78
- const labelIsFloating = hasFocus || open || renderValue(value) !== undefined;
79
- const Comp = native ? SelectComp : SelectButton;
80
- useEffect(() => {
93
+ var hasError = Boolean(error);
94
+ var helperText = typeof error === 'string' ? error : helperTextProp;
95
+ var id = idProp || fallbackId;
96
+ var inputId = "".concat(id, "-text-field");
97
+ var helperTextId = helperText ? "".concat(id, "-helper-text") : undefined;
98
+ var renderValue = renderValueProp || makeDefaultRender(children);
99
+ var labelIsFloating = hasFocus || open || renderValue(value) !== undefined;
100
+ var Comp = native ? SelectComp : SelectButton;
101
+ useEffect(function () {
81
102
  // right after mounting, if the default value in the select element
82
103
  // is different than the value we have stored in state we need to
83
104
  // update our state to reflect that.
@@ -88,9 +109,9 @@ export const Select = /*#__PURE__*/forwardRef(function Select(props, forwardedRe
88
109
  }, []);
89
110
  return /*#__PURE__*/_jsx(SelectProvider, {
90
111
  value: {
91
- native,
112
+ native: native,
92
113
  onSelect: handleOnChange,
93
- value
114
+ value: value
94
115
  },
95
116
  children: /*#__PURE__*/_jsxs(Box, {
96
117
  display: "inline-flex",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Select/Select.tsx"],"names":["forwardRef","useState","useRef","useEffect","useId","wrapEvent","assignMultipleRefs","useControlledState","useTheme","Select","SelectComp","SelectButton","FilledContainer","HelperText","OutlinedContainer","SelectProvider","Menu","MenuPopover","MenuList","SelectIcon","makeDefaultRender","Box","IconContainer","componentMap","outlined","filled","props","forwardedRef","id","idProp","variant","color","value","valueProp","defaultValue","disabled","error","label","placeholder","helperText","helperTextProp","onChange","onChangeProp","onFocus","onBlur","native","children","renderValue","renderValueProp","leadingIcon","otherProps","setState","e","v","hasFocus","setHasFocus","buttonRef","open","setOpen","fallbackId","theme","Container","handleFocus","handleBlur","handleToggle","isOpen","handleOnChange","target","currentTarget","dataset","hasError","Boolean","inputId","helperTextId","undefined","labelIsFloating","Comp","current","onSelect","minWidth","offsetWidth"],"mappings":"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","sourcesContent":["import { forwardRef, useState, useRef, useEffect, useId } from 'react';\n\nimport type * as React from 'react';\nimport {\n wrapEvent,\n assignMultipleRefs,\n useControlledState,\n} from '@basic-ui/core';\nimport { useTheme, Theme } from '../theme';\nimport { Select as SelectComp, SelectButton } from './styledComponents';\nimport { FilledContainer } from '../TextField/FilledContainer';\nimport { HelperText } from '../TextField/HelperText';\nimport { OutlinedContainer } from '../TextField/OutlinedContainer';\nimport { SelectProvider } from './context';\nimport { Menu, MenuPopover, MenuList } from '../Menu';\nimport { SelectIcon } from './SelectIcon';\nimport { makeDefaultRender } from './defaultRender';\nimport { Box, BoxProps } from '../Box';\nimport { IconContainer } from '../TextField/IconContainer';\n\nconst componentMap = {\n outlined: OutlinedContainer,\n filled: FilledContainer,\n};\n\nexport interface SelectProps\n extends Omit<\n BoxProps<HTMLSelectElement, React.SelectHTMLAttributes<HTMLSelectElement>>,\n 'value' | 'defaultValue' | 'onChange'\n > {\n variant?: 'outlined' | 'filled';\n color?: 'primary' | 'secondary';\n label?: React.ReactNode;\n helperText?: string;\n defaultValue?: string;\n value?: string;\n native?: boolean;\n theme?: Theme;\n error?: boolean | string;\n onChange?: (e: React.ChangeEvent<HTMLSelectElement>, value: string) => void;\n renderValue?: (value?: string) => string | undefined;\n leadingIcon?: React.ReactNode;\n}\n\nexport const Select = forwardRef<\n HTMLSelectElement | HTMLButtonElement,\n SelectProps\n>(function Select(props, forwardedRef) {\n const {\n id: idProp,\n variant = 'outlined',\n color = 'primary',\n value: valueProp,\n defaultValue = '',\n disabled,\n error = false,\n label = null,\n placeholder,\n helperText: helperTextProp,\n onChange: onChangeProp,\n onFocus,\n onBlur,\n native = false,\n children,\n renderValue: renderValueProp,\n leadingIcon = null,\n ...otherProps\n } = props;\n const [value, onChange] = useControlledState(\n valueProp,\n onChangeProp,\n defaultValue,\n (setState) => (e, v) => {\n setState(v);\n }\n );\n const [hasFocus, setHasFocus] = useState(false);\n const buttonRef = useRef<HTMLButtonElement | HTMLSelectElement>();\n const [open, setOpen] = useState(false);\n const fallbackId = useId();\n const theme = useTheme();\n\n const Container = componentMap[variant] || OutlinedContainer;\n\n const handleFocus = () => {\n setHasFocus(true);\n };\n\n const handleBlur = () => {\n setHasFocus(false);\n };\n\n const handleToggle = (e: unknown, isOpen: boolean) => {\n setOpen(isOpen);\n };\n\n const handleOnChange = (e: any) => {\n onChange &&\n onChange(\n e as any,\n native ? e.target.value : e.currentTarget.dataset.value\n );\n };\n\n const hasError = Boolean(error);\n const helperText = typeof error === 'string' ? error : helperTextProp;\n\n const id = idProp || fallbackId;\n const inputId = `${id}-text-field`;\n const helperTextId = helperText ? `${id}-helper-text` : undefined;\n\n const renderValue = renderValueProp || makeDefaultRender(children);\n\n const labelIsFloating = hasFocus || open || renderValue(value) !== undefined;\n\n const Comp: React.ComponentType<any> = native\n ? (SelectComp as any)\n : (SelectButton as any);\n\n useEffect(() => {\n // right after mounting, if the default value in the select element\n // is different than the value we have stored in state we need to\n // update our state to reflect that.\n if (native && buttonRef.current && buttonRef.current.value !== value) {\n onChange && onChange({} as any, buttonRef.current.value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <SelectProvider value={{ native, onSelect: handleOnChange, value }}>\n <Box display=\"inline-flex\" flexDirection=\"column\" width=\"100%\">\n <Container\n theme={theme}\n label={label}\n color={color}\n labelIsFloating={labelIsFloating}\n inputId={inputId}\n hasFocus={hasFocus}\n disabled={disabled}\n forceActive={open}\n error={hasError}\n leadingIcon={Boolean(leadingIcon)}\n >\n <Menu onChange={handleToggle} open={open}>\n {leadingIcon && (\n <IconContainer position=\"start\">{leadingIcon}</IconContainer>\n )}\n <Comp\n ref={assignMultipleRefs(forwardedRef, buttonRef)}\n variant={variant}\n id={inputId}\n onFocus={wrapEvent(onFocus, handleFocus)}\n onBlur={wrapEvent(onBlur, handleBlur)}\n onChange={native ? handleOnChange : undefined}\n value={native ? value : undefined}\n theme={theme}\n placeholder={placeholder}\n disabled={disabled}\n aria-disabled={disabled ? 'true' : undefined}\n aria-describedby={helperTextId}\n hasLabel={!!label}\n leadingIcon={Boolean(leadingIcon)}\n trailingIcon={true}\n {...otherProps}\n >\n {native ? children : renderValue(value)}\n </Comp>\n {!native && (\n <MenuPopover usePortal>\n <MenuList\n defaultActiveItemValue={value}\n style={{\n minWidth: buttonRef?.current?.offsetWidth,\n }}\n role=\"listbox\"\n >\n {children}\n </MenuList>\n </MenuPopover>\n )}\n </Menu>\n <SelectIcon open={open} />\n </Container>\n\n <HelperText\n disabled={disabled}\n id={helperTextId}\n leftSide={helperText}\n error={hasError}\n />\n </Box>\n </SelectProvider>\n );\n});\n"],"file":"Select.js"}
1
+ {"version":3,"sources":["../../../src/Select/Select.tsx"],"names":["forwardRef","useState","useRef","useEffect","useId","wrapEvent","assignMultipleRefs","useControlledState","useTheme","Select","SelectComp","SelectButton","FilledContainer","HelperText","OutlinedContainer","SelectProvider","Menu","MenuPopover","MenuList","SelectIcon","makeDefaultRender","Box","IconContainer","componentMap","outlined","filled","props","forwardedRef","idProp","id","variant","color","valueProp","value","defaultValue","disabled","error","label","placeholder","helperTextProp","helperText","onChangeProp","onChange","onFocus","onBlur","native","children","renderValueProp","renderValue","leadingIcon","otherProps","setState","e","v","hasFocus","setHasFocus","buttonRef","open","setOpen","fallbackId","theme","Container","handleFocus","handleBlur","handleToggle","isOpen","handleOnChange","target","currentTarget","dataset","hasError","Boolean","inputId","helperTextId","undefined","labelIsFloating","Comp","current","onSelect","minWidth","offsetWidth"],"mappings":"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","sourcesContent":["import type {\n SelectHTMLAttributes,\n ReactNode,\n ChangeEvent,\n ComponentType,\n} from 'react';\nimport { forwardRef, useState, useRef, useEffect, useId } from 'react';\nimport {\n wrapEvent,\n assignMultipleRefs,\n useControlledState,\n} from '@basic-ui/core';\n\nimport type { Theme } from '../theme';\nimport { useTheme } from '../theme';\nimport { Select as SelectComp, SelectButton } from './styledComponents';\nimport { FilledContainer } from '../TextField/FilledContainer';\nimport { HelperText } from '../TextField/HelperText';\nimport { OutlinedContainer } from '../TextField/OutlinedContainer';\nimport { SelectProvider } from './context';\nimport { Menu, MenuPopover, MenuList } from '../Menu';\nimport { SelectIcon } from './SelectIcon';\nimport { makeDefaultRender } from './defaultRender';\nimport type { BoxProps } from '../Box';\nimport { Box } from '../Box';\nimport { IconContainer } from '../TextField/IconContainer';\n\nconst componentMap = {\n outlined: OutlinedContainer,\n filled: FilledContainer,\n};\n\nexport interface SelectProps\n extends Omit<\n BoxProps<HTMLSelectElement, SelectHTMLAttributes<HTMLSelectElement>>,\n 'value' | 'defaultValue' | 'onChange'\n > {\n variant?: 'outlined' | 'filled';\n color?: 'primary' | 'secondary';\n label?: ReactNode;\n helperText?: string;\n defaultValue?: string;\n value?: string;\n native?: boolean;\n theme?: Theme;\n error?: boolean | string;\n onChange?: (e: ChangeEvent<HTMLSelectElement>, value: string) => void;\n renderValue?: (value?: string) => string | undefined;\n leadingIcon?: ReactNode;\n}\n\nexport const Select = forwardRef<\n HTMLSelectElement | HTMLButtonElement,\n SelectProps\n>(function Select(props, forwardedRef) {\n const {\n id: idProp,\n variant = 'outlined',\n color = 'primary',\n value: valueProp,\n defaultValue = '',\n disabled,\n error = false,\n label = null,\n placeholder,\n helperText: helperTextProp,\n onChange: onChangeProp,\n onFocus,\n onBlur,\n native = false,\n children,\n renderValue: renderValueProp,\n leadingIcon = null,\n ...otherProps\n } = props;\n const [value, onChange] = useControlledState(\n valueProp,\n onChangeProp,\n defaultValue,\n (setState) => (e, v) => {\n setState(v);\n }\n );\n const [hasFocus, setHasFocus] = useState(false);\n const buttonRef = useRef<HTMLButtonElement | HTMLSelectElement>();\n const [open, setOpen] = useState(false);\n const fallbackId = useId();\n const theme = useTheme();\n\n const Container = componentMap[variant] || OutlinedContainer;\n\n const handleFocus = () => {\n setHasFocus(true);\n };\n\n const handleBlur = () => {\n setHasFocus(false);\n };\n\n const handleToggle = (e: unknown, isOpen: boolean) => {\n setOpen(isOpen);\n };\n\n const handleOnChange = (e: any) => {\n onChange &&\n onChange(\n e as any,\n native ? e.target.value : e.currentTarget.dataset.value\n );\n };\n\n const hasError = Boolean(error);\n const helperText = typeof error === 'string' ? error : helperTextProp;\n\n const id = idProp || fallbackId;\n const inputId = `${id}-text-field`;\n const helperTextId = helperText ? `${id}-helper-text` : undefined;\n\n const renderValue = renderValueProp || makeDefaultRender(children);\n\n const labelIsFloating = hasFocus || open || renderValue(value) !== undefined;\n\n const Comp: ComponentType<any> = native\n ? (SelectComp as any)\n : (SelectButton as any);\n\n useEffect(() => {\n // right after mounting, if the default value in the select element\n // is different than the value we have stored in state we need to\n // update our state to reflect that.\n if (native && buttonRef.current && buttonRef.current.value !== value) {\n onChange && onChange({} as any, buttonRef.current.value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <SelectProvider value={{ native, onSelect: handleOnChange, value }}>\n <Box display=\"inline-flex\" flexDirection=\"column\" width=\"100%\">\n <Container\n theme={theme}\n label={label}\n color={color}\n labelIsFloating={labelIsFloating}\n inputId={inputId}\n hasFocus={hasFocus}\n disabled={disabled}\n forceActive={open}\n error={hasError}\n leadingIcon={Boolean(leadingIcon)}\n >\n <Menu onChange={handleToggle} open={open}>\n {leadingIcon && (\n <IconContainer position=\"start\">{leadingIcon}</IconContainer>\n )}\n <Comp\n ref={assignMultipleRefs(forwardedRef, buttonRef)}\n variant={variant}\n id={inputId}\n onFocus={wrapEvent(onFocus, handleFocus)}\n onBlur={wrapEvent(onBlur, handleBlur)}\n onChange={native ? handleOnChange : undefined}\n value={native ? value : undefined}\n theme={theme}\n placeholder={placeholder}\n disabled={disabled}\n aria-disabled={disabled ? 'true' : undefined}\n aria-describedby={helperTextId}\n hasLabel={!!label}\n leadingIcon={Boolean(leadingIcon)}\n trailingIcon={true}\n {...otherProps}\n >\n {native ? children : renderValue(value)}\n </Comp>\n {!native && (\n <MenuPopover usePortal>\n <MenuList\n defaultActiveItemValue={value}\n style={{\n minWidth: buttonRef?.current?.offsetWidth,\n }}\n role=\"listbox\"\n >\n {children}\n </MenuList>\n </MenuPopover>\n )}\n </Menu>\n <SelectIcon open={open} />\n </Container>\n\n <HelperText\n disabled={disabled}\n id={helperTextId}\n leftSide={helperText}\n error={hasError}\n />\n </Box>\n </SelectProvider>\n );\n});\n"],"file":"Select.js"}