@basic-ui/material 0.1.15 → 1.0.0-alpha.0

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 (407) hide show
  1. package/build/cjs/index.js +632 -373
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/esm/Alert/Alert.d.ts +1 -1
  4. package/build/esm/Alert/Alert.js +1 -1
  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.map +0 -0
  8. package/build/esm/AppBar/AppBar.d.ts +1 -1
  9. package/build/esm/AppBar/AppBar.js +1 -2
  10. package/build/esm/AppBar/AppBar.js.map +1 -1
  11. package/build/esm/AppBar/AppBarButton.d.ts +1 -1
  12. package/build/esm/AppBar/AppBarButton.js.map +0 -0
  13. package/build/esm/AppBar/context.d.ts +0 -0
  14. package/build/esm/AppBar/context.js.map +0 -0
  15. package/build/esm/AppBar/index.d.ts +0 -0
  16. package/build/esm/AppBar/index.js.map +0 -0
  17. package/build/esm/Badge/Badge.d.ts +1 -1
  18. package/build/esm/Badge/Badge.js.map +0 -0
  19. package/build/esm/Badge/index.d.ts +0 -0
  20. package/build/esm/Badge/index.js.map +0 -0
  21. package/build/esm/BaseLine/BaseLine.d.ts +0 -1
  22. package/build/esm/BaseLine/BaseLine.js.map +0 -0
  23. package/build/esm/BaseLine/index.d.ts +0 -0
  24. package/build/esm/BaseLine/index.js.map +0 -0
  25. package/build/esm/BottomSheet/BottomSheet.d.ts +1 -1
  26. package/build/esm/BottomSheet/BottomSheet.js.map +0 -0
  27. package/build/esm/BottomSheet/BottomSheetSurface.d.ts +1 -1
  28. package/build/esm/BottomSheet/BottomSheetSurface.js +1 -1
  29. package/build/esm/BottomSheet/BottomSheetSurface.js.map +1 -1
  30. package/build/esm/BottomSheet/index.d.ts +0 -0
  31. package/build/esm/BottomSheet/index.js.map +0 -0
  32. package/build/esm/Box/Box.d.ts +0 -0
  33. package/build/esm/Box/Box.js.map +0 -0
  34. package/build/esm/Box/index.d.ts +0 -0
  35. package/build/esm/Box/index.js.map +0 -0
  36. package/build/esm/Button/BaseButton.d.ts +2 -1
  37. package/build/esm/Button/BaseButton.js.map +1 -1
  38. package/build/esm/Button/Button.d.ts +3 -3
  39. package/build/esm/Button/Button.js +22 -6
  40. package/build/esm/Button/Button.js.map +1 -1
  41. package/build/esm/Button/ButtonGroup.d.ts +5 -0
  42. package/build/esm/Button/ButtonGroup.js +28 -0
  43. package/build/esm/Button/ButtonGroup.js.map +1 -0
  44. package/build/esm/Button/FilledButton.d.ts +2 -1
  45. package/build/esm/Button/FilledButton.js +36 -3
  46. package/build/esm/Button/FilledButton.js.map +1 -1
  47. package/build/esm/Button/IconButton.d.ts +1 -0
  48. package/build/esm/Button/IconButton.js +2 -1
  49. package/build/esm/Button/IconButton.js.map +1 -1
  50. package/build/esm/Button/OutlinedButton.d.ts +1 -1
  51. package/build/esm/Button/OutlinedButton.js +32 -2
  52. package/build/esm/Button/OutlinedButton.js.map +1 -1
  53. package/build/esm/Button/TransparentButton.d.ts +2 -1
  54. package/build/esm/Button/TransparentButton.js +32 -2
  55. package/build/esm/Button/TransparentButton.js.map +1 -1
  56. package/build/esm/Button/context.d.ts +8 -0
  57. package/build/esm/Button/context.js +5 -0
  58. package/build/esm/Button/context.js.map +1 -0
  59. package/build/esm/Button/index.d.ts +1 -0
  60. package/build/esm/Button/index.js +1 -0
  61. package/build/esm/Button/index.js.map +1 -1
  62. package/build/esm/CheckBox/CheckBox.d.ts +1 -1
  63. package/build/esm/CheckBox/CheckBox.js +1 -1
  64. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  65. package/build/esm/CheckBox/CheckBoxIcon.d.ts +1 -1
  66. package/build/esm/CheckBox/CheckBoxIcon.js.map +0 -0
  67. package/build/esm/CheckBox/CheckPath.d.ts +0 -0
  68. package/build/esm/CheckBox/CheckPath.js.map +0 -0
  69. package/build/esm/CheckBox/IndeterminatePath.d.ts +0 -0
  70. package/build/esm/CheckBox/IndeterminatePath.js.map +0 -0
  71. package/build/esm/CheckBox/index.d.ts +0 -0
  72. package/build/esm/CheckBox/index.js.map +0 -0
  73. package/build/esm/Chip/ButtonChip.d.ts +3 -3
  74. package/build/esm/Chip/ButtonChip.js +41 -57
  75. package/build/esm/Chip/ButtonChip.js.map +1 -1
  76. package/build/esm/Chip/Chip.d.ts +0 -0
  77. package/build/esm/Chip/Chip.js.map +0 -0
  78. package/build/esm/Chip/ChipBase.d.ts +1 -1
  79. package/build/esm/Chip/ChipBase.js +23 -15
  80. package/build/esm/Chip/ChipBase.js.map +1 -1
  81. package/build/esm/Chip/ChoiceChip.d.ts +3 -2
  82. package/build/esm/Chip/ChoiceChip.js +18 -24
  83. package/build/esm/Chip/ChoiceChip.js.map +1 -1
  84. package/build/esm/Chip/index.d.ts +0 -0
  85. package/build/esm/Chip/index.js.map +0 -0
  86. package/build/esm/ColorMode/ColorModeProvider.d.ts +0 -0
  87. package/build/esm/ColorMode/ColorModeProvider.js.map +0 -0
  88. package/build/esm/ColorMode/color-mode.d.ts +0 -0
  89. package/build/esm/ColorMode/color-mode.js.map +0 -0
  90. package/build/esm/ColorMode/color-vars.d.ts +0 -0
  91. package/build/esm/ColorMode/color-vars.js.map +0 -0
  92. package/build/esm/ColorMode/constants.d.ts +0 -0
  93. package/build/esm/ColorMode/constants.js.map +0 -0
  94. package/build/esm/ColorMode/index.d.ts +0 -0
  95. package/build/esm/ColorMode/index.js.map +0 -0
  96. package/build/esm/Combobox/Combobox.d.ts +7 -7
  97. package/build/esm/Combobox/Combobox.js +2 -1
  98. package/build/esm/Combobox/Combobox.js.map +1 -1
  99. package/build/esm/Combobox/index.d.ts +0 -0
  100. package/build/esm/Combobox/index.js.map +0 -0
  101. package/build/esm/Dialog/Dialog.d.ts +1 -1
  102. package/build/esm/Dialog/Dialog.js.map +0 -0
  103. package/build/esm/Dialog/DialogBackdrop.d.ts +1 -1
  104. package/build/esm/Dialog/DialogBackdrop.js.map +0 -0
  105. package/build/esm/Dialog/DialogContainer.d.ts +1 -1
  106. package/build/esm/Dialog/DialogContainer.js.map +0 -0
  107. package/build/esm/Dialog/DialogSurface.d.ts +4 -2
  108. package/build/esm/Dialog/DialogSurface.js +19 -7
  109. package/build/esm/Dialog/DialogSurface.js.map +1 -1
  110. package/build/esm/Dialog/Scrim.d.ts +1 -1
  111. package/build/esm/Dialog/Scrim.js.map +0 -0
  112. package/build/esm/Dialog/index.d.ts +0 -0
  113. package/build/esm/Dialog/index.js.map +0 -0
  114. package/build/esm/Dialog/useDialogAnimation.d.ts +0 -0
  115. package/build/esm/Dialog/useDialogAnimation.js.map +0 -0
  116. package/build/esm/Divider/Divider.d.ts +1 -1
  117. package/build/esm/Divider/Divider.js.map +0 -0
  118. package/build/esm/Divider/index.d.ts +0 -0
  119. package/build/esm/Divider/index.js.map +0 -0
  120. package/build/esm/FloatingLabel/FloatingLabel.d.ts +0 -1
  121. package/build/esm/FloatingLabel/FloatingLabel.js +1 -3
  122. package/build/esm/FloatingLabel/FloatingLabel.js.map +1 -1
  123. package/build/esm/FloatingLabel/index.d.ts +0 -0
  124. package/build/esm/FloatingLabel/index.js.map +0 -0
  125. package/build/esm/LineRipple/LineRipple.d.ts +1 -1
  126. package/build/esm/LineRipple/LineRipple.js.map +0 -0
  127. package/build/esm/LineRipple/index.d.ts +0 -0
  128. package/build/esm/LineRipple/index.js.map +0 -0
  129. package/build/esm/Link/Link.d.ts +1 -1
  130. package/build/esm/Link/Link.js.map +0 -0
  131. package/build/esm/Link/index.d.ts +0 -0
  132. package/build/esm/Link/index.js.map +0 -0
  133. package/build/esm/List/List.d.ts +1 -1
  134. package/build/esm/List/List.js.map +0 -0
  135. package/build/esm/List/index.d.ts +0 -0
  136. package/build/esm/List/index.js.map +0 -0
  137. package/build/esm/ListItem/ListItem.d.ts +1 -1
  138. package/build/esm/ListItem/ListItem.js +52 -33
  139. package/build/esm/ListItem/ListItem.js.map +1 -1
  140. package/build/esm/ListItem/ListItemText.d.ts +0 -0
  141. package/build/esm/ListItem/ListItemText.js +2 -7
  142. package/build/esm/ListItem/ListItemText.js.map +1 -1
  143. package/build/esm/ListItem/context.d.ts +0 -0
  144. package/build/esm/ListItem/context.js.map +0 -0
  145. package/build/esm/ListItem/index.d.ts +0 -0
  146. package/build/esm/ListItem/index.js.map +0 -0
  147. package/build/esm/Menu/Menu.d.ts +4 -4
  148. package/build/esm/Menu/Menu.js +2 -2
  149. package/build/esm/Menu/Menu.js.map +1 -1
  150. package/build/esm/Menu/animation.d.ts +0 -0
  151. package/build/esm/Menu/animation.js.map +0 -0
  152. package/build/esm/Menu/index.d.ts +0 -0
  153. package/build/esm/Menu/index.js.map +0 -0
  154. package/build/esm/NotchedOutline/NotchedOutline.d.ts +0 -0
  155. package/build/esm/NotchedOutline/NotchedOutline.js.map +0 -0
  156. package/build/esm/NotchedOutline/context.d.ts +0 -0
  157. package/build/esm/NotchedOutline/context.js.map +0 -0
  158. package/build/esm/NotchedOutline/index.d.ts +0 -0
  159. package/build/esm/NotchedOutline/index.js.map +0 -0
  160. package/build/esm/NotchedOutline/styledComponents.d.ts +96 -50
  161. package/build/esm/NotchedOutline/styledComponents.js +7 -7
  162. package/build/esm/NotchedOutline/styledComponents.js.map +1 -1
  163. package/build/esm/Paper/Paper.d.ts +1 -1
  164. package/build/esm/Paper/Paper.js +2 -2
  165. package/build/esm/Paper/Paper.js.map +1 -1
  166. package/build/esm/Paper/index.d.ts +0 -0
  167. package/build/esm/Paper/index.js.map +0 -0
  168. package/build/esm/ProgressSpinner/ProgressSpinner.d.ts +1 -1
  169. package/build/esm/ProgressSpinner/ProgressSpinner.js.map +0 -0
  170. package/build/esm/ProgressSpinner/index.d.ts +0 -0
  171. package/build/esm/ProgressSpinner/index.js.map +0 -0
  172. package/build/esm/RadioButton/RadioButton.d.ts +0 -0
  173. package/build/esm/RadioButton/RadioButton.js +1 -1
  174. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  175. package/build/esm/RadioButton/RadioButtonIcon.d.ts +0 -0
  176. package/build/esm/RadioButton/RadioButtonIcon.js +2 -2
  177. package/build/esm/RadioButton/RadioButtonIcon.js.map +1 -1
  178. package/build/esm/RadioButton/RadioGroup.d.ts +1 -1
  179. package/build/esm/RadioButton/RadioGroup.js.map +0 -0
  180. package/build/esm/RadioButton/index.d.ts +0 -0
  181. package/build/esm/RadioButton/index.js.map +0 -0
  182. package/build/esm/Ripple/Ripple.d.ts +0 -0
  183. package/build/esm/Ripple/Ripple.js +2 -2
  184. package/build/esm/Ripple/Ripple.js.map +1 -1
  185. package/build/esm/Ripple/RippleBox.d.ts +0 -0
  186. package/build/esm/Ripple/RippleBox.js +1 -1
  187. package/build/esm/Ripple/RippleBox.js.map +1 -1
  188. package/build/esm/Ripple/constants.d.ts +0 -0
  189. package/build/esm/Ripple/constants.js.map +0 -0
  190. package/build/esm/Ripple/index.d.ts +0 -0
  191. package/build/esm/Ripple/index.js.map +0 -0
  192. package/build/esm/Ripple/keyframes.d.ts +0 -0
  193. package/build/esm/Ripple/keyframes.js.map +0 -0
  194. package/build/esm/Ripple/useRipple.d.ts +0 -0
  195. package/build/esm/Ripple/useRipple.js.map +0 -0
  196. package/build/esm/Ripple/useRippleHandlers.d.ts +0 -0
  197. package/build/esm/Ripple/useRippleHandlers.js.map +0 -0
  198. package/build/esm/Ripple/useRippleSurface.d.ts +5 -4
  199. package/build/esm/Ripple/useRippleSurface.js +30 -8
  200. package/build/esm/Ripple/useRippleSurface.js.map +1 -1
  201. package/build/esm/Select/Select.d.ts +3 -3
  202. package/build/esm/Select/Select.js +3 -12
  203. package/build/esm/Select/Select.js.map +1 -1
  204. package/build/esm/Select/SelectIcon.d.ts +1 -1
  205. package/build/esm/Select/SelectIcon.js +3 -1
  206. package/build/esm/Select/SelectIcon.js.map +1 -1
  207. package/build/esm/Select/context.d.ts +0 -0
  208. package/build/esm/Select/context.js.map +0 -0
  209. package/build/esm/Select/defaultRender.d.ts +0 -0
  210. package/build/esm/Select/defaultRender.js.map +0 -0
  211. package/build/esm/Select/index.d.ts +0 -0
  212. package/build/esm/Select/index.js.map +0 -0
  213. package/build/esm/Select/styledComponents.d.ts +0 -0
  214. package/build/esm/Select/styledComponents.js +9 -5
  215. package/build/esm/Select/styledComponents.js.map +1 -1
  216. package/build/esm/SelectItem/SelectItem.d.ts +1 -1
  217. package/build/esm/SelectItem/SelectItem.js.map +0 -0
  218. package/build/esm/SelectItem/index.d.ts +0 -0
  219. package/build/esm/SelectItem/index.js.map +0 -0
  220. package/build/esm/SelectionControl/SelectionControlLabel.d.ts +1 -1
  221. package/build/esm/SelectionControl/SelectionControlLabel.js.map +0 -0
  222. package/build/esm/SelectionControl/SelectionControlText.d.ts +1 -1
  223. package/build/esm/SelectionControl/SelectionControlText.js.map +0 -0
  224. package/build/esm/SelectionControl/index.d.ts +0 -0
  225. package/build/esm/SelectionControl/index.js.map +0 -0
  226. package/build/esm/Skeleton/DelayAppearance.d.ts +1 -1
  227. package/build/esm/Skeleton/DelayAppearance.js.map +0 -0
  228. package/build/esm/Skeleton/Skeleton.d.ts +1 -1
  229. package/build/esm/Skeleton/Skeleton.js.map +0 -0
  230. package/build/esm/Skeleton/animation.d.ts +0 -0
  231. package/build/esm/Skeleton/animation.js.map +0 -0
  232. package/build/esm/Skeleton/index.d.ts +0 -0
  233. package/build/esm/Skeleton/index.js.map +0 -0
  234. package/build/esm/Snackbar/Snackbar.d.ts +1 -1
  235. package/build/esm/Snackbar/Snackbar.js +4 -4
  236. package/build/esm/Snackbar/Snackbar.js.map +1 -1
  237. package/build/esm/Snackbar/Stack.d.ts +0 -0
  238. package/build/esm/Snackbar/Stack.js.map +0 -0
  239. package/build/esm/Snackbar/index.d.ts +0 -0
  240. package/build/esm/Snackbar/index.js.map +0 -0
  241. package/build/esm/Snackbar/useSnackbarAnimation.d.ts +0 -0
  242. package/build/esm/Snackbar/useSnackbarAnimation.js.map +0 -0
  243. package/build/esm/Switch/Switch.d.ts +1 -1
  244. package/build/esm/Switch/Switch.js +8 -6
  245. package/build/esm/Switch/Switch.js.map +1 -1
  246. package/build/esm/Switch/index.d.ts +0 -0
  247. package/build/esm/Switch/index.js.map +0 -0
  248. package/build/esm/Switch/styledComponents.d.ts +2 -2
  249. package/build/esm/Switch/styledComponents.js +54 -26
  250. package/build/esm/Switch/styledComponents.js.map +1 -1
  251. package/build/esm/Tab/Tab.d.ts +1 -1
  252. package/build/esm/Tab/Tab.js.map +0 -0
  253. package/build/esm/Tab/TabList.d.ts +1 -1
  254. package/build/esm/Tab/TabList.js.map +0 -0
  255. package/build/esm/Tab/TabPanel.d.ts +1 -1
  256. package/build/esm/Tab/TabPanel.js.map +0 -0
  257. package/build/esm/Tab/TabPanels.d.ts +0 -0
  258. package/build/esm/Tab/TabPanels.js.map +0 -0
  259. package/build/esm/Tab/Tabs.d.ts +0 -0
  260. package/build/esm/Tab/Tabs.js.map +0 -0
  261. package/build/esm/Tab/context.d.ts +0 -0
  262. package/build/esm/Tab/context.js.map +0 -0
  263. package/build/esm/Tab/index.d.ts +0 -0
  264. package/build/esm/Tab/index.js.map +0 -0
  265. package/build/esm/TabIndicator/TabIndicator.d.ts +1 -1
  266. package/build/esm/TabIndicator/TabIndicator.js.map +0 -0
  267. package/build/esm/TabIndicator/context.d.ts +0 -0
  268. package/build/esm/TabIndicator/context.js.map +0 -0
  269. package/build/esm/TabIndicator/index.d.ts +0 -0
  270. package/build/esm/TabIndicator/index.js.map +0 -0
  271. package/build/esm/Table/Table.d.ts +1 -1
  272. package/build/esm/Table/Table.js +1 -1
  273. package/build/esm/Table/Table.js.map +1 -1
  274. package/build/esm/Table/TableBody.d.ts +1 -1
  275. package/build/esm/Table/TableBody.js.map +0 -0
  276. package/build/esm/Table/TableCell.d.ts +1 -1
  277. package/build/esm/Table/TableCell.js.map +0 -0
  278. package/build/esm/Table/TableHead.d.ts +1 -1
  279. package/build/esm/Table/TableHead.js.map +0 -0
  280. package/build/esm/Table/TableRow.d.ts +1 -1
  281. package/build/esm/Table/TableRow.js.map +0 -0
  282. package/build/esm/Table/context.d.ts +0 -0
  283. package/build/esm/Table/context.js.map +0 -0
  284. package/build/esm/Table/index.d.ts +0 -0
  285. package/build/esm/Table/index.js.map +0 -0
  286. package/build/esm/Text/LoremIpsum.d.ts +0 -0
  287. package/build/esm/Text/LoremIpsum.js.map +0 -0
  288. package/build/esm/Text/Text.d.ts +1 -1
  289. package/build/esm/Text/Text.js.map +0 -0
  290. package/build/esm/Text/index.d.ts +0 -0
  291. package/build/esm/Text/index.js.map +0 -0
  292. package/build/esm/TextField/FilledContainer.d.ts +1 -1
  293. package/build/esm/TextField/FilledContainer.js +17 -10
  294. package/build/esm/TextField/FilledContainer.js.map +1 -1
  295. package/build/esm/TextField/HelperText.d.ts +1 -1
  296. package/build/esm/TextField/HelperText.js.map +0 -0
  297. package/build/esm/TextField/IconContainer.d.ts +2 -2
  298. package/build/esm/TextField/IconContainer.js +4 -2
  299. package/build/esm/TextField/IconContainer.js.map +1 -1
  300. package/build/esm/TextField/Input.d.ts +1 -1
  301. package/build/esm/TextField/Input.js +18 -10
  302. package/build/esm/TextField/Input.js.map +1 -1
  303. package/build/esm/TextField/OutlinedContainer.d.ts +1 -1
  304. package/build/esm/TextField/OutlinedContainer.js +7 -4
  305. package/build/esm/TextField/OutlinedContainer.js.map +1 -1
  306. package/build/esm/TextField/TextField.d.ts +1 -1
  307. package/build/esm/TextField/TextField.js.map +0 -0
  308. package/build/esm/TextField/consts.d.ts +5 -0
  309. package/build/esm/TextField/consts.js +6 -0
  310. package/build/esm/TextField/consts.js.map +1 -0
  311. package/build/esm/TextField/index.d.ts +0 -0
  312. package/build/esm/TextField/index.js.map +0 -0
  313. package/build/esm/ThemeExplorer/ColorPicker.js +2 -2
  314. package/build/esm/ThemeExplorer/ColorPicker.js.map +1 -1
  315. package/build/esm/ThemeExplorer/TextFieldColorPicker.js +5 -5
  316. package/build/esm/ThemeExplorer/TextFieldColorPicker.js.map +1 -1
  317. package/build/esm/Tooltip/Tooltip.d.ts +1 -1
  318. package/build/esm/Tooltip/Tooltip.js.map +0 -0
  319. package/build/esm/Tooltip/index.d.ts +0 -0
  320. package/build/esm/Tooltip/index.js.map +0 -0
  321. package/build/esm/color.d.ts +2 -1
  322. package/build/esm/color.js +10 -6
  323. package/build/esm/color.js.map +1 -1
  324. package/build/esm/css.d.ts +0 -0
  325. package/build/esm/css.js.map +0 -0
  326. package/build/esm/hooks/useAnimation.d.ts +0 -0
  327. package/build/esm/hooks/useAnimation.js.map +0 -0
  328. package/build/esm/index.d.ts +0 -0
  329. package/build/esm/index.js.map +0 -0
  330. package/build/esm/theme/index.d.ts +0 -0
  331. package/build/esm/theme/index.js.map +0 -0
  332. package/build/esm/theme/theme.d.ts +96 -50
  333. package/build/esm/theme/theme.js +133 -93
  334. package/build/esm/theme/theme.js.map +1 -1
  335. package/build/esm/theme/typography-raleway.d.ts +0 -0
  336. package/build/esm/theme/typography-raleway.js.map +0 -0
  337. package/build/esm/theme/typography-roboto.d.ts +0 -0
  338. package/build/esm/theme/typography-roboto.js.map +0 -0
  339. package/build/esm/theme/useTheme.d.ts +471 -1
  340. package/build/esm/theme/useTheme.js.map +0 -0
  341. package/build/tsconfig.tsbuildinfo +1 -1
  342. package/package.json +5 -4
  343. package/src/Alert/Alert.tsx +1 -1
  344. package/src/AppBar/AppBar.tsx +5 -6
  345. package/src/BottomSheet/BottomSheetSurface.tsx +1 -1
  346. package/src/Button/BaseButton.tsx +1 -0
  347. package/src/Button/Button.story.tsx +20 -33
  348. package/src/Button/Button.tsx +20 -6
  349. package/src/Button/ButtonGroup.story.tsx +106 -0
  350. package/src/Button/ButtonGroup.tsx +33 -0
  351. package/src/Button/FilledButton.tsx +38 -4
  352. package/src/Button/FloatingActionButton.tsx +9 -0
  353. package/src/Button/IconButton.tsx +1 -0
  354. package/src/Button/OutlinedButton.tsx +30 -2
  355. package/src/Button/SpinnerButton.story.tsx +1 -1
  356. package/src/Button/TransparentButton.tsx +32 -1
  357. package/src/Button/context.tsx +16 -0
  358. package/src/Button/index.ts +1 -0
  359. package/src/CheckBox/CheckBox.tsx +1 -1
  360. package/src/Chip/ButtonChip.tsx +42 -48
  361. package/src/Chip/Chip.story.tsx +48 -26
  362. package/src/Chip/ChipBase.tsx +40 -12
  363. package/src/Chip/ChoiceChip.tsx +18 -17
  364. package/src/Combobox/Combobox.tsx +2 -1
  365. package/src/Dialog/DialogSurface.tsx +20 -5
  366. package/src/FloatingLabel/FloatingLabel.tsx +0 -3
  367. package/src/ListItem/ListItem.tsx +55 -32
  368. package/src/ListItem/ListItemText.tsx +2 -4
  369. package/src/Menu/Menu.tsx +2 -2
  370. package/src/NotchedOutline/NotchedOutline.story.tsx +1 -1
  371. package/src/NotchedOutline/styledComponents.ts +6 -6
  372. package/src/Paper/Paper.story.tsx +16 -3
  373. package/src/Paper/Paper.tsx +6 -2
  374. package/src/RadioButton/RadioButton.tsx +1 -1
  375. package/src/RadioButton/RadioButtonIcon.tsx +2 -2
  376. package/src/Ripple/Ripple.story.tsx +1 -1
  377. package/src/Ripple/Ripple.tsx +1 -1
  378. package/src/Ripple/RippleBox.tsx +1 -0
  379. package/src/Ripple/useRippleSurface.ts +31 -7
  380. package/src/Select/PaymentMethodSelect.story.tsx +321 -0
  381. package/src/Select/Select.story.tsx +26 -1
  382. package/src/Select/Select.tsx +12 -34
  383. package/src/Select/SelectIcon.tsx +2 -1
  384. package/src/Select/styledComponents.tsx +8 -4
  385. package/src/Skeleton/Skeleton.story.tsx +2 -2
  386. package/src/Snackbar/Snackbar.tsx +4 -4
  387. package/src/Switch/Switch.tsx +7 -6
  388. package/src/Switch/styledComponents.tsx +69 -22
  389. package/src/Table/Table.tsx +1 -1
  390. package/src/TextField/FilledContainer.tsx +30 -10
  391. package/src/TextField/IconContainer.tsx +5 -4
  392. package/src/TextField/Input.tsx +33 -10
  393. package/src/TextField/OutlinedContainer.tsx +18 -4
  394. package/src/TextField/TextField.story.tsx +14 -1
  395. package/src/TextField/consts.ts +7 -0
  396. package/src/ThemeExplorer/ColorPicker.tsx +101 -0
  397. package/src/ThemeExplorer/TextFieldColorPicker.tsx +112 -0
  398. package/src/ThemeExplorer/ThemeBuilder.story.tsx +169 -0
  399. package/src/ThemeExplorer/ThemeColors.tsx +88 -0
  400. package/src/ThemeExplorer/ThemeExplorer.story.tsx +42 -0
  401. package/src/ThemeExplorer/components.tsx +208 -0
  402. package/src/ThemeExplorer/makeColorScheme.tsx +73 -0
  403. package/src/ThemeExplorer/useDeferredColor.tsx +24 -0
  404. package/src/ThemeExplorer/useLocalStorageCachedState.ts +18 -0
  405. package/src/color.ts +18 -13
  406. package/src/theme/theme.ts +131 -92
  407. package/src/ListItem/context.ts +0 -13
@@ -2,8 +2,12 @@ import { forwardRef } from 'react';
2
2
  import type * as React from 'react';
3
3
  import { variant } from 'styled-system';
4
4
  import { Box, BoxProps } from '../Box';
5
- import { useTheme } from '../theme';
6
- import { alpha } from '../color';
5
+ import { Theme, useTheme } from '../theme';
6
+ import {
7
+ alpha,
8
+ getDarkThemeBackgroundOverlay,
9
+ getColorOverlay,
10
+ } from '../color';
7
11
  import { rem } from 'polished';
8
12
 
9
13
  export type ChipBaseProps<
@@ -17,15 +21,25 @@ export type ChipBaseProps<
17
21
  disabled?: boolean;
18
22
  };
19
23
 
20
- function getFilledCSS(bg: string, color: string) {
24
+ function getFilledCSS(
25
+ theme: Theme,
26
+ bg: string,
27
+ color: string,
28
+ disabled: boolean
29
+ ) {
21
30
  return {
22
- bg,
23
- color: alpha(color, 0.87),
31
+ ...(!disabled && bg !== 'surface'
32
+ ? { bg }
33
+ : {
34
+ ...getColorOverlay(theme, 'surface', 'primary', 0.05),
35
+ ...getDarkThemeBackgroundOverlay(theme, 2),
36
+ }),
37
+ color,
24
38
  '&::before': {
25
39
  backgroundColor: 'currentColor',
26
40
  position: 'absolute',
27
41
  content: '""',
28
- opacity: 0.12,
42
+ opacity: 0,
29
43
  pointerEvents: 'none',
30
44
  top: 0,
31
45
  right: 0,
@@ -38,13 +52,19 @@ function getFilledCSS(bg: string, color: string) {
38
52
  '& > *': {
39
53
  zIndex: 1,
40
54
  },
55
+ ...(disabled && { boxShadow: 0, bg: alpha('on.surface', 0.32) }),
41
56
  };
42
57
  }
43
58
 
44
- function getOutlinedCSS(bg: string, color: string, borderOpacity: number) {
59
+ function getOutlinedCSS(
60
+ theme: Theme,
61
+ bg: string,
62
+ color: string,
63
+ borderOpacity: number
64
+ ) {
45
65
  return {
46
- bg,
47
- color: alpha(color, 0.87),
66
+ ...(bg !== 'surface' ? { bg } : getDarkThemeBackgroundOverlay(theme, 2)),
67
+ color: color,
48
68
  borderColor: alpha(color, borderOpacity),
49
69
  borderStyle: 'solid',
50
70
  borderWidth: rem(1),
@@ -71,6 +91,7 @@ export const ChipBase = forwardRef<HTMLDivElement, ChipBaseProps>(function Chip(
71
91
  return (
72
92
  <Box
73
93
  as={as}
94
+ data-disabled={disabled ? '' : undefined}
74
95
  ref={forwardedRef}
75
96
  __css={{
76
97
  boxSizing: 'border-box',
@@ -84,9 +105,11 @@ export const ChipBase = forwardRef<HTMLDivElement, ChipBaseProps>(function Chip(
84
105
  fontSize: 'inherit',
85
106
  border: 0,
86
107
  overflow: 'hidden',
108
+ whiteSpace: 'nowrap',
87
109
  cursor: 'default',
88
110
  WebkitTapHighlightColor: 'transparent',
89
111
  willChange: 'transform,opacity',
112
+ minWidth: 'auto',
90
113
  '&::-moz-focus-inner': {
91
114
  border: 0,
92
115
  },
@@ -98,9 +121,14 @@ export const ChipBase = forwardRef<HTMLDivElement, ChipBaseProps>(function Chip(
98
121
  },
99
122
  })({ variant: variantProp, theme }),
100
123
  ...(variantProp === 'filled'
101
- ? getFilledCSS(backgroundColorProp, colorProp)
102
- : getOutlinedCSS(backgroundColorProp, colorProp, borderOpacityProp)),
103
- opacity: disabled ? 0.37 : 1,
124
+ ? getFilledCSS(theme, backgroundColorProp, colorProp, disabled)
125
+ : getOutlinedCSS(
126
+ theme,
127
+ backgroundColorProp,
128
+ colorProp,
129
+ borderOpacityProp
130
+ )),
131
+ opacity: disabled ? 0.38 : 1,
104
132
  ...__css,
105
133
  }}
106
134
  {...otherProps}
@@ -14,7 +14,8 @@ export type ChoiceChipProps = ChipBaseProps<
14
14
  checked?: boolean;
15
15
  disabled?: boolean;
16
16
  type: 'checkbox' | 'radio';
17
- leftIcon?: React.ReactNode;
17
+ leadingIcon?: React.ReactNode;
18
+ trailingIcon?: React.ReactNode;
18
19
  };
19
20
 
20
21
  const InnerInput: React.FC<any> = forwardRef<HTMLInputElement, ChoiceChipProps>(
@@ -30,21 +31,23 @@ const InnerInput: React.FC<any> = forwardRef<HTMLInputElement, ChoiceChipProps>(
30
31
  defaultValue,
31
32
  disabled,
32
33
  onChange,
33
- leftIcon,
34
+ leadingIcon,
35
+ trailingIcon,
34
36
  children,
37
+ __css,
35
38
  ...otherProps
36
39
  } = props;
37
40
 
38
41
  const theme = useTheme();
39
- const sumOpacity = checked ? 0.12 : 0;
40
42
 
41
43
  return (
42
44
  <ChipBase
43
45
  as="label"
44
46
  disabled={disabled}
45
- backgroundColor={'surface'}
46
- color={checked ? color : 'on.surface'}
47
- borderOpacity={checked ? 0.6 : 0.24}
47
+ backgroundColor={checked ? color + '-container' : 'surface'}
48
+ color={checked ? 'on.' + color + '-container' : 'on.surface'}
49
+ borderOpacity={checked ? 0 : 0.24}
50
+ __css={__css}
48
51
  {...otherProps}
49
52
  >
50
53
  <Box
@@ -56,6 +59,8 @@ const InnerInput: React.FC<any> = forwardRef<HTMLInputElement, ChoiceChipProps>(
56
59
  display: 'inline-flex',
57
60
  alignItems: 'center',
58
61
  justifyContent: 'center',
62
+ pl: leadingIcon ? rem(8) : rem(12),
63
+ pr: trailingIcon ? rem(8) : rem(12),
59
64
  }}
60
65
  >
61
66
  <RippleBox<
@@ -75,13 +80,13 @@ const InnerInput: React.FC<any> = forwardRef<HTMLInputElement, ChoiceChipProps>(
75
80
  theme={theme}
76
81
  disabled={disabled}
77
82
  rippleColor={color}
78
- baseOpacity={0 + sumOpacity}
79
- hoverOpacity={0.12 + sumOpacity}
80
- focusOpacity={0.24 + sumOpacity}
83
+ baseOpacity={0}
84
+ hoverOpacity={0.12}
85
+ focusOpacity={0.24}
81
86
  name={name}
82
87
  ref={forwardedRef}
83
88
  __css={{
84
- backgroundColor: 'rgba(0,0,0,0)',
89
+ bg: 'transparent',
85
90
  top: 0,
86
91
  left: 0,
87
92
  width: '100%',
@@ -93,15 +98,11 @@ const InnerInput: React.FC<any> = forwardRef<HTMLInputElement, ChoiceChipProps>(
93
98
  border: 'none',
94
99
  borderRadius: 0,
95
100
  position: 'absolute',
96
- color: 'inherit',
97
101
  }}
98
102
  />
99
- <Box as="span" pl={rem(4)} pr={rem(8)}>
100
- {leftIcon}
101
- </Box>
102
- <Box as="span" pr={rem(12)}>
103
- {children}
104
- </Box>
103
+ {leadingIcon}
104
+ {children}
105
+ {trailingIcon}
105
106
  </Box>
106
107
  </ChipBase>
107
108
  );
@@ -98,10 +98,11 @@ export const ComboboxList = forwardRef<HTMLUListElement, ComboboxListProps>(
98
98
  ref={forwardedRef}
99
99
  innerAs={as}
100
100
  outlined={false}
101
- elevation={8}
101
+ elevation={2}
102
102
  __css={{
103
103
  maxHeight: rem(300),
104
104
  overflowY: 'auto',
105
+ borderRadius: 'default',
105
106
  '[data-popper-placement="top"] &': {
106
107
  transformOrigin: 'bottom center',
107
108
  },
@@ -4,33 +4,48 @@ import { Modal as _Modal, ModalProps } from '@basic-ui/core';
4
4
  import { Paper, PaperProps } from '../Paper';
5
5
  import { useTheme } from '../theme';
6
6
  import { rem } from 'polished';
7
+ import { get, variant } from 'styled-system';
8
+ import { getColorOverlay } from '../color';
7
9
 
8
10
  const Modal = _Modal as React.FC<
9
11
  DialogSurfaceProps & { ref?: React.Ref<HTMLDivElement> }
10
12
  >;
11
13
 
12
- export type DialogSurfaceProps = ModalProps & PaperProps;
14
+ export type DialogSurfaceProps = ModalProps &
15
+ PaperProps & {
16
+ variant?: 'base';
17
+ };
13
18
 
14
19
  export const DialogSurface = forwardRef<HTMLDivElement, DialogSurfaceProps>(
15
20
  function DialogSurface(props, forwardedRef) {
16
- const { __css, ...otherProps } = props;
21
+ const { __css, variant: variantProp = 'base', ...otherProps } = props;
17
22
  const theme = useTheme();
18
23
 
24
+ const overlayValue =
25
+ (get(theme, 'dialogs.backgroundColorOverlay') as number) || 0;
26
+
19
27
  return (
20
28
  <Modal
21
29
  ref={forwardedRef}
22
30
  as={Paper}
23
31
  theme={theme}
24
- elevation={24}
32
+ elevation={3}
25
33
  __css={{
34
+ ...getColorOverlay(theme, 'surface', 'primary', overlayValue),
26
35
  position: 'relative',
27
- bg: 'surface',
28
- borderRadius: rem(8),
36
+ borderRadius: 'small',
29
37
  width: '100%',
30
38
  maxWidth: rem(600),
31
39
  maxHeight: '100%',
32
40
  overflow: 'auto',
33
41
  pointerEvents: 'auto',
42
+ ...variant({
43
+ scale: 'dialogs.variants',
44
+ prop: 'variant',
45
+ variants: {
46
+ base: {},
47
+ },
48
+ })({ variant: variantProp, theme }),
34
49
  ...__css,
35
50
  }}
36
51
  {...otherProps}
@@ -11,7 +11,6 @@ export interface FloatingLabelProps
11
11
  offsetX?: number;
12
12
  height?: number;
13
13
  scale?: number;
14
- top?: number;
15
14
  px?: number;
16
15
  translateX?: number;
17
16
  translateY?: number;
@@ -29,7 +28,6 @@ export const FloatingLabel = forwardRef<HTMLLabelElement, FloatingLabelProps>(
29
28
  style = {},
30
29
  translateX: translateXProp,
31
30
  translateY: translateYProp,
32
- top = 0,
33
31
  children,
34
32
  ...otherProps
35
33
  } = props;
@@ -58,7 +56,6 @@ export const FloatingLabel = forwardRef<HTMLLabelElement, FloatingLabelProps>(
58
56
  fontWeight: 'regular',
59
57
  display: 'inline-flex',
60
58
  alignItems: 'center',
61
- top: rem(top),
62
59
  left: rem(offsetX),
63
60
  height: typeof height === 'number' ? rem(height) : height,
64
61
  transformOrigin: 'left center',
@@ -1,10 +1,8 @@
1
1
  import { forwardRef } from 'react';
2
2
  import type * as React from 'react';
3
- import { BoxProps } from '../Box';
3
+ import { BoxProps, Box } from '../Box';
4
4
  import { rem } from 'polished';
5
- import { RippleBox } from '../Ripple';
6
5
  import { useTheme } from '../theme';
7
- import { ListItemProvider } from './context';
8
6
  import { get } from '@styled-system/css';
9
7
  import { alpha } from '../color';
10
8
 
@@ -33,41 +31,66 @@ export const ListItem = forwardRef<HTMLDivElement, ListItemProps>(
33
31
  ...otherProps
34
32
  } = props;
35
33
  const selected = ariaSelectedProp || selectedProp;
36
- const color = colorProp ? colorProp : selected ? 'primary' : 'on.surface';
34
+ const color = rippleColor || colorProp || 'primary';
37
35
  const theme = useTheme();
38
36
 
37
+ const baseOpacity = 0.12;
38
+ const hoverOpacity = 0.16;
39
+ const focusOpacity = 0.24;
40
+
39
41
  return (
40
- <ListItemProvider value={{ color, disabled }}>
41
- <RippleBox
42
- ref={forwardedRef}
43
- as={innerAs || as}
44
- theme={theme}
45
- display="flex"
46
- data-disabled={disabled ? '' : undefined}
47
- rippleColor={rippleColor || color}
48
- baseOpacity={selected ? 0.12 : 0}
49
- hoverOpacity={selected ? 0.16 : 0.04}
50
- focusOpacity={selected ? 0.24 : 0.12}
51
- aria-selected={selected ? 'true' : undefined}
52
- disabled={disabled}
53
- {...otherProps}
54
- __css={{
55
- px: 3,
56
- py: rem(12),
57
- backgroundColor: 'transparent',
58
- color: disabled ? alpha(color, 0.6) : alpha(color, 0.87),
42
+ <Box
43
+ ref={forwardedRef}
44
+ as={innerAs || as}
45
+ theme={theme}
46
+ display="flex"
47
+ data-disabled={disabled ? '' : undefined}
48
+ aria-selected={selected ? 'true' : undefined}
49
+ disabled={disabled}
50
+ {...otherProps}
51
+ __css={{
52
+ px: 3,
53
+ py: rem(12),
54
+ transition: 'background-color 75ms linear',
55
+ backgroundColor: 'transparent',
56
+ color: alpha('on.surface', 0.87),
57
+ cursor: 'pointer',
58
+ ':hover': {
59
+ backgroundColor: alpha('on.surface', hoverOpacity),
60
+ },
61
+ ':focus': {
62
+ outline: 'none',
63
+ backgroundColor: alpha('on.surface', focusOpacity),
64
+ },
65
+ ':active': {
66
+ backgroundColor: alpha('on.surface', baseOpacity + 0.12),
67
+ },
68
+ '&[aria-selected="true"]': {
69
+ backgroundColor: alpha(color, baseOpacity + 0.12),
70
+ ':hover': {
71
+ backgroundColor: alpha(color, hoverOpacity + 0.12),
72
+ },
59
73
  ':focus': {
60
74
  outline: 'none',
75
+ backgroundColor: alpha(color, focusOpacity + 0.12),
61
76
  },
62
- textDecoration: 'none',
63
- WebkitTapHighlightColor: 'transparent',
64
- ...get(theme, 'text.subtitle1'),
65
- ...__css,
66
- }}
67
- >
68
- {children}
69
- </RippleBox>
70
- </ListItemProvider>
77
+ ':active': {
78
+ backgroundColor: alpha(color, baseOpacity + 0.24),
79
+ },
80
+ },
81
+ '&[data-disabled]': {
82
+ color: alpha('on.surface', 0.6),
83
+ backgroundColor: 'transparent',
84
+ cursor: 'default',
85
+ },
86
+ textDecoration: 'none',
87
+ WebkitTapHighlightColor: 'transparent',
88
+ ...get(theme, 'text.subtitle1'),
89
+ ...__css,
90
+ }}
91
+ >
92
+ {children}
93
+ </Box>
71
94
  );
72
95
  }
73
96
  );
@@ -1,8 +1,6 @@
1
1
  import { forwardRef } from 'react';
2
2
  import type * as React from 'react';
3
3
  import { Text } from '../Text';
4
- import { alpha } from '../color';
5
- import { useListItemContext } from './context';
6
4
 
7
5
  export interface ListItemTextProps
8
6
  extends React.HTMLAttributes<HTMLDivElement> {
@@ -14,7 +12,6 @@ export interface ListItemTextProps
14
12
  export const ListItemText = forwardRef<HTMLDivElement, ListItemTextProps>(
15
13
  function ListItemText(props, forwardedRef) {
16
14
  const { as: Comp = 'div', text, secondaryText, ...otherProps } = props;
17
- const { color, disabled } = useListItemContext();
18
15
 
19
16
  return (
20
17
  <Comp ref={forwardedRef} {...otherProps}>
@@ -25,7 +22,8 @@ export const ListItemText = forwardRef<HTMLDivElement, ListItemTextProps>(
25
22
  variant="body2"
26
23
  display="block"
27
24
  __css={{
28
- color: alpha(color, disabled ? 0.3 : 0.57),
25
+ color: 'currentColor',
26
+ opacity: 0.65,
29
27
  }}
30
28
  >
31
29
  {secondaryText}
package/src/Menu/Menu.tsx CHANGED
@@ -34,14 +34,14 @@ export const MenuList = forwardRef<HTMLUListElement, MenuListProps>(
34
34
  as={List}
35
35
  innerAs={as}
36
36
  ref={ref as any}
37
- elevation={8}
37
+ elevation={2}
38
38
  outlined={false}
39
39
  variant="default"
40
40
  __css={{
41
- width: 0,
42
41
  minWidth: rem(112),
43
42
  maxWidth: rem(280),
44
43
  maxHeight: rem(300),
44
+ borderRadius: 'default',
45
45
  overflowY: 'auto',
46
46
  '[data-popper-placement="top"] &': {
47
47
  transformOrigin: 'bottom center',
@@ -17,7 +17,7 @@ const Example = () => {
17
17
  <Box
18
18
  m={3}
19
19
  display="inline-block"
20
- sx={{ position: 'relative', bg: 'muted', borderRadius: 4 }}
20
+ sx={{ position: 'relative', bg: 'muted', borderRadius: 'extra-small' }}
21
21
  >
22
22
  <NotchedOutline
23
23
  borderColor="primary"
@@ -15,7 +15,7 @@ const makeSelector = (
15
15
  ) =>
16
16
  `input:${state} ~ & [data-notch-outline-item],` +
17
17
  `select:${state} ~ & [data-notch-outline-item],` +
18
- `button:${state} ~ & [data-notch-outline-item],` +
18
+ `[role="button"]:${state} ~ & [data-notch-outline-item],` +
19
19
  `textarea:${state} ~ & [data-notch-outline-item]`;
20
20
 
21
21
  export const InnerContainer = styled('div', {
@@ -78,18 +78,18 @@ export const InnerContainer = styled('div', {
78
78
  }
79
79
 
80
80
  const inactiveStyle = {
81
- color: alpha('on.surface', 0.6),
82
- borderColor: alpha('on.surface', 0.38),
81
+ color: 'on.surface-variant',
82
+ borderColor: 'outline',
83
83
  ...borderStyling(borderRadius, borderWidth),
84
84
  };
85
85
 
86
86
  const hoverStyle = {
87
- borderColor: alpha('on.surface', 0.87),
88
- color: alpha('on.surface', 0.6),
87
+ borderColor: 'on.surface',
88
+ color: 'on.surface-variant',
89
89
  };
90
90
 
91
91
  const focusStyle = {
92
- borderColor: alpha(color, 0.87),
92
+ borderColor: color,
93
93
  color: alpha(color, 0.87),
94
94
  ...borderStyling(borderRadius, borderWidthWhenFocused),
95
95
  };
@@ -2,6 +2,7 @@ import { useState } from 'react';
2
2
  import { Paper } from './';
3
3
  import { Text } from '../Text';
4
4
  import { Box } from '../Box';
5
+ import { rem } from 'polished';
5
6
 
6
7
  export default {
7
8
  title: 'components/Paper',
@@ -11,8 +12,20 @@ const Example = ({}) => {
11
12
  const [elevation, setElevation] = useState(0);
12
13
 
13
14
  return (
14
- <Box p="6" bg={'surface'} color={'on.surface'} width="100%" height="100vh">
15
- <Paper outlined width="300px" height="300px" elevation={elevation} mb="4">
15
+ <Box
16
+ p="6"
17
+ bg={'surface'}
18
+ color={'on.primary-container'}
19
+ width="100%"
20
+ height="100vh"
21
+ >
22
+ <Paper
23
+ width="216px"
24
+ height="216px"
25
+ elevation={elevation}
26
+ mb="4"
27
+ sx={{ borderRadius: 'large' }}
28
+ >
16
29
  <Text variant="h3">Hello</Text>
17
30
  <Text variant="body1">This is looking cool</Text>
18
31
  Pretty cool.
@@ -24,7 +37,7 @@ const Example = ({}) => {
24
37
  <input
25
38
  type="range"
26
39
  min={0}
27
- max={24}
40
+ max={5}
28
41
  value={elevation}
29
42
  onChange={(e) => setElevation(Number(e.target.value))}
30
43
  />
@@ -3,7 +3,7 @@ import type * as React from 'react';
3
3
  import { Box, BoxProps } from '../Box';
4
4
  import { useTheme } from '../theme';
5
5
  import { rem } from 'polished';
6
- import { alpha, getDarkThemeBackgroundOverlay } from '../color';
6
+ import { alpha, getBackgroundOverlay } from '../color';
7
7
 
8
8
  export interface PaperProps extends BoxProps {
9
9
  as?: React.ElementType<any>;
@@ -43,7 +43,11 @@ export const Paper = forwardRef<HTMLDivElement, PaperProps>(function Paper(
43
43
  borderColor: alpha('on.surface', 0.12),
44
44
  }
45
45
  : {}),
46
- ...getDarkThemeBackgroundOverlay(theme, backgroundOverlay ?? elevation),
46
+ ...getBackgroundOverlay(
47
+ theme,
48
+ backgroundOverlay ?? elevation,
49
+ 'primary'
50
+ ),
47
51
  ...__css,
48
52
  }}
49
53
  {...otherProps}
@@ -50,7 +50,7 @@ const RadioButtonInner = forwardRef<
50
50
  outline: 'none',
51
51
  },
52
52
  border: 'none',
53
- borderRadius: '50%',
53
+ borderRadius: 'full',
54
54
  zIndex: 1,
55
55
  position: 'absolute',
56
56
  ...__css,
@@ -19,7 +19,7 @@ export const RadioButtonIcon = forwardRef<HTMLDivElement, RadioButtonIconProps>(
19
19
  __css={{
20
20
  borderColor: 'currentColor',
21
21
  borderStyle: 'solid',
22
- borderRadius: '50%',
22
+ borderRadius: 'full',
23
23
  borderWidth: rem(2),
24
24
  width: '100%',
25
25
  height: '100%',
@@ -30,7 +30,7 @@ export const RadioButtonIcon = forwardRef<HTMLDivElement, RadioButtonIconProps>(
30
30
  <Box
31
31
  __css={{
32
32
  backgroundColor: 'currentColor',
33
- borderRadius: '50%',
33
+ borderRadius: 'full',
34
34
  width: '100%',
35
35
  height: '100%',
36
36
  transition:
@@ -34,7 +34,7 @@ const Example = () => {
34
34
  bg="#eee"
35
35
  sx={{
36
36
  position: 'relative',
37
- borderRadius: 30,
37
+ borderRadius: 'extra-large',
38
38
  overflow: 'hidden',
39
39
  willChange: 'transform',
40
40
  }}
@@ -22,7 +22,7 @@ export const rippleStyle = ({
22
22
  backgroundColor: `var(${RIPPLE_BACKGROUND_COLOR})`,
23
23
  transformOrigin: 'center center',
24
24
  opacity: 0,
25
- borderRadius: '50%',
25
+ borderRadius: '999999px',
26
26
  animation,
27
27
  willChange: 'opacity,transform',
28
28
  });
@@ -28,6 +28,7 @@ export const RippleBox: <
28
28
  rippleColor, // eslint-disable-line @typescript-eslint/no-unused-vars
29
29
  center, // eslint-disable-line @typescript-eslint/no-unused-vars
30
30
  disabled, // eslint-disable-line @typescript-eslint/no-unused-vars
31
+ rippleEnabled, // eslint-disable-line @typescript-eslint/no-unused-vars
31
32
  style, // eslint-disable-line @typescript-eslint/no-unused-vars
32
33
  ...otherProps
33
34
  } = props;
@@ -7,11 +7,12 @@ import { wrapEvent } from '@basic-ui/core';
7
7
  import { SxStyleProp } from '../Box';
8
8
 
9
9
  export interface UseRippleSurfaceOptions<T extends HTMLElement> {
10
- baseOpacity?: string | number;
11
- hoverOpacity?: string | number;
12
- focusOpacity?: string | number;
13
- pressedOpacity?: string | number;
10
+ baseOpacity?: number;
11
+ hoverOpacity?: number;
12
+ focusOpacity?: number;
13
+ pressedOpacity?: number;
14
14
  rippleColor?: string;
15
+ rippleEnabled?: boolean;
15
16
  center?: boolean;
16
17
  disabled?: boolean;
17
18
  style?: CSSProperties;
@@ -35,6 +36,7 @@ export function useRippleSurface<T extends HTMLElement>(
35
36
  onPointerDown,
36
37
  style = {},
37
38
  disabled,
39
+ rippleEnabled = true,
38
40
  ...rippleProps
39
41
  } = opts;
40
42
 
@@ -84,18 +86,40 @@ export function useRippleSurface<T extends HTMLElement>(
84
86
  '&:hover::before': {
85
87
  opacity: hoverOpacity,
86
88
  },
87
- '&:focus::before': {
89
+ '&:focus-visible::before': {
88
90
  opacity: focusOpacity,
89
91
  },
92
+ ...(!rippleEnabled && {
93
+ '&:active::before': {
94
+ opacity: pressedOpacity,
95
+ },
96
+ }),
97
+ '&[aria-pressed="true"]::before': {
98
+ opacity: baseOpacity + pressedOpacity,
99
+ },
100
+ '&[aria-pressed="true"]:hover::before': {
101
+ opacity: pressedOpacity + hoverOpacity,
102
+ },
103
+ '&[aria-pressed="true"]:focus-visible::before': {
104
+ opacity: pressedOpacity + focusOpacity,
105
+ },
106
+ ...(!rippleEnabled && {
107
+ '&[aria-pressed="true"]:active::before': {
108
+ opacity: pressedOpacity + pressedOpacity,
109
+ },
110
+ }),
90
111
  ['&:disabled::before,&:disabled:hover::before,&:disabled:focus::before,&:disabled:active::before,' +
91
- '&[data-disabled]::before,&[data-disabled]:hover::before,&[data-disabled]:focus::before,&[data-disabled]:active::before']: {
112
+ '&[data-disabled]::before,&[data-disabled]:hover::before,&[data-disabled]:focus::before,' +
113
+ '&[data-disabled]:active::before,&:disabled[aria-pressed="true"]::before']: {
92
114
  opacity: 0,
93
115
  },
94
116
  '&:disabled,&[data-disabled]': {
95
117
  cursor: 'default',
96
118
  },
97
119
  // ripple
98
- '&::after': { ...rippleStyle({ animation }) },
120
+ ...(rippleEnabled && {
121
+ '&::after': { ...rippleStyle({ animation }) },
122
+ }),
99
123
  };
100
124
 
101
125
  return {