@basic-ui/material 1.0.0-alpha.2 → 1.0.0-alpha.21

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 (481) hide show
  1. package/build/cjs/index.js +1669 -1354
  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 +3 -2
  5. package/build/esm/Alert/Alert.js.map +1 -1
  6. package/build/esm/Alert/index.js.map +1 -1
  7. package/build/esm/AppBar/AppBar.d.ts +3 -3
  8. package/build/esm/AppBar/AppBar.js +6 -5
  9. package/build/esm/AppBar/AppBar.js.map +1 -1
  10. package/build/esm/AppBar/AppBarButton.d.ts +1 -1
  11. package/build/esm/AppBar/AppBarButton.js +2 -1
  12. package/build/esm/AppBar/AppBarButton.js.map +1 -1
  13. package/build/esm/AppBar/context.js.map +1 -1
  14. package/build/esm/AppBar/index.js.map +1 -1
  15. package/build/esm/Badge/Badge.d.ts +1 -1
  16. package/build/esm/Badge/Badge.js.map +1 -1
  17. package/build/esm/Badge/index.js.map +1 -1
  18. package/build/esm/BaseLine/BaseLine.js.map +1 -1
  19. package/build/esm/BaseLine/index.js.map +1 -1
  20. package/build/esm/BottomSheet/BottomSheet.d.ts +1 -1
  21. package/build/esm/BottomSheet/BottomSheet.js +2 -1
  22. package/build/esm/BottomSheet/BottomSheet.js.map +1 -1
  23. package/build/esm/BottomSheet/BottomSheetSurface.d.ts +2 -2
  24. package/build/esm/BottomSheet/BottomSheetSurface.js +2 -2
  25. package/build/esm/BottomSheet/BottomSheetSurface.js.map +1 -1
  26. package/build/esm/BottomSheet/index.js.map +1 -1
  27. package/build/esm/Box/Box.d.ts +4 -4
  28. package/build/esm/Box/Box.js +1 -2
  29. package/build/esm/Box/Box.js.map +1 -1
  30. package/build/esm/Box/index.js.map +1 -1
  31. package/build/esm/Button/BaseButton.d.ts +3 -3
  32. package/build/esm/Button/BaseButton.js +6 -5
  33. package/build/esm/Button/BaseButton.js.map +1 -1
  34. package/build/esm/Button/Button.d.ts +4 -4
  35. package/build/esm/Button/Button.js +6 -6
  36. package/build/esm/Button/Button.js.map +1 -1
  37. package/build/esm/Button/ButtonGroup.d.ts +2 -2
  38. package/build/esm/Button/ButtonGroup.js +3 -2
  39. package/build/esm/Button/ButtonGroup.js.map +1 -1
  40. package/build/esm/Button/FilledButton.d.ts +1 -1
  41. package/build/esm/Button/FilledButton.js +6 -8
  42. package/build/esm/Button/FilledButton.js.map +1 -1
  43. package/build/esm/Button/FloatingActionButton.js +1 -1
  44. package/build/esm/Button/FloatingActionButton.js.map +1 -1
  45. package/build/esm/Button/IconButton.js +1 -1
  46. package/build/esm/Button/IconButton.js.map +1 -1
  47. package/build/esm/Button/OutlinedButton.d.ts +1 -1
  48. package/build/esm/Button/OutlinedButton.js.map +1 -1
  49. package/build/esm/Button/TransparentButton.d.ts +1 -1
  50. package/build/esm/Button/TransparentButton.js.map +1 -1
  51. package/build/esm/Button/context.js.map +1 -1
  52. package/build/esm/Button/index.js.map +1 -1
  53. package/build/esm/CheckBox/CheckBox.d.ts +5 -5
  54. package/build/esm/CheckBox/CheckBox.js +6 -5
  55. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  56. package/build/esm/CheckBox/CheckBoxIcon.d.ts +4 -4
  57. package/build/esm/CheckBox/CheckBoxIcon.js +6 -5
  58. package/build/esm/CheckBox/CheckBoxIcon.js.map +1 -1
  59. package/build/esm/CheckBox/CheckPath.d.ts +0 -1
  60. package/build/esm/CheckBox/CheckPath.js.map +1 -1
  61. package/build/esm/CheckBox/IndeterminatePath.d.ts +0 -1
  62. package/build/esm/CheckBox/IndeterminatePath.js.map +1 -1
  63. package/build/esm/CheckBox/index.js.map +1 -1
  64. package/build/esm/Chip/ButtonChip.d.ts +4 -4
  65. package/build/esm/Chip/ButtonChip.js +4 -4
  66. package/build/esm/Chip/ButtonChip.js.map +1 -1
  67. package/build/esm/Chip/Chip.js.map +1 -1
  68. package/build/esm/Chip/ChipBase.d.ts +3 -3
  69. package/build/esm/Chip/ChipBase.js +10 -10
  70. package/build/esm/Chip/ChipBase.js.map +1 -1
  71. package/build/esm/Chip/ChoiceChip.d.ts +5 -5
  72. package/build/esm/Chip/ChoiceChip.js +6 -5
  73. package/build/esm/Chip/ChoiceChip.js.map +1 -1
  74. package/build/esm/Chip/index.js.map +1 -1
  75. package/build/esm/Combobox/Combobox.d.ts +13 -13
  76. package/build/esm/Combobox/Combobox.js +25 -16
  77. package/build/esm/Combobox/Combobox.js.map +1 -1
  78. package/build/esm/Combobox/index.js.map +1 -1
  79. package/build/esm/Dialog/Dialog.d.ts +1 -1
  80. package/build/esm/Dialog/Dialog.js +6 -5
  81. package/build/esm/Dialog/Dialog.js.map +1 -1
  82. package/build/esm/Dialog/DialogBackdrop.d.ts +2 -2
  83. package/build/esm/Dialog/DialogBackdrop.js +2 -2
  84. package/build/esm/Dialog/DialogBackdrop.js.map +1 -1
  85. package/build/esm/Dialog/DialogContainer.d.ts +1 -1
  86. package/build/esm/Dialog/DialogContainer.js +2 -1
  87. package/build/esm/Dialog/DialogContainer.js.map +1 -1
  88. package/build/esm/Dialog/DialogSurface.d.ts +2 -2
  89. package/build/esm/Dialog/DialogSurface.js +4 -4
  90. package/build/esm/Dialog/DialogSurface.js.map +1 -1
  91. package/build/esm/Dialog/Scrim.d.ts +1 -1
  92. package/build/esm/Dialog/Scrim.js +2 -1
  93. package/build/esm/Dialog/Scrim.js.map +1 -1
  94. package/build/esm/Dialog/index.js +1 -0
  95. package/build/esm/Dialog/index.js.map +1 -1
  96. package/build/esm/Dialog/useDialogAnimation.js +6 -4
  97. package/build/esm/Dialog/useDialogAnimation.js.map +1 -1
  98. package/build/esm/Divider/Divider.d.ts +3 -3
  99. package/build/esm/Divider/Divider.js +7 -7
  100. package/build/esm/Divider/Divider.js.map +1 -1
  101. package/build/esm/Divider/index.js.map +1 -1
  102. package/build/esm/FloatingLabel/FloatingLabel.d.ts +4 -4
  103. package/build/esm/FloatingLabel/FloatingLabel.js +7 -6
  104. package/build/esm/FloatingLabel/FloatingLabel.js.map +1 -1
  105. package/build/esm/FloatingLabel/index.js.map +1 -1
  106. package/build/esm/LineRipple/LineRipple.d.ts +3 -3
  107. package/build/esm/LineRipple/LineRipple.js +5 -4
  108. package/build/esm/LineRipple/LineRipple.js.map +1 -1
  109. package/build/esm/LineRipple/index.js.map +1 -1
  110. package/build/esm/Link/Link.d.ts +3 -3
  111. package/build/esm/Link/Link.js +14 -2
  112. package/build/esm/Link/Link.js.map +1 -1
  113. package/build/esm/Link/index.js.map +1 -1
  114. package/build/esm/List/List.d.ts +5 -5
  115. package/build/esm/List/List.js +2 -2
  116. package/build/esm/List/List.js.map +1 -1
  117. package/build/esm/List/index.js.map +1 -1
  118. package/build/esm/ListItem/ListItem.d.ts +7 -5
  119. package/build/esm/ListItem/ListItem.js +50 -46
  120. package/build/esm/ListItem/ListItem.js.map +1 -1
  121. package/build/esm/ListItem/ListItemText.d.ts +6 -6
  122. package/build/esm/ListItem/ListItemText.js +5 -5
  123. package/build/esm/ListItem/ListItemText.js.map +1 -1
  124. package/build/esm/ListItem/index.js.map +1 -1
  125. package/build/esm/Menu/Menu.d.ts +9 -7
  126. package/build/esm/Menu/Menu.js +31 -11
  127. package/build/esm/Menu/Menu.js.map +1 -1
  128. package/build/esm/Menu/animation.js.map +1 -1
  129. package/build/esm/Menu/index.js.map +1 -1
  130. package/build/esm/NavRail/NavRailItem.d.ts +15 -0
  131. package/build/esm/NavRail/NavRailItem.js +150 -0
  132. package/build/esm/NavRail/NavRailItem.js.map +1 -0
  133. package/build/esm/NavRail/index.d.ts +1 -0
  134. package/build/esm/NavRail/index.js +2 -0
  135. package/build/esm/NavRail/index.js.map +1 -0
  136. package/build/esm/NotchedOutline/NotchedOutline.d.ts +5 -5
  137. package/build/esm/NotchedOutline/NotchedOutline.js +4 -4
  138. package/build/esm/NotchedOutline/NotchedOutline.js.map +1 -1
  139. package/build/esm/NotchedOutline/context.js.map +1 -1
  140. package/build/esm/NotchedOutline/index.js.map +1 -1
  141. package/build/esm/NotchedOutline/styledComponents.d.ts +114 -28
  142. package/build/esm/NotchedOutline/styledComponents.js +3 -2
  143. package/build/esm/NotchedOutline/styledComponents.js.map +1 -1
  144. package/build/esm/Paper/Paper.d.ts +4 -4
  145. package/build/esm/Paper/Paper.js +6 -6
  146. package/build/esm/Paper/Paper.js.map +1 -1
  147. package/build/esm/Paper/index.js.map +1 -1
  148. package/build/esm/ProgressSpinner/ProgressSpinner.d.ts +1 -1
  149. package/build/esm/ProgressSpinner/ProgressSpinner.js +14 -14
  150. package/build/esm/ProgressSpinner/ProgressSpinner.js.map +1 -1
  151. package/build/esm/ProgressSpinner/index.js.map +1 -1
  152. package/build/esm/RadioButton/RadioButton.js +4 -2
  153. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  154. package/build/esm/RadioButton/RadioButtonIcon.d.ts +3 -3
  155. package/build/esm/RadioButton/RadioButtonIcon.js +6 -5
  156. package/build/esm/RadioButton/RadioButtonIcon.js.map +1 -1
  157. package/build/esm/RadioButton/RadioGroup.d.ts +1 -1
  158. package/build/esm/RadioButton/RadioGroup.js +2 -1
  159. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  160. package/build/esm/RadioButton/index.js.map +1 -1
  161. package/build/esm/Ripple/Ripple.js.map +1 -1
  162. package/build/esm/Ripple/RippleBox.d.ts +1 -2
  163. package/build/esm/Ripple/RippleBox.js +7 -6
  164. package/build/esm/Ripple/RippleBox.js.map +1 -1
  165. package/build/esm/Ripple/constants.js.map +1 -1
  166. package/build/esm/Ripple/index.js.map +1 -1
  167. package/build/esm/Ripple/keyframes.js.map +1 -1
  168. package/build/esm/Ripple/useRipple.js +2 -2
  169. package/build/esm/Ripple/useRipple.js.map +1 -1
  170. package/build/esm/Ripple/useRippleHandlers.d.ts +3 -3
  171. package/build/esm/Ripple/useRippleHandlers.js +2 -1
  172. package/build/esm/Ripple/useRippleHandlers.js.map +1 -1
  173. package/build/esm/Ripple/useRippleSurface.d.ts +6 -5
  174. package/build/esm/Ripple/useRippleSurface.js +65 -60
  175. package/build/esm/Ripple/useRippleSurface.js.map +1 -1
  176. package/build/esm/Select/Select.d.ts +6 -6
  177. package/build/esm/Select/Select.js +15 -6
  178. package/build/esm/Select/Select.js.map +1 -1
  179. package/build/esm/Select/SelectIcon.d.ts +3 -3
  180. package/build/esm/Select/SelectIcon.js +6 -5
  181. package/build/esm/Select/SelectIcon.js.map +1 -1
  182. package/build/esm/Select/context.d.ts +2 -2
  183. package/build/esm/Select/context.js.map +1 -1
  184. package/build/esm/Select/defaultRender.d.ts +2 -1
  185. package/build/esm/Select/defaultRender.js.map +1 -1
  186. package/build/esm/Select/index.js.map +1 -1
  187. package/build/esm/Select/styledComponents.d.ts +9 -9
  188. package/build/esm/Select/styledComponents.js +13 -22
  189. package/build/esm/Select/styledComponents.js.map +1 -1
  190. package/build/esm/SelectItem/SelectItem.d.ts +5 -2
  191. package/build/esm/SelectItem/SelectItem.js +21 -7
  192. package/build/esm/SelectItem/SelectItem.js.map +1 -1
  193. package/build/esm/SelectItem/index.js.map +1 -1
  194. package/build/esm/SelectionControl/SelectionControlLabel.d.ts +5 -5
  195. package/build/esm/SelectionControl/SelectionControlLabel.js +2 -2
  196. package/build/esm/SelectionControl/SelectionControlLabel.js.map +1 -1
  197. package/build/esm/SelectionControl/SelectionControlText.d.ts +4 -4
  198. package/build/esm/SelectionControl/SelectionControlText.js +4 -4
  199. package/build/esm/SelectionControl/SelectionControlText.js.map +1 -1
  200. package/build/esm/SelectionControl/index.js.map +1 -1
  201. package/build/esm/Skeleton/DelayAppearance.d.ts +3 -3
  202. package/build/esm/Skeleton/DelayAppearance.js +2 -2
  203. package/build/esm/Skeleton/DelayAppearance.js.map +1 -1
  204. package/build/esm/Skeleton/Skeleton.d.ts +6 -6
  205. package/build/esm/Skeleton/Skeleton.js +4 -4
  206. package/build/esm/Skeleton/Skeleton.js.map +1 -1
  207. package/build/esm/Skeleton/animation.js.map +1 -1
  208. package/build/esm/Skeleton/index.js.map +1 -1
  209. package/build/esm/Slider/Slider.d.ts +17 -0
  210. package/build/esm/Slider/Slider.js +224 -0
  211. package/build/esm/Slider/Slider.js.map +1 -0
  212. package/build/esm/Slider/index.d.ts +1 -0
  213. package/build/esm/Slider/index.js +2 -0
  214. package/build/esm/Slider/index.js.map +1 -0
  215. package/build/esm/Snackbar/Snackbar.d.ts +3 -3
  216. package/build/esm/Snackbar/Snackbar.js +12 -12
  217. package/build/esm/Snackbar/Snackbar.js.map +1 -1
  218. package/build/esm/Snackbar/Stack.d.ts +2 -3
  219. package/build/esm/Snackbar/Stack.js +4 -3
  220. package/build/esm/Snackbar/Stack.js.map +1 -1
  221. package/build/esm/Snackbar/index.js.map +1 -1
  222. package/build/esm/Snackbar/useSnackbarAnimation.d.ts +2 -2
  223. package/build/esm/Snackbar/useSnackbarAnimation.js +8 -7
  224. package/build/esm/Snackbar/useSnackbarAnimation.js.map +1 -1
  225. package/build/esm/Switch/Switch.d.ts +4 -5
  226. package/build/esm/Switch/Switch.js +6 -5
  227. package/build/esm/Switch/Switch.js.map +1 -1
  228. package/build/esm/Switch/index.js.map +1 -1
  229. package/build/esm/Switch/styledComponents.js +8 -4
  230. package/build/esm/Switch/styledComponents.js.map +1 -1
  231. package/build/esm/Tab/Tab.d.ts +3 -3
  232. package/build/esm/Tab/Tab.js +8 -7
  233. package/build/esm/Tab/Tab.js.map +1 -1
  234. package/build/esm/Tab/TabList.d.ts +1 -1
  235. package/build/esm/Tab/TabList.js +4 -2
  236. package/build/esm/Tab/TabList.js.map +1 -1
  237. package/build/esm/Tab/TabPanel.d.ts +1 -1
  238. package/build/esm/Tab/TabPanel.js +4 -2
  239. package/build/esm/Tab/TabPanel.js.map +1 -1
  240. package/build/esm/Tab/TabPanels.js.map +1 -1
  241. package/build/esm/Tab/Tabs.js.map +1 -1
  242. package/build/esm/Tab/context.js.map +1 -1
  243. package/build/esm/Tab/index.js.map +1 -1
  244. package/build/esm/TabIndicator/TabIndicator.d.ts +1 -1
  245. package/build/esm/TabIndicator/TabIndicator.js +4 -2
  246. package/build/esm/TabIndicator/TabIndicator.js.map +1 -1
  247. package/build/esm/TabIndicator/context.d.ts +2 -2
  248. package/build/esm/TabIndicator/context.js.map +1 -1
  249. package/build/esm/TabIndicator/index.js.map +1 -1
  250. package/build/esm/Table/Table.d.ts +1 -1
  251. package/build/esm/Table/Table.js +4 -3
  252. package/build/esm/Table/Table.js.map +1 -1
  253. package/build/esm/Table/TableBody.d.ts +1 -1
  254. package/build/esm/Table/TableBody.js +4 -3
  255. package/build/esm/Table/TableBody.js.map +1 -1
  256. package/build/esm/Table/TableCell.d.ts +1 -1
  257. package/build/esm/Table/TableCell.js +4 -3
  258. package/build/esm/Table/TableCell.js.map +1 -1
  259. package/build/esm/Table/TableHead.d.ts +1 -1
  260. package/build/esm/Table/TableHead.js +4 -3
  261. package/build/esm/Table/TableHead.js.map +1 -1
  262. package/build/esm/Table/TableRow.d.ts +1 -1
  263. package/build/esm/Table/TableRow.js +5 -4
  264. package/build/esm/Table/TableRow.js.map +1 -1
  265. package/build/esm/Table/context.js.map +1 -1
  266. package/build/esm/Table/index.js.map +1 -1
  267. package/build/esm/Text/LoremIpsum.js +1 -1
  268. package/build/esm/Text/LoremIpsum.js.map +1 -1
  269. package/build/esm/Text/Text.d.ts +8 -4
  270. package/build/esm/Text/Text.js +7 -3
  271. package/build/esm/Text/Text.js.map +1 -1
  272. package/build/esm/Text/index.js.map +1 -1
  273. package/build/esm/TextField/FilledContainer.d.ts +4 -4
  274. package/build/esm/TextField/FilledContainer.js +6 -6
  275. package/build/esm/TextField/FilledContainer.js.map +1 -1
  276. package/build/esm/TextField/HelperText.d.ts +5 -5
  277. package/build/esm/TextField/HelperText.js +5 -5
  278. package/build/esm/TextField/HelperText.js.map +1 -1
  279. package/build/esm/TextField/IconContainer.d.ts +2 -3
  280. package/build/esm/TextField/IconContainer.js +0 -1
  281. package/build/esm/TextField/IconContainer.js.map +1 -1
  282. package/build/esm/TextField/Input.d.ts +4 -4
  283. package/build/esm/TextField/Input.js +11 -9
  284. package/build/esm/TextField/Input.js.map +1 -1
  285. package/build/esm/TextField/OutlinedContainer.d.ts +4 -4
  286. package/build/esm/TextField/OutlinedContainer.js +17 -9
  287. package/build/esm/TextField/OutlinedContainer.js.map +1 -1
  288. package/build/esm/TextField/TextField.d.ts +5 -5
  289. package/build/esm/TextField/TextField.js +4 -4
  290. package/build/esm/TextField/TextField.js.map +1 -1
  291. package/build/esm/TextField/consts.js.map +1 -1
  292. package/build/esm/TextField/index.js.map +1 -1
  293. package/build/esm/ThemeExplorer/BorderSlider.d.ts +7 -0
  294. package/build/esm/ThemeExplorer/BorderSlider.js +78 -0
  295. package/build/esm/ThemeExplorer/BorderSlider.js.map +1 -0
  296. package/build/esm/ThemeExplorer/ColorPicker.js +4 -3
  297. package/build/esm/ThemeExplorer/ColorPicker.js.map +1 -1
  298. package/build/esm/ThemeExplorer/ColorSchemePicker.d.ts +10 -0
  299. package/build/esm/ThemeExplorer/ColorSchemePicker.js +54 -0
  300. package/build/esm/ThemeExplorer/ColorSchemePicker.js.map +1 -0
  301. package/build/esm/ThemeExplorer/FontAutoComplete.d.ts +9 -0
  302. package/build/esm/ThemeExplorer/FontAutoComplete.js +128 -0
  303. package/build/esm/ThemeExplorer/FontAutoComplete.js.map +1 -0
  304. package/build/esm/ThemeExplorer/TextFieldColorPicker.js +4 -3
  305. package/build/esm/ThemeExplorer/TextFieldColorPicker.js.map +1 -1
  306. package/build/esm/ThemeExplorer/ThemeBuilder.d.ts +11 -0
  307. package/build/esm/ThemeExplorer/ThemeBuilder.js +382 -0
  308. package/build/esm/ThemeExplorer/ThemeBuilder.js.map +1 -0
  309. package/build/esm/ThemeExplorer/ThemeColors.d.ts +2 -2
  310. package/build/esm/ThemeExplorer/ThemeColors.js +1 -1
  311. package/build/esm/ThemeExplorer/ThemeColors.js.map +1 -1
  312. package/build/esm/ThemeExplorer/components.d.ts +6 -7
  313. package/build/esm/ThemeExplorer/components.js +28 -24
  314. package/build/esm/ThemeExplorer/components.js.map +1 -1
  315. package/build/esm/ThemeExplorer/googleFonts.d.ts +1 -0
  316. package/build/esm/ThemeExplorer/googleFonts.js +7 -0
  317. package/build/esm/ThemeExplorer/googleFonts.js.map +1 -0
  318. package/build/esm/ThemeExplorer/importGoogleFont.d.ts +4 -0
  319. package/build/esm/ThemeExplorer/importGoogleFont.js +25 -0
  320. package/build/esm/ThemeExplorer/importGoogleFont.js.map +1 -0
  321. package/build/esm/ThemeExplorer/index.d.ts +1 -0
  322. package/build/esm/ThemeExplorer/index.js +2 -0
  323. package/build/esm/ThemeExplorer/index.js.map +1 -0
  324. package/build/esm/ThemeExplorer/makeColorScheme.js.map +1 -1
  325. package/build/esm/ThemeExplorer/updateGoogleFonts.js +70 -0
  326. package/build/esm/ThemeExplorer/updateGoogleFonts.js.map +1 -0
  327. package/build/esm/ThemeExplorer/useDeferredColor.js +5 -7
  328. package/build/esm/ThemeExplorer/useDeferredColor.js.map +1 -1
  329. package/build/esm/ThemeExplorer/useLocalStorageCachedState.d.ts +1 -1
  330. package/build/esm/ThemeExplorer/useLocalStorageCachedState.js +1 -1
  331. package/build/esm/ThemeExplorer/useLocalStorageCachedState.js.map +1 -1
  332. package/build/esm/Tooltip/Tooltip.d.ts +3 -3
  333. package/build/esm/Tooltip/Tooltip.js +7 -9
  334. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  335. package/build/esm/Tooltip/index.js.map +1 -1
  336. package/build/esm/color.d.ts +2 -0
  337. package/build/esm/color.js +10 -5
  338. package/build/esm/color.js.map +1 -1
  339. package/build/esm/css.js.map +1 -1
  340. package/build/esm/hooks/useAnimation.js +3 -3
  341. package/build/esm/hooks/useAnimation.js.map +1 -1
  342. package/build/esm/index.d.ts +3 -1
  343. package/build/esm/index.js +3 -1
  344. package/build/esm/index.js.map +1 -1
  345. package/build/esm/motion.d.ts +7 -0
  346. package/build/esm/motion.js +8 -0
  347. package/build/esm/motion.js.map +1 -0
  348. package/build/esm/theme/index.js.map +1 -1
  349. package/build/esm/theme/theme.d.ts +114 -28
  350. package/build/esm/theme/theme.js +46 -38
  351. package/build/esm/theme/theme.js.map +1 -1
  352. package/build/esm/theme/typography-raleway.js.map +1 -1
  353. package/build/esm/theme/typography-roboto.js.map +1 -1
  354. package/build/esm/theme/useTheme.d.ts +557 -1
  355. package/build/esm/theme/useTheme.js.map +1 -1
  356. package/build/tsconfig-build.tsbuildinfo +1 -0
  357. package/package.json +10 -10
  358. package/src/Alert/Alert.tsx +1 -1
  359. package/src/AppBar/AppBar.tsx +4 -3
  360. package/src/BottomSheet/BottomSheetSurface.tsx +3 -3
  361. package/src/Box/Box.tsx +6 -8
  362. package/src/Button/BaseButton.tsx +4 -11
  363. package/src/Button/Button.story.tsx +6 -1
  364. package/src/Button/Button.tsx +4 -4
  365. package/src/Button/ButtonGroup.tsx +1 -1
  366. package/src/Button/FilledButton.tsx +4 -9
  367. package/src/Button/SpinnerButton.story.tsx +1 -1
  368. package/src/CheckBox/CheckBox.story.tsx +7 -6
  369. package/src/CheckBox/CheckBox.tsx +6 -10
  370. package/src/CheckBox/CheckBoxIcon.tsx +5 -5
  371. package/src/Chip/ButtonChip.tsx +3 -3
  372. package/src/Chip/Chip.story.tsx +1 -1
  373. package/src/Chip/ChipBase.tsx +2 -2
  374. package/src/Chip/ChoiceChip.tsx +7 -7
  375. package/src/Combobox/Combobox.story.tsx +3 -3
  376. package/src/Combobox/Combobox.tsx +14 -12
  377. package/src/Dialog/DialogBackdrop.tsx +3 -3
  378. package/src/Dialog/DialogSurface.tsx +2 -4
  379. package/src/Dialog/useDialogAnimation.tsx +3 -4
  380. package/src/Divider/Divider.tsx +2 -2
  381. package/src/FloatingLabel/FloatingLabel.tsx +7 -6
  382. package/src/LineRipple/LineRipple.story.tsx +1 -1
  383. package/src/LineRipple/LineRipple.tsx +4 -4
  384. package/src/Link/Link.tsx +14 -5
  385. package/src/List/List.tsx +4 -4
  386. package/src/ListItem/ListItem.tsx +52 -46
  387. package/src/ListItem/ListItemText.tsx +6 -7
  388. package/src/Menu/ContextMenu.story.tsx +34 -0
  389. package/src/Menu/Menu.tsx +19 -5
  390. package/src/NavRail/NavRail.story.tsx +190 -0
  391. package/src/NavRail/NavRailItem.tsx +176 -0
  392. package/src/NavRail/index.ts +1 -0
  393. package/src/NotchedOutline/NotchedOutline.tsx +4 -5
  394. package/src/NotchedOutline/styledComponents.ts +2 -1
  395. package/src/Paper/Paper.story.tsx +3 -3
  396. package/src/Paper/Paper.tsx +3 -3
  397. package/src/ProgressSpinner/ProgressSpinner.tsx +9 -9
  398. package/src/RadioButton/RadioButton.story.tsx +2 -2
  399. package/src/RadioButton/RadioButton.tsx +1 -1
  400. package/src/RadioButton/RadioButtonIcon.tsx +4 -5
  401. package/src/Ripple/Ripple.story.tsx +1 -1
  402. package/src/Ripple/RippleBox.tsx +1 -2
  403. package/src/Ripple/useRippleHandlers.ts +3 -3
  404. package/src/Ripple/useRippleSurface.ts +83 -61
  405. package/src/Select/PaymentMethodSelect.story.tsx +17 -24
  406. package/src/Select/Select.tsx +20 -6
  407. package/src/Select/SelectIcon.tsx +3 -4
  408. package/src/Select/context.ts +2 -1
  409. package/src/Select/defaultRender.ts +2 -1
  410. package/src/Select/styledComponents.tsx +12 -22
  411. package/src/SelectItem/SelectItem.tsx +13 -3
  412. package/src/SelectionControl/SelectionControlLabel.tsx +4 -8
  413. package/src/SelectionControl/SelectionControlText.tsx +3 -3
  414. package/src/Skeleton/DelayAppearance.tsx +2 -2
  415. package/src/Skeleton/Skeleton.story.tsx +2 -2
  416. package/src/Skeleton/Skeleton.tsx +6 -6
  417. package/src/Slider/Slider.story.tsx +36 -0
  418. package/src/Slider/Slider.tsx +275 -0
  419. package/src/Slider/index.ts +1 -0
  420. package/src/Snackbar/Snackbar.tsx +10 -10
  421. package/src/Snackbar/Stack.tsx +6 -9
  422. package/src/Snackbar/useSnackbarAnimation.ts +4 -3
  423. package/src/Switch/Switch.tsx +6 -10
  424. package/src/Switch/styledComponents.tsx +2 -2
  425. package/src/Tab/Tab.tsx +3 -7
  426. package/src/TabIndicator/TabIndicator.tsx +2 -1
  427. package/src/TabIndicator/context.ts +2 -1
  428. package/src/Table/TableRow.tsx +1 -1
  429. package/src/Text/LoremIpsum.tsx +1 -1
  430. package/src/Text/Text.story.tsx +42 -7
  431. package/src/Text/Text.tsx +25 -5
  432. package/src/TextField/FilledContainer.tsx +3 -3
  433. package/src/TextField/HelperText.tsx +5 -5
  434. package/src/TextField/IconContainer.tsx +2 -3
  435. package/src/TextField/Input.tsx +5 -4
  436. package/src/TextField/OutlinedContainer.tsx +11 -6
  437. package/src/TextField/TextField.tsx +4 -4
  438. package/src/ThemeExplorer/BorderSlider.tsx +73 -0
  439. package/src/ThemeExplorer/ColorSchemePicker.tsx +55 -0
  440. package/src/ThemeExplorer/FontAutoComplete.tsx +139 -0
  441. package/src/ThemeExplorer/ThemeBuilder.story.tsx +3 -160
  442. package/src/ThemeExplorer/ThemeBuilder.tsx +337 -0
  443. package/src/ThemeExplorer/ThemeColors.tsx +1 -1
  444. package/src/ThemeExplorer/components.tsx +28 -20
  445. package/src/ThemeExplorer/googleFonts.ts +1436 -0
  446. package/src/ThemeExplorer/index.ts +1 -0
  447. package/src/ThemeExplorer/updateGoogleFonts.js +33 -0
  448. package/src/ThemeExplorer/useDeferredColor.tsx +5 -9
  449. package/src/ThemeExplorer/useLocalStorageCachedState.ts +2 -2
  450. package/src/Tooltip/Tooltip.story.tsx +2 -2
  451. package/src/Tooltip/Tooltip.tsx +9 -11
  452. package/src/color.ts +27 -6
  453. package/src/index.ts +3 -1
  454. package/src/motion.ts +7 -0
  455. package/src/theme/theme.ts +51 -37
  456. package/build/esm/ColorMode/ColorModeProvider.d.ts +0 -7
  457. package/build/esm/ColorMode/ColorModeProvider.js +0 -92
  458. package/build/esm/ColorMode/ColorModeProvider.js.map +0 -1
  459. package/build/esm/ColorMode/color-mode.d.ts +0 -8
  460. package/build/esm/ColorMode/color-mode.js +0 -11
  461. package/build/esm/ColorMode/color-mode.js.map +0 -1
  462. package/build/esm/ColorMode/color-vars.d.ts +0 -4
  463. package/build/esm/ColorMode/color-vars.js +0 -58
  464. package/build/esm/ColorMode/color-vars.js.map +0 -1
  465. package/build/esm/ColorMode/constants.d.ts +0 -3
  466. package/build/esm/ColorMode/constants.js +0 -5
  467. package/build/esm/ColorMode/constants.js.map +0 -1
  468. package/build/esm/ColorMode/index.d.ts +0 -4
  469. package/build/esm/ColorMode/index.js +0 -5
  470. package/build/esm/ColorMode/index.js.map +0 -1
  471. package/build/esm/ListItem/context.d.ts +0 -7
  472. package/build/esm/ListItem/context.js +0 -10
  473. package/build/esm/ListItem/context.js.map +0 -1
  474. package/build/tsconfig.tsbuildinfo +0 -1
  475. package/src/ColorMode/ColorModeProvider.tsx +0 -97
  476. package/src/ColorMode/color-mode.ts +0 -20
  477. package/src/ColorMode/color-vars.ts +0 -56
  478. package/src/ColorMode/constants.ts +0 -5
  479. package/src/ColorMode/index.ts +0 -4
  480. package/src/ColorMode/tests/color-vars.test.ts +0 -9
  481. package/src/ThemeExplorer/ThemeExplorer.story.tsx +0 -43
@@ -1,165 +1,8 @@
1
- import React, { useMemo, useDeferredValue, useEffect } from 'react';
2
- import {
3
- CorePalette,
4
- argbFromHex,
5
- hexFromArgb,
6
- } from '@material/material-color-utilities';
7
- import type { Color } from '@basic-ui/color-picker';
8
- import { toColor } from '@basic-ui/color-picker';
9
-
10
- import { Box } from '..';
11
- import { TonalColors } from './components';
12
- import { TextFieldColorPicker } from './TextFieldColorPicker';
13
- import { ThemeColors } from './ThemeColors';
14
- import { makeColorScheme } from './makeColorScheme';
15
- import { theme } from '../theme';
16
- import { Text } from '../Text';
17
- import { Button } from '../Button';
18
- import { useLocalStorageCachedState } from './useLocalStorageCachedState';
19
- import { useDeferredColor } from './useDeferredColor';
1
+ import { theme } from '../theme/theme';
2
+ import { ThemeBuilder } from './ThemeBuilder';
20
3
 
21
4
  export default {
22
5
  title: 'components/ThemeExplorer',
23
6
  };
24
7
 
25
- const ThemeBuilder = () => {
26
- const [primaryColor, setPrimaryColor] = useLocalStorageCachedState<Color>(
27
- 'primary',
28
- toColor('hex', theme.colors.primary)
29
- );
30
- const deferredPrimaryColor = useDeferredValue(primaryColor);
31
-
32
- const { a1, a2, a3, error, n1, n2 } = useMemo(
33
- () => CorePalette.of(argbFromHex(deferredPrimaryColor.hex)),
34
- [deferredPrimaryColor.hex]
35
- );
36
-
37
- const [secondaryColor, secondaryColorTonal, setSecondaryColor] =
38
- useDeferredColor('secondary', a2);
39
- const [tertiaryColor, tertiaryColorTonal, setTertiaryColor] =
40
- useDeferredColor('tertiary', a3);
41
- const [neutralColor, neutralColorTonal, setNeutralColor] = useDeferredColor(
42
- 'neutral',
43
- n1
44
- );
45
-
46
- const scheme = useMemo(
47
- () =>
48
- makeColorScheme({
49
- primary: a1,
50
- secondary: secondaryColorTonal,
51
- tertiary: tertiaryColorTonal,
52
- error: error,
53
- neutral: neutralColorTonal,
54
- neutralVariant: n2,
55
- }),
56
- [a1, secondaryColorTonal, tertiaryColorTonal, error, neutralColorTonal, n2]
57
- );
58
-
59
- useEffect(() => {
60
- localStorage.setItem('theme-builder.themeOverride', JSON.stringify(scheme));
61
- }, [scheme]);
62
-
63
- return (
64
- <Box display="flex">
65
- <Box
66
- display="flex"
67
- my={3}
68
- sx={{ gap: 3 }}
69
- flexDirection="column"
70
- width="300px"
71
- >
72
- <Box display="flex">
73
- <TextFieldColorPicker
74
- label="Primary color"
75
- value={primaryColor}
76
- onChange={(c) => setPrimaryColor(c)}
77
- />
78
- <Button variant="text" disabled={true}>
79
- Reset
80
- </Button>
81
- </Box>
82
- <Box display="flex">
83
- <TextFieldColorPicker
84
- label="Secondary color"
85
- value={
86
- secondaryColor ||
87
- toColor('hex', hexFromArgb(secondaryColorTonal.tone(40)))
88
- }
89
- onChange={(c) => setSecondaryColor(c)}
90
- />
91
- <Button
92
- variant="text"
93
- onClick={() => setSecondaryColor(null)}
94
- disabled={secondaryColor === null}
95
- >
96
- Reset
97
- </Button>
98
- </Box>
99
- <Box display="flex">
100
- <TextFieldColorPicker
101
- label="Tertiary color"
102
- value={
103
- tertiaryColor ||
104
- toColor('hex', hexFromArgb(tertiaryColorTonal.tone(40)))
105
- }
106
- onChange={(c) => setTertiaryColor(c)}
107
- />
108
- <Button
109
- variant="text"
110
- onClick={() => setTertiaryColor(null)}
111
- disabled={tertiaryColor === null}
112
- >
113
- Reset
114
- </Button>
115
- </Box>
116
- <Box display="flex">
117
- <TextFieldColorPicker
118
- label="Neutral color"
119
- value={
120
- neutralColor ||
121
- toColor('hex', hexFromArgb(neutralColorTonal.tone(40)))
122
- }
123
- onChange={(c) => setNeutralColor(c)}
124
- />
125
- <Button
126
- variant="text"
127
- onClick={() => setNeutralColor(null)}
128
- disabled={neutralColor === null}
129
- >
130
- Reset
131
- </Button>
132
- </Box>
133
- </Box>
134
- <Box width="600px" mx="auto">
135
- <Box display="flex" flexDirection="column" sx={{ gap: 4 }}>
136
- <Box flex="1">
137
- <Text variant="h5" as="h1" pb={'0.3em'}>
138
- Light theme
139
- </Text>
140
- <ThemeColors scheme={scheme} />
141
- </Box>
142
- <Box flex="1">
143
- <Text variant="h5" as="h1" pb={'0.3em'}>
144
- Dark theme
145
- </Text>
146
- <ThemeColors scheme={scheme.modes.dark} />
147
- </Box>
148
- </Box>
149
- <Box my={4} display="flex" sx={{ gap: 3 }} flexDirection="column">
150
- <TonalColors palette={a1} />
151
- <TonalColors palette={secondaryColorTonal} />
152
- <TonalColors palette={tertiaryColorTonal} />
153
- <TonalColors palette={error} />
154
- <TonalColors palette={neutralColorTonal} />
155
- <TonalColors palette={n2} />
156
- </Box>
157
- <Box as="pre" fontFamily="monospace" fontSize="12px">
158
- {JSON.stringify({ colors: scheme }, null, 2)}
159
- </Box>
160
- </Box>
161
- </Box>
162
- );
163
- };
164
-
165
- export const Builder = () => <ThemeBuilder />;
8
+ export const Builder = () => <ThemeBuilder baseTheme={theme} />;
@@ -0,0 +1,337 @@
1
+ import type { ComponentType } from 'react';
2
+ import { useState, useMemo, useEffect } from 'react';
3
+ import {
4
+ CorePalette,
5
+ argbFromHex,
6
+ hexFromArgb,
7
+ } from '@material/material-color-utilities';
8
+ import type { Color } from '@basic-ui/color-picker';
9
+ import { toColor } from '@basic-ui/color-picker';
10
+ import {
11
+ THEME_OVERRIDE_STORAGE_KEY,
12
+ injectThemeOverride,
13
+ transformTheme,
14
+ loadGoogleFont,
15
+ } from '@basic-ui/dynamic-theme';
16
+ import { rem } from 'polished';
17
+ import remToPx from 'polished/lib/helpers/remToPx';
18
+
19
+ import { Box } from '../Box';
20
+ import { TonalColors } from './components';
21
+ import { ThemeColors } from './ThemeColors';
22
+ import { makeColorScheme } from './makeColorScheme';
23
+ import { Text } from '../Text';
24
+ import { useLocalStorageCachedState } from './useLocalStorageCachedState';
25
+ import { useDeferredColor } from './useDeferredColor';
26
+ import { FontAutoComplete, parseMainFont } from './FontAutoComplete';
27
+ import type { Theme } from '../theme/theme';
28
+ import { BorderSlider } from './BorderSlider';
29
+ import { ColorSchemePicker } from './ColorSchemePicker';
30
+
31
+ export interface ThemeBuilderProps {
32
+ CodeHighlightingComponent?: ComponentType<{
33
+ children: string;
34
+ className: string;
35
+ showButtons?: boolean;
36
+ }>;
37
+ baseTheme: Theme;
38
+ }
39
+
40
+ function DefaultHighlighter(props: { children: string }) {
41
+ return (
42
+ <Box as="pre" fontFamily="monospace" fontSize="12px">
43
+ {props.children}
44
+ </Box>
45
+ );
46
+ }
47
+
48
+ export const ThemeBuilder = (props: ThemeBuilderProps) => {
49
+ const [mounted, setMounted] = useState(false);
50
+ useEffect(() => {
51
+ setMounted(true);
52
+ }, []);
53
+ if (!mounted) return null;
54
+ return <ThemeBuilderImpl {...props} />;
55
+ };
56
+
57
+ const ThemeBuilderImpl = (props: ThemeBuilderProps) => {
58
+ const { baseTheme: theme, CodeHighlightingComponent = DefaultHighlighter } =
59
+ props;
60
+ const [plainFont, setPlainFont] = useLocalStorageCachedState(
61
+ parseMainFont(theme.fonts.plain),
62
+ 'fontFamily.plain'
63
+ );
64
+ const [brandFont, setBrandFont] = useLocalStorageCachedState(
65
+ parseMainFont(theme.fonts.brand),
66
+ 'fontFamily.brand'
67
+ );
68
+
69
+ const [radiusExtraSmall, setRadiusExtraSmall] =
70
+ useLocalStorageCachedState<number>(
71
+ parseInt(remToPx(theme.radii['extra-small'])),
72
+ 'radii.extra-small'
73
+ );
74
+
75
+ const [radiusSmall, setRadiusSmall] = useLocalStorageCachedState<number>(
76
+ parseInt(remToPx(theme.radii['small'])),
77
+ 'radii.small'
78
+ );
79
+
80
+ const [radiusMedium, setRadiusMedium] = useLocalStorageCachedState<number>(
81
+ parseInt(remToPx(theme.radii['medium'])),
82
+ 'radii.medium'
83
+ );
84
+
85
+ const [radiusLarge, setRadiusLarge] = useLocalStorageCachedState<number>(
86
+ parseInt(remToPx(theme.radii['large'])),
87
+ 'radii.large'
88
+ );
89
+
90
+ const [radiusExtraLarge, setRadiusExtraLarge] =
91
+ useLocalStorageCachedState<number>(
92
+ parseInt(remToPx(theme.radii['extra-large'])),
93
+ 'radii.extra-large'
94
+ );
95
+
96
+ const [primaryColor, setPrimaryColor] = useLocalStorageCachedState<Color>(
97
+ toColor('hex', theme.colors.primary),
98
+ 'primary'
99
+ );
100
+
101
+ const { a1, a2, a3, error, n1, n2 } = useMemo(
102
+ () => CorePalette.of(argbFromHex(primaryColor.hex)),
103
+ [primaryColor.hex]
104
+ );
105
+
106
+ const [secondaryColor, secondaryColorTonal, setSecondaryColor] =
107
+ useDeferredColor('secondary', a2);
108
+ const [tertiaryColor, tertiaryColorTonal, setTertiaryColor] =
109
+ useDeferredColor('tertiary', a3);
110
+ const [neutralColor, neutralColorTonal, setNeutralColor] = useDeferredColor(
111
+ 'neutral',
112
+ n1
113
+ );
114
+
115
+ const scheme = useMemo(
116
+ () =>
117
+ makeColorScheme({
118
+ primary: a1,
119
+ secondary: secondaryColorTonal,
120
+ tertiary: tertiaryColorTonal,
121
+ error: error,
122
+ neutral: neutralColorTonal,
123
+ neutralVariant: n2,
124
+ }),
125
+ [a1, secondaryColorTonal, tertiaryColorTonal, error, neutralColorTonal, n2]
126
+ );
127
+
128
+ const newTheme = useMemo(
129
+ () => ({
130
+ colors: scheme,
131
+ fonts: { plain: `"${plainFont}"`, brand: `"${brandFont}"` },
132
+ radii: {
133
+ 'extra-small': rem(radiusExtraSmall),
134
+ 'extra-small_top': `${rem(radiusExtraSmall)} ${rem(
135
+ radiusExtraSmall
136
+ )} 0 0`,
137
+ small: rem(radiusSmall),
138
+ medium: rem(radiusMedium),
139
+ large: rem(radiusLarge),
140
+ large_end: `0 ${rem(radiusLarge)} ${rem(radiusLarge)} 0`,
141
+ large_top: `${rem(radiusLarge)} ${rem(radiusLarge)} 0 0`,
142
+ 'extra-large': rem(radiusExtraLarge),
143
+ 'extra-large_top': `${rem(radiusExtraLarge)} ${rem(
144
+ radiusExtraLarge
145
+ )} 0 0`,
146
+ },
147
+ }),
148
+ [
149
+ scheme,
150
+ plainFont,
151
+ brandFont,
152
+ radiusExtraSmall,
153
+ radiusSmall,
154
+ radiusMedium,
155
+ radiusLarge,
156
+ radiusExtraLarge,
157
+ ]
158
+ );
159
+
160
+ const colorModes = useMemo(
161
+ () => transformTheme(newTheme, ['fonts', 'radii']).colorModes,
162
+ [newTheme]
163
+ );
164
+
165
+ useEffect(() => {
166
+ localStorage.setItem(
167
+ THEME_OVERRIDE_STORAGE_KEY,
168
+ JSON.stringify({ colorModes })
169
+ );
170
+ injectThemeOverride({ colorModes });
171
+ }, [colorModes]);
172
+
173
+ return (
174
+ <>
175
+ {/* Shape */}
176
+ <Text variant="headline-small">Shape</Text>
177
+ <Box display="flex" my={3} sx={{ gap: 3, flexWrap: 'wrap' }}>
178
+ <BorderSlider
179
+ label="Extra small"
180
+ defaultValue={radiusExtraSmall}
181
+ onChange={(v) => setRadiusExtraSmall(v)}
182
+ onReset={() => {
183
+ setRadiusExtraSmall(parseInt(remToPx(theme.radii['extra-small'])));
184
+ }}
185
+ resetDisabled={rem(radiusExtraSmall) === theme.radii['extra-small']}
186
+ />
187
+ <BorderSlider
188
+ label="Small"
189
+ defaultValue={radiusSmall}
190
+ onChange={(v) => setRadiusSmall(v)}
191
+ onReset={() => {
192
+ setRadiusSmall(parseInt(remToPx(theme.radii['small'])));
193
+ }}
194
+ resetDisabled={rem(radiusSmall) === theme.radii.small}
195
+ />
196
+ <BorderSlider
197
+ label="Medium"
198
+ defaultValue={radiusMedium}
199
+ onChange={(v) => setRadiusMedium(v)}
200
+ onReset={() => {
201
+ setRadiusMedium(parseInt(remToPx(theme.radii['medium'])));
202
+ }}
203
+ resetDisabled={rem(radiusMedium) === theme.radii['medium']}
204
+ />
205
+ <BorderSlider
206
+ label="Large"
207
+ defaultValue={radiusLarge}
208
+ onChange={(v) => setRadiusLarge(v)}
209
+ onReset={() => {
210
+ setRadiusLarge(parseInt(remToPx(theme.radii['large'])));
211
+ }}
212
+ resetDisabled={rem(radiusLarge) === theme.radii['large']}
213
+ />
214
+ <BorderSlider
215
+ label="Extra large"
216
+ defaultValue={radiusExtraLarge}
217
+ onChange={(v) => setRadiusExtraLarge(v)}
218
+ onReset={() => {
219
+ setRadiusExtraLarge(parseInt(remToPx(theme.radii['extra-large'])));
220
+ }}
221
+ resetDisabled={rem(radiusExtraLarge) === theme.radii['extra-large']}
222
+ />
223
+ </Box>
224
+ {/* Font pickers */}
225
+ <Text variant="headline-small">Typography</Text>
226
+ <Box display="flex" my={3} sx={{ gap: 3, flexWrap: 'wrap' }}>
227
+ <FontAutoComplete
228
+ label="Brand"
229
+ initialValue={brandFont}
230
+ onSelect={(f) => {
231
+ if (f) {
232
+ setBrandFont(f);
233
+ loadGoogleFont([
234
+ { family: f, weights: [300, 400, 500, 600, 700] },
235
+ ]);
236
+ }
237
+ }}
238
+ onReset={() => {
239
+ setBrandFont(parseMainFont(theme.fonts.brand));
240
+ }}
241
+ resetDisabled={brandFont === parseMainFont(theme.fonts.brand)}
242
+ />
243
+ <FontAutoComplete
244
+ label="Plain"
245
+ initialValue={plainFont}
246
+ onSelect={(f) => {
247
+ if (f) {
248
+ setPlainFont(f);
249
+ loadGoogleFont([
250
+ { family: f, weights: [300, 400, 500, 600, 700] },
251
+ ]);
252
+ }
253
+ }}
254
+ onReset={() => {
255
+ setPlainFont(parseMainFont(theme.fonts.plain));
256
+ }}
257
+ resetDisabled={plainFont === parseMainFont(theme.fonts.plain)}
258
+ />
259
+ </Box>
260
+ {/* Color pickers */}
261
+ <Text variant="headline-small">Color schemes</Text>
262
+ <Box display="flex" my={3} sx={{ gap: 3, flexWrap: 'wrap' }}>
263
+ <ColorSchemePicker
264
+ label="Primary color"
265
+ initialValue={primaryColor}
266
+ onChange={(c) => setPrimaryColor(c)}
267
+ onReset={() => setPrimaryColor(toColor('hex', theme.colors.primary))}
268
+ resetDisabled={
269
+ primaryColor.hex === toColor('hex', theme.colors.primary).hex
270
+ }
271
+ />
272
+ <ColorSchemePicker
273
+ label="Secondary color"
274
+ initialValue={
275
+ secondaryColor ||
276
+ toColor('hex', hexFromArgb(secondaryColorTonal.tone(40)))
277
+ }
278
+ onChange={(c) => setSecondaryColor(c)}
279
+ onReset={() => setSecondaryColor(null)}
280
+ resetDisabled={secondaryColor === null}
281
+ />
282
+ <ColorSchemePicker
283
+ label="Tertiary color"
284
+ initialValue={
285
+ tertiaryColor ||
286
+ toColor('hex', hexFromArgb(tertiaryColorTonal.tone(40)))
287
+ }
288
+ onChange={(c) => setTertiaryColor(c)}
289
+ onReset={() => setTertiaryColor(null)}
290
+ resetDisabled={tertiaryColor === null}
291
+ />
292
+ <ColorSchemePicker
293
+ label="Neutral color"
294
+ initialValue={
295
+ neutralColor ||
296
+ toColor('hex', hexFromArgb(neutralColorTonal.tone(40)))
297
+ }
298
+ onChange={(c) => setNeutralColor(c)}
299
+ onReset={() => setNeutralColor(null)}
300
+ resetDisabled={neutralColor === null}
301
+ />
302
+ </Box>
303
+ <Box width="100%">
304
+ <Box display="flex" flexDirection="column" sx={{ gap: 4 }}>
305
+ <Box flex="1">
306
+ <Text variant="title-medium" as="h1" pb={'0.3em'} pt={3}>
307
+ Light theme
308
+ </Text>
309
+ <ThemeColors scheme={scheme} />
310
+ </Box>
311
+ <Box flex="1">
312
+ <Text variant="title-medium" as="h1" pb={'0.3em'} pt={3}>
313
+ Dark theme
314
+ </Text>
315
+ <ThemeColors scheme={scheme.modes.dark} />
316
+ </Box>
317
+ </Box>
318
+ <Box my={4} display="flex" sx={{ gap: 3 }} flexDirection="column">
319
+ <Text variant="title-medium" as="h1" pb={'0.3em'} pt={3}>
320
+ Palettes
321
+ </Text>
322
+ <TonalColors palette={a1} />
323
+ <TonalColors palette={secondaryColorTonal} />
324
+ <TonalColors palette={tertiaryColorTonal} />
325
+ <TonalColors palette={error} />
326
+ <TonalColors palette={neutralColorTonal} />
327
+ <TonalColors palette={n2} />
328
+ </Box>
329
+ </Box>
330
+ {/* Color pickers */}
331
+ <Text variant="headline-small">Theme</Text>
332
+ <CodeHighlightingComponent className={`language-json`}>
333
+ {JSON.stringify(newTheme, null, 2)}
334
+ </CodeHighlightingComponent>
335
+ </>
336
+ );
337
+ };
@@ -1,4 +1,4 @@
1
- import React, { memo } from 'react';
1
+ import { memo } from 'react';
2
2
 
3
3
  import { Box } from '..';
4
4
  import { ColorRow } from './components';
@@ -1,18 +1,18 @@
1
1
  import type { CSSProperties } from 'react';
2
- import React, { memo, useState } from 'react';
2
+ import { memo, useState } from 'react';
3
3
  import { rgb, parseToHsl, parseToRgb } from 'polished';
4
4
  import { hexFromArgb, TonalPalette } from '@material/material-color-utilities';
5
5
 
6
- import { Box, Text, Tooltip } from '../';
6
+ import { Box, Tooltip, Text } from '../';
7
7
 
8
8
  export const ColorItem = memo(
9
9
  (props: {
10
10
  token: string;
11
11
  style: CSSProperties;
12
- height: number;
12
+ height?: number;
13
13
  width: string;
14
14
  }) => {
15
- const { token, style, height = 50, width } = props;
15
+ const { token, style, width, height = '100%' } = props;
16
16
  const [computedColor, setComputedColor] = useState<string>();
17
17
  const hslColor = computedColor
18
18
  ? parseToHsl(computedColor)
@@ -41,22 +41,28 @@ export const ColorItem = memo(
41
41
  )
42
42
  }
43
43
  >
44
- <Box
45
- width={width}
46
- height={height}
44
+ <Text
45
+ as="div"
46
+ variant="body-small"
47
47
  style={style}
48
- pl="10px"
49
- pt="10px"
50
48
  ref={(ref: HTMLDivElement | null) => {
51
49
  if (ref) {
52
50
  setComputedColor(window.getComputedStyle(ref).backgroundColor);
53
51
  }
54
52
  }}
53
+ sx={{
54
+ width,
55
+ height,
56
+ px: '10px',
57
+ py: '10px',
58
+ fontSize: '11px',
59
+ lineHeight: '11px',
60
+ textOverflow: 'ellipsis',
61
+ overflow: 'hidden',
62
+ }}
55
63
  >
56
- <Text variant="body2" as="span" fontSize="11px" lineHeight="11px">
57
- {token}
58
- </Text>
59
- </Box>
64
+ {token}
65
+ </Text>
60
66
  </Tooltip>
61
67
  );
62
68
  }
@@ -74,15 +80,16 @@ export const ColorRow = memo(
74
80
  display="flex"
75
81
  sx={{
76
82
  ':first-of-type': {
77
- borderTopLeftRadius: 24,
78
- borderTopRightRadius: 24,
83
+ borderTopLeftRadius: 'extra-large',
84
+ borderTopRightRadius: 'extra-large',
79
85
  overflow: 'hidden',
80
86
  },
81
87
  ':last-of-type': {
82
- borderBottomLeftRadius: 24,
83
- borderBottomRightRadius: 24,
88
+ borderBottomLeftRadius: 'extra-large',
89
+ borderBottomRightRadius: 'extra-large',
84
90
  overflow: 'hidden',
85
91
  },
92
+ height,
86
93
  }}
87
94
  >
88
95
  {colors.map(({ token, bg, color }, idx) => (
@@ -97,7 +104,6 @@ export const ColorRow = memo(
97
104
  key={token}
98
105
  token={token}
99
106
  style={{ backgroundColor: bg, color: color }}
100
- height={height}
101
107
  />
102
108
  ))}
103
109
  </Box>
@@ -127,8 +133,10 @@ export const TonalColorItem = memo(
127
133
  </>
128
134
  }
129
135
  >
130
- <Box
136
+ <Text
131
137
  key={level}
138
+ as="div"
139
+ variant="body-small"
132
140
  flex={1}
133
141
  display="flex"
134
142
  alignItems="center"
@@ -139,7 +147,7 @@ export const TonalColorItem = memo(
139
147
  }}
140
148
  >
141
149
  {level}
142
- </Box>
150
+ </Text>
143
151
  </Tooltip>
144
152
  );
145
153
  }